区块链作为数据结构

哈Ha!



今天,我们想概述一个新的讨论话题,从计算机科学的角度(作为数据结构之一)简要地研究区块链。最近,区块链在加密货币领域之外的使用越来越多,这一趋势当然值得关注。让我们来谈谈它!



区块链技术可以用许多不同的方式来解释。直到最近,区块链仍主要被视为加密货币。比特币是我们许多人中第一个区块链协会。但是存储加密货币交易只是区块链众多用例之一。在本文中,我们将从这一观点退后一步,并在计算机科学的更一般背景下考虑区块链。



区块链是一种数据结构



数据结构是一种存储,组织和管理数据的方式。数据结构使您可以访问,添加,修改和搜索此结构中包含的数据。最常见和最基本的数据结构包括数组链表



数组



该数组包含许多枚举元素。这些可以是数字,字母,单词,甚至整个文件。多亏了索引,您可以引用数组中的每个元素。因此,如果您想更改数组中的一个条目并且知道它在哪里,则可以立即访问它







具有六个元素的一维数组



链表



节点是链表中包含的数据项。该节点包含至少一个数据对象和一个指向下一项的指针。指针的功能是告诉计算机给定列表中的下一个项目在哪里。



如果您查看列表中的第一项并想引用第二项,请查看将您带到下一个节点的指针。向链表添加数据比向数组添加数据更容易,因为需要将其扩展一个节点,并且向数组添加数据将增加该数组中元素的数量。但是,使用链接列表时,您无法立即访问数据。



如果要在链接列表中查找特定的数据项,请首先查看此列表中的第一个节点,即其... 如果这不是您要查找的元素,请按照将您带到下一个节点的指针。如果该节点不包含您要查找的数据,那么您将继续遵循从节点到节点的链接,直到找到所需的数据为止。







三节点链表



区块链



在数据结构的上下文中,区块链最类似于链表。同样,在区块链中,数据被分为称为块的容器块与链接列表节点非常相似每个块包含一个链接,该链接是前一个块的哈希。它充当到上一个块的链接,并有助于维持块链中的顺序。







区块链和链接列表之间的主要区别在于,区块链上的每个链接都是加密安全的。您可能已经听说过术语“仅追加”应用于区块链。这意味着您只能通过从头完成链将新数据添加到区块链。不断检查受保护链接的有效性。如果可以在区块链的中间插入恶意区块,例如在下图中的区块1和3之间,则可以将链接放置到前一个区块1,但不能链接到下一个区块3。







每个新块都建立在现有块的基础上,此过程通常称为确认。区块越旧,其获得的确认越多。每次确认都很难伪造块中的数据。在下图中,块2有一个确认。要伪造块2中的数据,您将必须重新创建一个包含新有效链接的有效块。每次下一次确认后,您将不得不重新创建另一个块。因此,该块越旧,对该块不进行任何更改的置信度就越高。



块之间的链接不仅取决于块的顺序,还取决于每个块中包含哪些数据。无法在区块链中的块中添加或删除数据。基于此属性,置信度基于放置在区块链中的数据不会发生任何事情。自然,任何伪造在区块链数据结构中都是显而易见的。对数据所做的任何更改都会中断到所有后续块的链接。



虽然不可能删除或更改区块链上的数据,但很容易将数据添加到附加到链上的新块中。例如,可以将新交易添加到加密货币区块链中。由于记录在网络上的所有先前交易都是不可变的,因此该交易易于验证。当从地址Y需要数量X时,该地址的余额必须至少为X。



加密货币只是区块链技术的一种特殊应用。区块链正迅速成为供应链管理,车队管理等越来越可行的选择。



结论



区块链是一种适用于计算机科学的数据存储方法。区块链的元素-它的块-通过密码相互链接。将数据写入块后,将无法更改数据。这就是区块链的价值。它是一个不变的注册表,在不受信任的环境中操作时,您可以在其中安全地存储数据。



我想在本文结束时发布一条推文,其中包含区块链技术特性的精髓,并说明了其在其他数据结构中的地位。



, , .



, , . , – — @NickSzabo4



All Articles