区块链的基本概念非常简单:一个存储不断增加的有序记录的分布式数据库。
然而,当我们谈论区块链时,我们很容易将其与区块链要解决的问题混淆,比如误解为流行的、基于区块链的、像比特币和以太坊一样的项目。术语“区块链”通常与交易、智能合约或加密货币等概念紧密相关。
这必然使得理解区块链变成一项更艰巨的任务,特别是清楚地理解源代码。接下来我将介绍一个我用200行Javascript代码完成的超级简单的区块链:NaiveChain。
区块结构
第一个步骤是确定区块的结构。为了让事情尽可能简单,区块结构只包含最必要的部分:索引、时间戳、数据、哈希值(hash)和前一个区块的哈希值(hash)。