Why Craig Wright Is Not Satoshi Nakamoto
Earlier this week Cointelegraph has published an article in which we have alleged that Craig Wright, an entrepreneur from Australia is actually Satoshi Nakamoto, the legendary author of Bitcoin’s whitepaper and protocol.
Update: Craig Wright doesn’t claim he’s Satoshi Nakamoto anymore.
The news that Craig Wright has come out as Satoshi Nakamoto is still making waves across the Bitcoin community. But Cointelegraph’s Andrew Quenston doesn’t buy that, and claims to have evidence to the contrary.
When the community has learned that Craig Wright, an entrepreneur from Australia claims he was Satoshi Nakamoto, the legendary author of Bitcoin’s whitepaper and protocol, people started taking sides on the issue. Many believe the evidence provided by Wright. The claim was made stronger by Gavin Andersen, one of the core Bitcoin developers, who commented:
“I was flown to London to meet Dr. Wright a couple of weeks ago, after an initial email conversation convinced me that there was a very good chance he was the same person I’d communicated with in 2010 and early 2011. After spending time with him I am convinced beyond a reasonable doubt: Craig Wright is Satoshi.”
However, others, Cointelegraph’s Andrew Quenston included, have provided evidence to support the contrary point of view, that Wright is not Satoshi.
Today, Cointelegraph has decided to reduce speculation to the minimum and take a look at hard facts. We have thoroughly analyzed the evidence which, as Wright alleges, proves him to be Satoshi, and here are the results of that analysis:
1. Craig took the number 9 block from Bitcoin blockchain, which was mined on January 9, 2009.
2. Then he took its coinbase transaction, i.e. the mining transaction which created 50 new bitcoins and credited it to the adress
The hash of that transaction is
3. That transaction was sent to the following address:
12cbQLTFMXRnSzktFkuoG3eHoMeFtpTu3S which corresponds to the following public key:
4. Thus we have the public key starting with 0411.. which has to have a specific corresponding private key. The latter should only be known by the owner of that wallet - namely, Satoshi, because it’s one of the very first wallets in the Bitcoin network.
We can see every transaction which was sent from that wallet here.
6. Among them, Craig has picked a transaction with the following hash -
7. In that transaction we can see that out of the 28btc worth of outputs, 10btc was sent to the following address:
And 18btc worth of change was returned to the 12cb… wallet
In that transaction, we can see the following signature
8. According to the Bitcoin protocol, this signature 3045… is derived from the algorithm specified here.
According to the algorithm, we have to take the transaction , modify it slightly (extracting the transaction body as a result), apply the hashing procedure twice and use the resulting data as an input for the signature algorithm.
9. Thus, the signature 3045… = ECDSA(sha(sha(transaction body))
It’s important to keep in mind that the transaction body is known by everyone, or, rather, it is derived from public data. Roughly, it contains the address to which sender transfers money to.
10. Then Craig follows the algorithm mentioned in stage 8 (except for the last step when the data is signed) applying it to transaction 828ef... The steps are the following:
10.1. Request the raw transaction 828e...
10.2. The transaction 828ef3b079f9c23829c56fe86e85b4a69d9e06e5b54ea597eef5fb3ffef509fe spends the first output of this transaction:
Then we take the script for this output:
10.3. Using the raw transaction
and the script we’ve got as the result of the stage #10.2, we derive the data which will then be hashed and signed.
10.4. Then we attach the hashcode (in our case it’s 01000000) to the end of that data
That string is the body of our transaction, ready to be signed.
11. After that, Craig took the transaction body we’ve got after the stage #10 and ran it through SHA one time, instead of two. He got this:
Which he has posted on his website.
After that it’s all smoke and mirrors:
12. Craig has put the body of the transaction derived above into a new file named sn7-message.txt and posted it in his article. Naturally, if we calculate the hashsum of that file, it will be the same:
13. And, seemingly to prove the fact that he owns the private key we’ve mentioned under point #5, he mentions the fact that 3045...
Which is indeed the key, at least judging by its structure. However, it has nothing to do with the original 12cbQLTFMXRnSzktFkuoG3eHoMeFtpTu3S address and doesn't prove that Craig owns the private keys of that address.
It’s also worth noting that the following string:
Is actually another string, encoded via Base64:
Thus, even though Craig’s article contained certain technical data, which could mislead the readers, it does not prove that Craig owns Satoshi’s private keys. What’s more, we could apply the very same process to another transaction to generate a similar “proof”. Let’s apply the logic above to a completely different transaction:
1. Take the 286 block.
2. Take its coinbase transaction
3. That transaction sends the reward to the following address: 1Jhk2DHosaaZx1E4CbnTGcKM7FC88YHYv9.
That address has the following public key:
Which can be checked here.
4. Take all transactions for the following address
5. There is just one transaction which spends money from that address:
Hence, that transaction is signed by a private key, corresponding to that same address:
6. Then we extract the raw transaction d71f...
d71fd2f64c0b34465b7518d240c00e83f6a5b10138a7079d1252858fe7e6b577 spends the output #0 of the coinbase transaction:
8. Let’s take the script of that output:
9. Using the raw transaction and script, we extract the body of the transaction, which will be hashed and signed.
10. Then we add the hashcode string, which is 01000000.
11. After that, we apply SHA256 to that data and receive:
12. Now we have:
The data we sign:
The public key:
And the digital signature:
The same signature encoded via base64:
13. As a result, the signature was taken out of the script of the transaction output #0, which spends money from the following address:
Thus, we could claim that we own private key of that address. However, as it was stated above, this would only be a trick to make readers believe we own the key. The proof manipulates Bitcoin technical notions and some data but is completely invalid.
After analyzing the above information, it’s pretty safe to say that Craig Wright has not provided any publicly available evidence to support his claim, so the news are most likely fake. Some could say that that was self-evident: after all, many people have claimed to be Satoshi Nakamoto over the last several years, and none have managed to really convince the community.
However, consider this: after being actively involved with Bitcoin network for more than 2 years, Satoshi has decided to disappear from the scene completely, leaving no trace behind. Whatever the reasons, it’s clear that the person (or the group of people) behind that name doen’t want their actual identities to be known.
And what is the best way to stay out of sight, if not to intentionally send the seekers on false leads? Could the invalid proof be posted on purpose to make us believe it is not Satoshi? Could it be that Satoshi is indeed involved with all the false reveals, but as their hidden architect, rather than the actual hero?
Update: Craig Wright doesn’t claim he’s Satoshi Nakamoto anymore.