区块和链
我们给出的电子表单模型就是一个区块链的模型。它是简化版的。真正的比特币区块链不会以类似电子表单的格式存储区块。
相反,比特币的区块链以线性“链”的方式存储区块,每个区块在数学上都指向前一个区块。
区块链以线性“链”的方式存储区块。“Txn”是比特币交易的缩写。每个区块都指向前一个区块,但计算机科学家通常会画出这样的链条,箭头从一个方块指向下一个方块,这样更直观。
通过这种方式,即使没有对区块进行明确的编号,区块的顺序也是清晰的。设想一下,你拿起一本平装本小说,把所有的书页都撕下来,把所有的页码和章节号也都撕掉。然后,你把书页撒得满地都是。
不过,您仍然可以将书页按顺序整理成册,因为每页的内容都隐含了前一页中发生的事情。(例如,如果第X页的结尾讲述的是一个角色开车去法院,而第Y页的开头讲述的是这个角色走进法院,那么可以肯定第Y页紧跟在第X页之后。)
哈希
当然,比特币没有“情节”的概念,因此区块之间用数字相互联系。具体来说,比特币使用一种叫作哈希的数学技术。例如,把单词、数字、比特币区块等一堆信息输入一个哈希算法中,这个算法会输出一个简短的信息“指纹”。
其实,人类一直在使用哈希,比如首字母组合。一个很长的英文名字很容易被压缩成几个字母。例如,将“John Fitzgerald Kennedy”这个长长的名字变成“JFK”这个简短的名字。
其中有一个输入(全名)、哈希函数(获取某人姓名首字母的过程)和一个输出或哈希值(首字母)。
计算机使用更多样化的哈希函数,其中最流行的是MD5算法和SHA-256算法,它们的核心思想是一样的:大数据输入变成短输出。
在比特币中,每个区块都有一个相关的哈希。每个区块的哈希部分基于它的前一个区块的哈希。通过这种方式,每个区块都指向它的前一个区块。所以,如果你有一个无序的区块列表和与它们相关的哈希表,你可以很容易地对区块进行排序,这就像一个人可以通过查看情节来排列书页一样。
区块由它们的哈希连接在一起。每个哈希都是根据前一个区块的哈希计算得到的。
哈希表中的数字和字母是怎么回事?哈希是用十六进制[4]编写的。其实际字符长度也比4个字符长得多,但我们的缩短版作为举例已经足够用了。
因此,比特币以区块的形式批量处理交易,并且以链的方式将它们彼此连接起来。区块遇见链。