An early version of Satoshi Nakamoto’s source code leaked: Blockchain was originally called Timechain, and Bitcoin has a built-in virtual poker game

An early version of Satoshi Nakamoto’s source code leaked: Blockchain was originally called Timechain, and Bitcoin has a built-in virtual poker game

This week, an early version of the Bitcoin source code surfaced, immediately causing heated discussions in the cryptocurrency community. According to old posts and mailing lists previously posted by "Satoshi Nakamoto" on the forum, before the Bitcoin network was officially launched on January 3, 2009, he had distributed a private version of the Bitcoin source code to some people.

Pre-release Bitcoin, and an abandoned genesis block with a completely different hashing algorithm

Since March 13, the cryptocurrency community has been discussing Satoshi Nakamoto’s original Bitcoin source code, and it has been discovered that Satoshi Nakamoto may have distributed a private version of the Bitcoin source code to others before the official release of the Bitcoin blockchain.

The cause of this incident was that Francis Pouliot, a well-known Bitcoin supporter, shared a very old version of the "Satoshi Nakamoto" source code. He also showed a letter written by "Satoshi Nakamoto", which detailed that he sent some "main files" to a person named James A. Donald.

In this letter to James A. Donald dated November 17, 2008, Satoshi Nakamoto wrote:

“What I mean is that a node only needs the pending-tx pool to get the best branch it has, which is the best branch it can think of at the moment, which will consist of blocks, and is what the pending-tx pool needs. I think I have the peer-to-peer broadcast mechanism covered, where each node sends an inventory list of transactions and the hash of the new block to its neighbors. The neighbors send requests for items they don't have yet, and if the timeout item never comes through, they send another request to other neighbors that have it. Since all or most neighbors should have every item, even if the items are messed up by one block, they can get them from other blocks, but they can only try one block at a time.

The inventory request data scheme introduces a small amount of latency, but request speeds are ultimately improved because the extra data chunks are kept out of the transmission queue, also saving bandwidth.

I have been working on all of these details and writing code for the past year and a half, but there is still a lot of work to do. The whitepaper is not yet in feature detail, but the source code is coming soon, and I sent you some of the main files (currently available upon request, the full version will be released later)"

There are also some interesting discoveries in the source code distributed to Bitcointalk.org member "Cryddit" that are believed to be the earliest versions of the Bitcoin code. For example, the term "Bitcoin miner" appears in the version of the Bitcoin code received by "Cryddit", which seems to be the first time that Satoshi Nakamoto described these network participants as "miners". Interestingly, the term "miner" is not used in the official Bitcoin white paper - they are called "nodes" throughout the article. In addition, according to the source code sent by "Satoshi Nakamoto" to "Cryddit", the word blockchain was originally called "timechain".

According to a screenshot by Bitcointalk.org user Deepceleron on January 3, 2009 (the same day as the Bitcoin Genesis block), there is an unpublished blockchain and three other connections at block 213, as follows:

The source code of an early version of Bitcoin explains it this way:

“The time chain is a tree structure, starting with the genesis block at the root. Each block may have multiple candidate blocks to become their next block. Pprev and pnext are connected to a path through the main chain/longest chain. The block index may have multiple pprev pointing to it, but pnext only points to the longest branch. Or, if the block is not part of the longest chain, the block index may be empty (null).”

This early version of the source code also mentions:

“Nodes collect new transactions into blocks, hash them into a hash tree, and scan the nonce so that the block’s hash satisfies the proof of work. Once the nodes have solved the proof of work, they broadcast the block to everyone and add it to the time chain. The first transaction in the block is a special transaction that creates a new token owned by the creator of the block.”

(Editor's note: nonce is the abbreviation of Number used once or Number once. In cryptography, Nonce is an arbitrary or non-repeating random value that is used only once. It plays an important role in the initialization vector and cryptographic hash function in encryption technology. It ensures that the verification information is not reused in the communication applications of various authentication protocols to combat replay attacks.)

Another interesting discovery in the early Bitcoin code is that Satoshi Nakamoto originally named two smaller units of Bitcoin, namely "coin" (1,000,000) and "cent" (10,000), instead of the "satoshi" used today. In addition, the early Bitcoin code also mentioned a rating system and talked about issues such as "atoms" and "user reviews."

Below: The smallest unit of Bitcoin was not originally called "satoshi", but "coin" or "cent"

According to Mike Hearn, an early Bitcoin developer, Satoshi Nakamoto originally intended to integrate a peer-to-peer (P2P) platform into the Bitcoin protocol, but he did not complete the relevant code writing work, so the idea was shelved. Mike Hearn also revealed that there is an abandoned genesis block in Bitcoin, and it has a completely different hash algorithm. If this abandoned genesis block was used for testing, then it may have been born on September 10, 2008.

Above: From this part of the code, it seems that Satoshi Nakamoto may want to launch a P2P platform similar to Openbazaar, and this idea has been written into the Bitcoin protocol. However, after the Bitcoin network was released, the idea of ​​building this platform was abandoned.

Internet Relay Chat client, P2P platform and a virtual poker game

In addition to early versions before the release on January 3, 2009, the source code of Bitcoin version 0.1.0 also contains some very interesting details. For example, the original Bitcoin software included an Internet Relay Chat (IRC) client, which was designed to create a simpler way to guide message delivery. In addition, in the original library of the Bitcoin 0.1.0 code version, it was found that it contained a framework for creating a virtual poker game, which was added to Bitcoin on April 16, 2008.

However, right after the Bitcoin network was officially released, many of the previous ideas, including the P2P platform and virtual poker game, were not realized. And the idea of ​​an Internet Relay Chat client, although updated for several versions, was completely deleted after Bitcoin version 0.8.2.

As can be seen from the code in the figure below, Bitcoin once had a built-in virtual poker game that was not developed.

To this day, no one knows why Satoshi Nakamoto used those Bitcoin terms, nor does he know what his specific definitions of these terms were, or why he abandoned the P2P platform and the built-in poker game application. Satoshi Nakamoto maintained the Bitcoin code until version 0.3.19, but mysteriously left in 2010 and handed over the work to Gavin Andresen.

But at least, the early version of the Bitcoin source code mentioned in this article allows us to learn more about the mysterious creator of Bitcoin.

<<:  Bitcoin mining is no longer affordable? This miner says solar energy reduces costs by 75%

>>:  3.15 Heavy Exposure - List of the Top 100 MLM Coins in the Second Half of 2018

Recommend

What kind of palmistry is prone to cheating

What kind of palmistry is prone to cheating There...

What kind of palm lines are easy to fall in love online

1. From the perspective of the entire hand shape....

What can we learn from the size and shape of our hands?

The size and shape of hands vary from person to p...

Various giants enter the Metaverse

Recently, new giants have entered the metaverse a...

How to tell a woman's fate from her palm

The lines in the palm can reflect our health, fee...

Is it a good omen for a woman to have buck teeth? Is it a sign of poverty?

It is very common to judge wealth fortune by faci...

What does a mole mean for a woman with a mole on the right corner of her mouth?

Women with moles next to the right corner of thei...

How to confirm transactions faster in Ethereum

An important feature of a good blockchain user ex...

Will the mole on the eyebrow affect us?

We have already passed yesterday, as long as we l...

Physiognomy: Actions that can bring good luck

Physiognomy: Actions that can bring good luck Peo...

What does a short wisdom line mean?

The wisdom line is a line between the love line a...

A mole on a woman's forehead indicates wealth or poverty.

Although moles on a woman's face affect her a...