
Git commit allegedly from Satoshi embedded inside a Bitcoin transaction - jbaudanza
https://blockchain.info/tx/77822fd6663c665104119cb7635352756dfc50da76a92d417ec1a12c518fad69
======
jbaudanza
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

~~~
mmahemoff
How did you get from the linked page to that?

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

~~~
LukeShu
> The poster added line breaks.

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

------
v64
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
That's very interesting. But is that enough to get the tx mined into the
blockchain? Isn't it still a non-standard tx?

~~~
v64
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.

~~~
doublec
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).

~~~
doublec
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.

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

[http://bitcoin.org/satoshinakamoto.asc](http://bitcoin.org/satoshinakamoto.asc)

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

~~~
dylangs1030
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.

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

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

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

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

~~~
olympus
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.

~~~
dvdkhlng
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-...](http://mineforeman.com/2012/12/10/want-to-destroy-bitcoin-i-am-
going-to-tell-you-how/)

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

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

~~~
jbaudanza
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.

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

~~~
jbaudanza
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.

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

------
jbaudanza
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
Is there a signature anywhere to prove that it was authored by Satoshi?

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

~~~
jayzalowitz
While I eat my hash right?

~~~
raverbashing
Yes, salted hashes are the best

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

------
awayand
I dont get it

~~~
ChuckMcM
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.

~~~
hobs
Except way less likely.

------
cyanbane
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
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
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
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.

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

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

