top | item 6202968

Git commit allegedly from Satoshi embedded inside a Bitcoin transaction

162 points| jbaudanza | 12 years ago |blockchain.info | reply

68 comments

order
[+] jbaudanza|12 years ago|reply
Here is the text of the commit:

    From a3a61fef43309b9fb23225df7910b03afc5465b9 Mon Sep 17 00:00:00 2001
    From: Satoshi Nakamoto <[email protected]>
    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
[+] LoonyPandora|12 years ago|reply
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.
[+] mmahemoff|12 years ago|reply
How did you get from the linked page to that?
[+] v64|12 years ago|reply
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.
[+] jbaudanza|12 years ago|reply
That's very interesting. But is that enough to get the tx mined into the blockchain? Isn't it still a non-standard tx?
[+] NowhereMan|12 years ago|reply
The problem here is that Satoshi has a GPG key, and this message is not signed with it.

http://bitcoin.org/satoshinakamoto.asc

[+] saraid216|12 years ago|reply
Which would be bigger news? That someone who isn't Satoshi managed to do this, or that Satoshi has reappeared after years of silence?
[+] tocomment|12 years ago|reply
Can anyone explain this like I'm 5? I'm really not following what's going on here.
[+] jbaudanza|12 years ago|reply
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.

[+] rajivtiru|12 years ago|reply
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).

[+] scott_karana|12 years ago|reply
To add to jbaudanza's comment: Satoshi is the creator of Bitcoin, and hasn't been publicly active in a few years.
[+] jbaudanza|12 years ago|reply
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.

[+] sirsar|12 years ago|reply
Is there a signature anywhere to prove that it was authored by Satoshi?
[+] jbaudanza|12 years ago|reply
No. So take it with a big grain of salt.
[+] jbaudanza|12 years ago|reply
But regardless, it's still an interesting transaction.
[+] maaku|12 years ago|reply
Maybe. Where did the inputs come from?
[+] dmix|12 years ago|reply
How was this discovered? What does the commit change? Who was the transaction with? etc
[+] awayand|12 years ago|reply
I dont get it
[+] ChuckMcM|12 years ago|reply
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.
[+] darkstar999|12 years ago|reply
Same. Can someone explain the context/significance of this?
[+] cyanbane|12 years ago|reply
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?
[+] wmf|12 years ago|reply
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.
[+] nwh|12 years ago|reply
Seeing as the author messed up and made the transaction unspendable, it's clearly not Satoshi actually authoring the patch. Just somebody playing around.
[+] nullc|12 years ago|reply
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.
[+] ronaldx|12 years ago|reply
Why is creation conflated with omnipotence?
[+] jlebrech|12 years ago|reply
You could technically encode an message within the 8 decimal places.