Hacker News new | past | comments | ask | show | jobs | submit login
Git commit allegedly from Satoshi embedded inside a Bitcoin transaction (blockchain.info)
162 points by jbaudanza on Aug 12, 2013 | hide | past | favorite | 68 comments



Here is the text of the commit:

    From a3a61fef43309b9fb23225df7910b03afc5465b9 Mon Sep 17 00:00:00 2001
    From: Satoshi Nakamoto <satoshin@gmx.com>
    Date: Mon, 12 Aug 2013 02:28:02 -0200
    Subject: [PATCH] Remove (SINGLE|DOUBLE)BYTE

    I removed this from Bitcoin in f1e1fb4bdef878c8fc1564fa418d44e7541a7e83
    in Sept 7 2010, almost three years ago. Be warned that I have not
    actually tested this patch.
    ---
     backends/bitcoind/deserialize.py |    8 +-------
     1 file changed, 1 insertion(+), 7 deletions(-)

    diff --git a/backends/bitcoind/deserialize.py b/backends/bitcoind/deserialize.py
    index 6620583..89b9b1b 100644
    --- a/backends/bitcoind/deserialize.py
    +++ b/backends/bitcoind/deserialize.py
    @@ -280,10 +280,8 @@ opcodes = Enumeration("Opcodes", [
         "OP_WITHIN", "OP_RIPEMD160", "OP_SHA1", "OP_SHA256", "OP_HASH160",
         "OP_HASH256", "OP_CODESEPARATOR", "OP_CHECKSIG", "OP_CHECKSIGVERIFY", "OP_CHECKMULTISIG",
         "OP_CHECKMULTISIGVERIFY",
    -    ("OP_SINGLEBYTE_END", 0xF0),
    -    ("OP_DOUBLEBYTE_BEGIN", 0xF000),
         "OP_PUBKEY", "OP_PUBKEYHASH",
    -    ("OP_INVALIDOPCODE", 0xFFFF),
    +    ("OP_INVALIDOPCODE", 0xFF),
     ])


    @@ -293,10 +291,6 @@ def script_GetOp(bytes):
             vch = None
             opcode = ord(bytes[i])
             i += 1
    -        if opcode >= opcodes.OP_SINGLEBYTE_END and i < len(bytes):
    -            opcode <<= 8
    -            opcode |= ord(bytes[i])
    -            i += 1

             if opcode <= opcodes.OP_PUSHDATA4:
                 nSize = opcode
    -- 
    1.7.9.4


To be able to see this information on the linked page, click on "Advanced: Enable" at the bottom of the screen. Then you'll see the "Output Scripts" section where this info is contained.


there appear to be 3 transactions in total, related to this https://blockchain.info/address/1Lsc297azMbCDXKREnUuQWwMwKVE...

the output of the second transaction is: OP_DUP OP_HASH160 d9fc6bc120342fc43b2296876562e1d4c6536fda OP_EQUALVERIFY OP_CHECKSIG


How did you get from the linked page to that?


Click the link "Show scripts & coinbase" and it is in one of those.


Click on "Show scripts & coinbase" on the page, and it will appear under the output scripts unformatted. The poster added line breaks.


> The poster added line breaks.

The line breaks are in the page source, but they've been stripped because of HTML white-space collapsing.


If you look at the output scripts of the transaction, this is a patch for the bug that was used to embed the patch in the transaction in the first place. Clever.


Pulled a Homakov.


That's very interesting. But is that enough to get the tx mined into the blockchain? Isn't it still a non-standard tx?


I'm not versed enough in bitcoin script to say definitively, but just guessing, it may be that the bug is that this is a way to get a non-standard txn mined.


The block containing the transaction was mined by Eligius. The Eligius pool allows non standard transactions if the transation is relayed to it directly (plus a fee for the service I think).


v_64, nesting is too deep to reply directly, but it doesn't need to be a merged miner for it to accept non standard transactions. Transactions are coded in a mini scripting language. A 'standard' transaction is one using opcodes in a particular format for normal transactions. 'non-standard' transactions allow for a number of different things but because bitcoin developers are cautious they're not relayed between peers by default.

They are accepted and valid in blocks though. So any miner can include them in their blocks. What Eligius, and some other pools do, is they allow accepting the transaction directly. So you connect your node to it directly and send the transaction as normal. It won't be relayed to other peers as they reject it. But those running a modified client will and can include it in a block.


Interesting. Is Eligius what you would call a merged miner (see [1])? Why would someone pay to have their non-standard txn mined? Is it just for examples/bug demos such as these, or are there other reasons? And I assume these just end up living in their own alternative chain[1]?

[1] https://en.bitcoin.it/wiki/Alternative_chain


Very interesting. Thank you!


The problem here is that Satoshi has a GPG key, and this message is not signed with it.

http://bitcoin.org/satoshinakamoto.asc


Regarding his PGP, it's interesting to see who (at least which key) signed his public key:

http://pgp.circl.lu/pks/lookup?op=vindex&search=0x5EC948A1&f...

I assume none of the key verified his identity before signing it ;-)


Which would be bigger news? That someone who isn't Satoshi managed to do this, or that Satoshi has reappeared after years of silence?


Anyone can embed messages in a Bitcoin transaction. It looks like this one was sent using a transaction script.

http://bitcoin.stackexchange.com/a/3440


That Satoshi reappeared, by an order of magnitude. It would be news either way, but people have been searching for him/her/whatever "Satoshi" is for years now.


Wouldn't it be grand if Satoshi was the NSA? ;-)


With the purpose being... to undermine the currency of their only source of income (the US government)? ;-)


After all the other 'realm of conspiracy theory' stuff that's come out, maybe the NSA just has their own agenda entirely.


People are finally starting to understand. Thank you for restoring my faith in humanity.


If we wanted to go down the conspiracy track, imagine if the NSA was behind it all. They are growing bitcoin large enough that tons of people rely on it, and also building up huge amounts of computing power in several large server farms. Then they can "switch the flip" - so to speak - and use a 51% attack to screw with the people who rely on it. While it wouldn't be very good to just crush the system as a whole (why would they have spent the effort in the first place?), they could selectively target their biggest nuisances by turning on their big building in Utah, take over the network for a few blocks and wipe out somebody's entire savings. Then they could shut off their building in Utah, and everything would chug along smoothly except for the one or two dudes they bankrupted.


While the "51% attack" [1] allows an adversary to control the block chain, she can only control which transactions to include and which not to include, so in the worst case bit-coin transactions can be (selectively) shut down.

Doing transactions on behalf of other users' accounts is not possible, as accounts are secured using public key cryptography (via elliptic curves) [2]. Only the creator of an account has the private key that allows her to sign valid transactions.

Nothing hinders the entity controlling the block chain to include invalid transactions that aren't properly signed, however all the other bitcoin clients in the network still verify the blockchain when downloaded, so those invalid transactions won't have a visible effect on users of the Bitcoin network.

[1] http://mineforeman.com/2012/12/10/want-to-destroy-bitcoin-i-...

[2] http://blog.ezyang.com/2011/06/the-cryptography-of-bitcoin/


I feel compelled to remark that they wouldn't do this just so they could flip the switch and screw over some people holding bitcoin. The NSA has easier ways of screwing people over.

Instead, as PG and others have hypothesized, the sovereign behind btc will have achieved a new worldwide currency system, that naturally, they will participate in, perhaps from a somewhat advantageous position (premined blocks etc).

The last 3 sentences of your post are a non-sequitur imho.


Not actually as farfetched as that sounds. Keep in mind that alternative currencies are actually useful during economic downturns as a buffer to keep things afloat. Until now, such alternative currencies were extremely local: visitors to a place rarely know about its existence and aren't invited to participate.

Bitcoin, on the other hand, has been adopted in tandem with other currencies worldwide and has made international news. It may never succeed in some of its proponents' dreams of replacing fiat currency, but it's certainly visible enough to act as a global alternative currency during recessions.


The right arm doesn't know what the left is doing.


I'd be legitimately surprised if Satoshi was not a U.S. government project.


Can anyone explain this like I'm 5? I'm really not following what's going on here.


You're not supposed to be able to embed messages inside of bitcoin transactions. But this person who claims to be Satoshi did just that. He/she/them embedded a git commit that fixes a bug in the Electrum server. This bug is perhaps what allowed the non-standard transaction to slip through.

Hope this helps.


It's always been possible to embed messages in transactions and the blockchain in general. It's full of stuff if you look.


AFIAK the only way is to do this is to encode data so that it looks like bitcoin receive addresses. This will burn BTC in the process.

This transaction is embedding a message inside of a non-standard output script, which shouldn't be possible.


There is all sort of graffiti and other garbage embedded in the blockchain.

http://garzikrants.blogspot.com/2013/04/on-bitcoin-data-spam...


> shouldn't be possible

It is restricted by the standard Bitcoin client implementation. Neither the transaction scripting language[0] nor the transaction[1] restricts it, so you would need to do it yourself or write a custom client to embed a message.

[0] https://en.bitcoin.it/wiki/Script

[1] https://en.bitcoin.it/wiki/Transaction#Output


You should a little more time reading about it. Among other features, transactions are described by what is essentially a mini scripting language


Could you then explain what the problem is? That's what jbaudanza was trying to do, but if he's wrong, then it'd be helpful for someone to clarify.


As a follow up, one of the few things we know about "Satoshi Nakamoto" is that his name is not Satoshi Nakamoto. It's a pseudonym, perhaps a nom de guerre, of the creator or creators.

Bitcoin is a really amazing piece of software and algorithm engineering. It is highly unlikely, although not impossible, that it was designed by a single individual. The scale, relatively bullet-proof crypto design (most systems are rigorously peer reviewed and still break), and the massive potential impact on global finance all point to a nation-state as the designer.

PG actually launched a thread with the same conclusion, and it seems eminently plausible to me.


The biggest flaw in this theory is that no nation state would be able to keep a secret of this magnitude from the geeks that are using it. Either through something carelessly being left in or being let slip by only one person on the team. Even a sufficiently large group of people working on it, reviewing it etc is likely to have one weak link.

As an example, JK Rowling released a book under a pseudonym. Very few people knew it was written by her, but one of those (a solicitor/lawyer) let slip to a friend, who then tweeted a tip to a journalist. It took a matter of weeks from publication for her to be outed. We are 4 years into bitcoin and there has not been anyything like this to suggest a large group worked on it.

If anything the lomger it goes the more likely it is that Satoshi Nakamoto was acting alone. Aditionally if there was a group of people then many of those would have had access to the numerous coins that were suposedly generated by SN during 2009. Surely some, one, any of those would have tried to access a portion of the coins to liquidate them.

Givent hat neither of these have happened it is more likely that a single individual was responsible and he/she is very strict with regard to their secuirty. i.e. they knwo that using any of those coins increases the chance that they will be tracked down. Whereas if it was a team then any one member may feel they could get away with it. Operational Security gets easier the fewer people that know about it.


counterexample: before Snowden revealed Prism, it had been in operation for years, with thousands of people knowing of its existence.

the day before that leak you could have used exactly the same argument against the existence of a comprehensive NSA surveillance program ... someone would have leaked it already, right?


good example but not sure they fall into the same field given that PRISM was inherently a hidden project and bitcoin is not. Releasing details of PRISM would have led to the NSA/CIA hunting you down and given the nature of PRISM those involved with it could have been faily certain that the NSA had the ability to do that. With bitcoin it is a public project so releasing details of the creator(s) would not impact on bitcoin and there is less chance of the creators "coming after the leaker". I think there is a vastly differnt risk analysis to releasing details of these 2 projects.


agreed it's not the same degree of risk - but I'd say that if a nation state was behind bitcoin, but purporting to be a lone engineer for some nefarious purpose, it's sure going to make leaking that classified fact a fairly serious crime.


Could you post the link? Would love to read it. My quick googling didn't turn up anything.



Thanks


Summary after reading all the comments:

To actually see the message click the link "Show scripts & coinbase"

This is a non-standard transaction. This type of transaction burns bitcoins(bitcoins don't go anywhere.)

This transaction was first mined by the pool called Eligius. The Eligius pool allows non standard transactions if the transation is relayed to it directly.

The message is also not signed(PGP) correctly by Satoshi(Bitcoin creator).


To add to jbaudanza's comment: Satoshi is the creator of Bitcoin, and hasn't been publicly active in a few years.


I'm very curious as to how this non-standard transaction made it into the blockchain. I have two guesses:

1) Whoever did this has access to enough hashing power to mine their own non-standard transactions into blocks.

2) $0.43 is unusually high for a transaction fee. Perhaps this is high enough to incentivize miners to include the tx in a block.


Is there a signature anywhere to prove that it was authored by Satoshi?


No. So take it with a big grain of salt.


While I eat my hash right?


Yes, salted hashes are the best


But regardless, it's still an interesting transaction.


Maybe. Where did the inputs come from?


How was this discovered? What does the commit change? Who was the transaction with? etc


I dont get it


Satoshi, the "Creator" of BitCoin went 'dark' and nobody knows who or where he is. So any "hint" of his existence is big news in the Bitcoin forums and elsewhere. While its an imperfect analogy it is sort of like having an image of the Virgin Mary appear on the toasted side of a bagel.


Except way less likely.


Same. Can someone explain the context/significance of this?


Sorry I am not up on all the code intricacies with bit coin, but is this a way to publish a batch of text anonymously? Is that what the author is trying to show (a new communications channel) or is that something already known to the bitcoin community?


It's definitely known, although I think most nodes drop transactions with weird stuff in them to prevent bloating the block chain with child porn.


Seeing as the author messed up and made the transaction unspendable, it's clearly not Satoshi actually authoring the patch. Just somebody playing around.


It's intentionally non-spendable, by doing so it keeps that data from having to be stored forever in the dataset used for block validation.


Have a look at the transaction again. It looks like it was meant to be spendable.


Why is creation conflated with omnipotence?


If you wrote an entire system of opcodes and a currency around them, you wouldn't mess up on an obscure rule and render your coins unspendable.


You could technically encode an message within the 8 decimal places.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: