尽管有些人认为区块链是等待问题的解决方案,但毫无疑问,这项新技术是计算机的奇迹。但是,区块链到底是什么?
区块链
它是比特币或其他加密货币交易的数字账本。该分类账按时间顺序记录并公开。
更概括地说,它是一个公共数据库。新数据存储在一个称为块的容器中,并被添加到一个不可变链(后来的区块链)中以添加过去的数据。在比特币和其他加密货币的情况下,这些数据是一组交易记录。当然,数据可以是任何类型。
区块链技术催生了新的、完全数字化的货币,如比特币、莱特币等,这些货币不是由中央政府发行或管理的。因此,它给那些认为今天的银行系统是一个骗局或最终将失败的人带来了新的自由。包含在区块链中的以太坊技术彻底改变了分布式计算,它引入了一些有趣的概念,如智能合同。
在本文中,我将使用不到50行Python2代码来制作一个简单的区块链。我称之为蛇币。
首先将定义块的外观。在区块链中,每个块存储一个时间戳和一个索引。在SnakeCoin中,两者都需要存储。为了保证整个区块链的完整性,每个块都有一个自动识别哈希。与比特币一样,每个块的哈希将是块索引、时间戳、数据和上一个块哈希的加密哈希。数据可以是你想要的任何东西。
接下来,将创建一个函数来简单地返回一个原点块,以便生成第一个块。这个块是索引0,它有任意的数据值和“previous hash”参数中的任意值。在这一步之后有一个块结构,但是现在它正在创建一个区块链,所以您需要将块添加到实际的链中。如前所述,每个块都需要前一个块的信息。但是根据这种说法,就有问题了。区块链的第一个街区是怎么到达那里的?不得不说,第一块,或者说原点块,是一个特殊的块。在许多情况下,它是手动添加的,或者独特的逻辑允许它被添加。
现在已经创建了原始块,需要一个函数来生成区块链中的后续块。该函数将链中的前一个块作为参数,创建要生成的块的数据,并返回带有适当数据的新块。当新块的散列信息来自前一块时,区块链的完整性将随着每个新块而增加。如果不这样做,外部组织就更容易“改变过去”,以一种全新的方式取代现有的链条。这一系列散列可用作加密的证据,有助于确保数据块一旦被添加到区块链,就不能被替换或删除。
大部分工作已经完成,现在可以创建区块链了。在本例中,区块链本身尚力财经小编2022是一个简单的Python列表。列表的第一个元素是原点块。当然还需要添加后续的区块,因为SnakeCoin是最小的区块链,这里只添加了20个新区块。您可以使用for循环来生成新的块。
让我们测试一下当前生成的区块链。看,这就是区块链。如果想在控制台中查看更多信息,可以编辑完整的源文件并打印每个块的时间戳或数据。
这就是SnakeCoin所能提供的一切。为了使SnakeCoin规模达到今天生产区块链的规模,必须增加更多的功能,例如服务器层跟踪多台机器上的链变化,工作算法限制给定时间段内增加的块数。