What is a blockchain
What is a blockchain
The word "blockchain," in the context of cryptocurrencies, has obtained a dual meaning: that of an immutable ledger. However, the original use of the word "blockchain" referred to a sequenced log file of historical database updates. When one is updating a database using batch processing, which is how databases used to be updated in the early days, a blockchain naturally results. For example, if transactions are collected during the day and processed overnight in batches, then each nightly update block can reference the previous night’s update block, thereby forming a linked list of updates, or a blockchain. Such a linked list, when applied in sequence starting with the first block to a database schema (a set of empty tables), will inevitably produce the same set of resulting tables. Therefore, if two databases had the same blockchain, they would have the same current data.
The simplest way to tell if two databases had the same blockchain is to compute the hash value of each block and include that hash value as a field in the next block. Then, if two databases have the same length blockchain, and the hash values of the first and last blocks match, this, akin to a checksum, proves that the two databases are the same and uncorrupted, having received the same set of updates. However, in the context of cryptocurrencies, the blockchain has been repurposed to also prove immutability.
What this means is that if everyone only knows what the first true block in the blockchain is, without knowing what the universally agreed last valid block is, then each node, given two alternative versions of the blockchain, A and B, can independently tell which one is authentic and which one is certain to contain fraudulent transactions. If there is only one unique authentic version of the blockchain, that makes it immutable. The immutability of the blockchain ensues not because nobody can alter a blockchain file in whatever way they wish—they can. Rather, the blockchain becomes immutable because all attempts at manipulation of historical data become immediately visible to anyone who knows the first, one-true block in any such blockchain.
The immutability of the Bitcoin blockchain, and indeed any blockchain, can only be achieved by digitally signing cryptographic hashes of update blocks, not the other way around; merely cryptographically hashing digital signatures does not ensure immutability. The reason is simple: anyone can delete a transaction and replace it with a meaningless alternative transaction between two other wallets the perpetrator owns, and then recompute all subsequent hashes, and you would never be able to tell that such a blockchain is fraudulent. However, because the miner digitally signs the hash value of every single update block, any subsequent alteration of the data would necessitate adjusting that digital signature, which would no longer match the block. This, in turn, necessitates knowing the private key of the miner that processed the update block and digitally signed its hash value, making Bitcoin theft very difficult in practice. This security comes at a cost; Bitcoin mining burns about as much electricity per year as the country of Argentina. Proving trust in payment processing is expensive, especially when peer-to-peer nodes are asymmetrically informed about pending payments, which facilitates fraud, as exemplified by double spending. But at TNT, we have a better way.
Rather than having the miner sign the hash value of the update block, we have all payment recipients do so, that’s all. During the odd minutes, as debits are signed and collected, the universally agreed upon update block is formed. Its cryptographic hash is then included in the message whose hash value is digitally signed by the credit approval private key that corresponds to the dual approval public key of all wallets used for accepting the incoming credit. This proves and guarantees TNT is relatively more immutable than Bitcoin.
The fundamental problem is that while digital signatures establish a legally binding agreement, there must also be a way to prevent removal and inserting of a modified version ex post. This must be done by having a “trusted” set of wallets sign the hash value of the update block. In theory, if all wallets do this, we are guaranteed immutability.