6 ms·
Git commit allegedly from Satoshi embedded inside a Bitcoin transaction
- jbaudanza 13y agoHere 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 13y agoHow did you get from the linked page to that?
- jack-r-abbit 13y agoClick the link "Show scripts & coinbase" and it is in one of those.
- v64 13y agoClick on "Show scripts & coinbase" on the page, and it will appear under the output scripts unformatted. The poster added line breaks.
- LukeShu 13y ago> The poster added line breaks. The line breaks are in the page source, but they've been stripped because of HTML white-space collapsing.
- deleted 13y ago[deleted]
- LoonyPandora 13y agoTo 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.
- officialjunk 13y agothere appear to be 3 transactions in total, related to this https://blockchain.info/address/1Lsc297azMbCDXKREnUuQWwMwKVEHn3aHr https://blockchain.info/address/1Lsc297azMbCDXKREnUuQWwMwKVE... the output of the second transaction is: OP_DUP OP_HASH160 d9fc6bc120342fc43b2296876562e1d4c6536fda OP_EQUALVERIFY OP_CHECKSIG
- dmix 13y agoHow was this discovered? What does the commit change? Who was the transaction with? etc
- jbaudanza 13y agoI'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.
- v64 13y agoIf 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 13y agoThat's very interesting. But is that enough to get the tx mined into the blockchain? Isn't it still a non-standard tx?
- v64 13y agoI'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 13y agoThe 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).
- jbaudanza 13y agoVery interesting. Thank you!
- v64 13y agoInteresting. 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 https://en.bitcoin.it/wiki/Alternative_chain
- doublec 13y agov_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.
- sirsar 13y agoIs there a signature anywhere to prove that it was authored by Satoshi?
- jbaudanza 13y agoBut regardless, it's still an interesting transaction.
- jbaudanza 13y agoNo. So take it with a big grain of salt.
- jayzalowitz 13y agoWhile I eat my hash right?
- raverbashing 13y agoYes, salted hashes are the best
- maaku 13y agoMaybe. Where did the inputs come from?
- awayand 13y agoI dont get it
- darkstar999 13y agoSame. Can someone explain the context/significance of this?
- deleted 13y ago[deleted]
- ChuckMcM 13y agoSatoshi, 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 13y agoExcept way less likely.
- tocomment 13y agoCan anyone explain this like I'm 5? I'm really not following what's going on here.
- scott_karana 13y agoTo add to jbaudanza's comment: Satoshi is the creator of Bitcoin, and hasn't been publicly active in a few years.
- jbaudanza 13y agoYou'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 13y agoIt's always been possible to embed messages in transactions and the blockchain in general. It's full of stuff if you look.
- jbaudanza 13y agoAFIAK 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.
- NowhereMan 13y agoThe 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 13y agoWhich would be bigger news? That someone who isn't Satoshi managed to do this, or that Satoshi has reappeared after years of silence?
- NowhereMan 13y agoAnyone can embed messages in a Bitcoin transaction. It looks like this one was sent using a transaction script. http://bitcoin.stackexchange.com/a/3440 http://bitcoin.stackexchange.com/a/3440
- dylangs1030 13y agoThat 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 13y agoWouldn't it be grand if Satoshi was the NSA? ;-)
- damian2000 13y agoWith the purpose being... to undermine the currency of their only source of income (the US government)? ;-)
- danudey 13y agoAfter all the other 'realm of conspiracy theory' stuff that's come out, maybe the NSA just has their own agenda entirely.
- cyanbane 13y agoSorry 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 13y agoIt'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 13y agoSeeing as the author messed up and made the transaction unspendable, it's clearly not Satoshi actually authoring the patch. Just somebody playing around.
- nullc 13y agoIt'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 13y agoHave a look at the transaction again. It looks like it was meant to be spendable.
- ronaldx 13y agoWhy is creation conflated with omnipotence?
- nwh 13y agoIf 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.
- HNLogInShit 13y agoWho the hell is Satoshi and WTF is this supposed to mean?
- jlebrech 13y agoYou could technically encode an message within the 8 decimal places.