解读区块链技术

解读区块链技术

什么是区块链

区块链(blockchain)是一个虚拟的账本,其中每一个记账明细记录都是一个块,这些记录分发给网络中的每个人,他们可以读取和追加,但不能修改,增删改查,CRUD无法删除和修改。如果要删除或修改,添加一条新记录来抵消原来的值。比如在做财务账的时候,你前面“借错”了账,然后又加了一条等额的“贷”记录来抵消。再比如,上市公司经常出季报修改,上个月盈利500万(中国某上市公司卖房),次月发布公告,上月盈利修改为300万.不能收回,也不能用橡皮擦修改。在金融领域,如果要像修改数据库记录一样使用SQL update修改记录,那么篡改财务分类账就是犯罪。区块链中的一个区块就是这样一条记录与之前的记录相连,就像幼儿园小朋友手拉着手,面面相觑,就像一个链表LinkedList,让任何人都无法篡改这条链,当然,这种高度序列化的交易是像ACID 所以,制约区块链广泛应用的一个瓶颈就是它的吞吐量和并发性能这是它的高交易安全性导致的牺牲。

区块链实际上是一个分布式交易数据库,保证了高一致性,并维护了一个不断增长的有序交易记录列表。它的分布式事务实现不同于集中式数据库分布式事务。后者通常使用Paxos或Raft进行共识聚合,最终将所有服务器节点状态修改为一致状态;区块链的分布式交易机制也不同于传统的2PC两阶段交易机制,主要依赖交易参与者。区块链的交易机制与Event Sourcing的交易机制非常相似,都是通过锁定资源来实现的。区块链不仅保证了交易的高度交易完整性,而且结合或耦合了安全的加密算法。这种集成设计非常适合各种与金钱相关的转账交易、智能合约或加密货币应用。

区块链中的每个区块都由一个头部和一个主体组成:

这些是每个块的数据。除此之外,每个块都有开发人员定义的最大字节数。当达到这个最大大小时,块被添加到区块链并开始创建新块。

区块编号BlockNumber

区块链中的每个区块都有一个数字代表该区块在整条链中的位置。链中的第一个块有一个特殊的名称。它们被称为创世块,即起始块。世界块。

前一个块号PrevBlockHash

每个块都在标头中引用前一个块的哈希值,这非常重要,因为这是区块链保持一致性和控制不变性的方式,创世块没有对前一个块的任何引用,因为它是第一个块.

默克尔根

merkleRoot 是区块内所有交易的哈希结果,如果区块内发生任何改变,这个哈希值也会改变,并使改变的区块和下一个区块失效。

现在你可以想:为什么这个字段叫MerkleRoot 而不是blockHash?这是因为比特币使用Merkle 树算法从区块的数据中生成哈希值。

随机数

这是与块的挖掘过程相关联的32 位数字。该数字仅用于查找与区块链难度相匹配的哈希

创建时间

这是块创建的时间戳。

数据

这是保存所有交易数据的地方

散列

哈希算法实际上取决于区块链的每个实现,比特币使用长度为256 位的SHA-256(安全哈希算法)。

区块链

区块链通过prevBlockHash 将块链接在一起:

merkleRoot 的值是由Data 信息生成的,如果有任何变化,merkleRoot 也会发生变化,而变化的块之后链接到prevBlockHash 的剩余块将不再有效。这就是为什么区块链是不可变的。

就业证明

工作量证明是区块链的一个重要特征,也是必需的;区块链的其他经常提到的功能(例如安全性)是次要的,有用但不是必需的。

任何账本都绝对需要秩序。没有收到的钱不能花,已经花的钱也不能花。区块链交易(或区块链交易)必须有明确的秩序,不需要可信第三方来协调秩序。这就是上面提到的分布式事务机制。如果交易是由世界各地的匿名参与者产生的,并且没有中心化的组织

负责交易之间的顺序排列(不同于集中式的分布式事务数据库),但事实确实需要一个排序,那么该怎么办呢?虽然一个交易(或块)可能包括时间戳,但这些时间戳怎么可信?

在分布式系统不可能事件与时间点关联起来,这是一个未解决的问题,直到中本聪发明了区块链的工作证明这个解决方案之后,分散的分类帐才可能得以实现。

区块链的工作证明是一个符合某个要求的SHA-2哈希值,这个值是非常难以找到的。困难之处在于哈希小于一个特定数字,数字越小,输入值越稀少并且发现它的难度就越高。它被称为“工作证明”,就是因为已知具有这种哈希的值已经非常罕见,这意味着找到新的这样的值需要大量的试错,即“工作”。反过来,这意味着 消耗"时间"。比特币寻找难度是动态调整的,这样每十分钟平均能找到一个正确的哈希值。

也就是说,区块链没有办法决定谁最快算出哈希值(因为每个参与者的服务器时钟不可能像对手表那样对得精确),那么延后一段时间比如10分钟,谁先算出谁获胜,然后迅速繁衍,谁的链越长越有优势,这是对于10分钟内可能有两个获胜者的附加判断条件

事件溯源是通往区块链最便捷有效的手段,首先使用事件聚合概念对系统建模,然后决定是采取统一共享式存储事件日志?还是采取复制方式存储事件日志?统一共享方式比较简单切实可行;而分布式存储则需要选择一个主节点进行专门的事件日志追加,从而才能保证事件日志的顺序性,其他节点再复制保存这份新的事件日志备份,这样的好处是没有单点中心化风险,在去单点中心化方向上,区块链则是更极致完美的实现,与其自己投入巨资建立数据中心或数据湖,不如通过区块链实现全球平等共享数据。

版权声明:区块链革命 发表于 2023-05-11 5:00:47。
转载请注明:解读区块链技术 | 零零洞洞

暂无评论

暂无评论...