作者:Sam Polgar选择Hedera Hashgraph是因为它的共识协议比较特殊:比特币 – 工作量证明以太坊 – 权益证明Cardano – 权益证明Hedera Hashgraph – G
作者:Sam Polgar
选择Hedera Hashgraph是因为它的共识协议比较特殊:
比特币 - 工作量证明
以太坊 - 权益证明
Cardano - 权益证明
Hedera Hashgraph - Gossip about Gossip证明、Virtual Voting证明
简介
以太坊在利用率和安全性方面是最经得起考验的区块链;它还运行着加密货币生态系统中73%的去中心化应用,并根据其弱点不断进行创新--想想L2s、PoW => PoS和分片。
Hedera的第三代分布式账本不是区块链;它是一个有向无环图(DAG),它宣传了比第一代和第二代区块链更多的好处;在这篇文章中,我将比较Ethereums区块链和Hedera的Hashgraph
- 分布式分类帐的目的
- 状态管理
- 存储
- 交易的生命周期
- 网络激励
- Gas和交易费用
- 点对点的gossiping
- 共识
Blockchain vs graph
为什么我们需要分布式账本?
以太坊和Hedera都是去中心化的分布式网络。它们的功能远远超过了一个简单的账本,然而现在让我们保持简单,聚焦在分布式账本技术(DLT)。
像比特币、以太坊和Hedera这样的DLT使用加密技术在账本上记录其参与者的交易,从而确保交易和网络的安全。
分布式账本与中心化账本不同:它们不依赖中央机构(下图中的清算所)来支付和运行基础设施和处理交易,它们的中心化账本有一个单点故障,容易受到攻击,而且它们的记录是可变的,这意味着它们容易被欺诈。
分布式账本是在多台电脑、多个地域之间共享和同步的,可由多人公开访问。由于交易数据存储在多个账本上,它们不容易受到网络攻击,而且记录是不可改变的,因此可以防止欺诈。
不仅仅是分布式账本
以太坊和Hedera都比账本更强大。以太坊最大的区块链创新是智能合约(一个在区块链上运行的不可变的应用程序)。想想看,你在区块链上创建并启动的一个小小的计算机程序,它不能被关闭。
除了以太坊的智能合约之外,Hedera还提供了4种本地服务,我将在接下来的博文中进一步讨论:
- 代币服务
- 共识服务
- 智能合约服务
- 文件服务
值得注意的是,以太坊的智能合约可以促进代币(EIP 20,EIP 721)和主机文件(通过智能合约将HEX数据上传到链上)都有价格/速度限制。
它们不是账本,是状态机
以太坊是一个状态机
简单地说,一个状态机在响应输入时从一个状态变为另一个状态。例如,一个自动售货机(状态机)会根据输入(插入钱+选择物品=交易)发放物品(改变状态)。
以太坊是一个状态机,因为它的节点(验证者)进行交易(用输入创建/验证区块),以改变区块链的状态。
最新状态是以太坊的当前状态,这在其他地方是没有的。当前状态在每个新区块中都有--见下文。
Hedera的Hashgraph是一个复制的状态机
复制的状态机“将维护该变化状态的负担和责任分配给多台计算机,以提供容错性”
每个创建新区块的以太坊节点负责更新状态(对于Hedera),多个节点通过维护一致的状态表示来“去中心化”责任(即多个节点包含账户余额的状态)。
Hedera的共识机制确保所有交易都有时间戳顺序。节点会迅速按照正确的交易顺序安排交易,以保持与其他节点相同的状态。
存储
以太坊持久保存所有交易数据
以太坊的节点存储数据(交易、状态和收据的根),处理交易并向区块链添加新区块。
以太坊的节点承担着整个区块链存储的重量,值得注意的是,Vitaliks EIP的是要解决这个问题。
Hedera Hashgraph
由于Hedera提供快速的Finality(保证提交的交易是完整的和不可改变的),状态历史可以被修剪,这意味着节点不需要保留整个状态历史(不像以太坊从创世区块开始存储整个状态)。
此外,Hedera的节点可以根据其职责进行优化——主网节点专注于共识和状态持久性,而镜像节点存储历史交易和识别正确历史的证明。
交易的生命周期
以太坊区块
每个区块包含
- 区块编号
- 交易
- 父哈希值
- 当前哈希值
交易可以是任何类型的交易,例如,以太币转账或与智能合约的互动。
每个区块都确保哈希值和父哈希值在区块链的每个节点副本中都是一致的。这就是文章前面所讨论的gossiping的结果。
以太坊gas和交易费用
提交交易的用户需要向网络支付ETH的“处理费”,毕竟,网络是由任何拥有电脑、互联网、处理能力和安装了Ethereum客户端的人运行。
一旦你提交了你的交易,你的请求就在一个交易池中,等待被纳入一个区块中。
以太坊的交易是由供求关系决定的,就像Uber的激增定价一样;需求大,处理费用就高。如果你提交的交易费用较低(想象一下在激增定价期间与你的Uber司机协商半价,他们会先去接别人),以太坊验证者会选择先处理更有利可图的交易。
验证者将索取所有提供的交易费用。
以太坊交易的公平性
值得注意的是,验证者会选择处理哪些交易;因此,交易的时间戳并不是按照它们收到的顺序,而是按照,它们被验证者处理的顺序。许多交易从未被处理,因为它们在提交时没有足够的Gas。
以太坊可能不会被用于需要绝对后果处理的用例中。
Hedera Hashgraph事件
Hedera将每个“区块”称为一个事件。与区块类似,每个事件包含
- 签名
- 时间戳
- 交易
- 你做的最后一个事件的哈希值(与以太坊不同)。
- 你收到的最后一个事件的哈希值(与以太坊不同)。
Hedera Hashgraph的gas和交易费
由于Hedera的处理速度,Hedera上的gas和交易费用是无限便宜的,此外,大部分未使用的gas费用将被退回给交易人。
Hedera交易的公平性
Hashgraph的3个优势涉及交易对Hashgraph共识机制的访问。
- 公平访问:不能阻止任何交易进入或被推迟进入系统,不像以太坊的验证器会选择最昂贵的区块先进行处理。Hedera要求新的交易要有足够的gas
- 公平的时间戳:因为每笔交易都是公平处理的,所以共识的时间戳反映了每笔交易的真实处理时间
- 公平的交易顺序:因为有公平的访问和公平的时间戳,Hedera的交易顺序有自信的记录,这可以用于大量的使用案例,其中顺序是非常重要的,如法律、股市交易等。
网络激励
与传统的数据库由一个组织管理并具有完全的读写权限不同,像以太坊这样的加密安全的分布式账本是不可改变的,并且是去中心化的。网络上的每个节点都有一个完整的不可变的账本记录,并利用闲聊,将继续为每个创建的区块更新其账本。
以太坊
以太坊节点,又称验证器,是用来验证交易和运行网络的软件客户端。验证者可以由任何人运行,并因验证网络而获得奖励,偶尔会收到一个区块的创建。
每个需要与链上的交易的参与者都会在他们的交易中向验证者发送一笔款项,激励验证者继续他们的工作。
Hedera
Hedera的主网节点由管理委员会管理,该委员会由世界上一些最大的公司组成。Hedera还不允许公众验证节点,然而,当允许时,Hedera验证者将获得本地货币HBAR的奖励,奖励金额与HBAR的质押成正比a。
点对点的gossip
gossip协议是向网络传递信息的最快方式——使网络同步。简单来说,一个Gossiping协议是由1个节点(Amy)向另一个节点(Bob)gossiping,Amy和Bob再向另外2个节点gossip,等等。
分布式系统,如以太坊、Hedera、亚马逊的NoSQL数据库(DynamoDB)和Apache Cassandra使用P2P gossip协议,将数据传播给网络上的其他节点。下面的可视化图展示了Gossiping,节点以指数级的速度传播信息。Gossip同步指的是2个节点gossip的时间。
以太坊的gossip
以太坊的区块在链上是严格排序的,每个新区块都包含对其父区块的引用,网络上的所有节点都同意区块的总数。
为了实现同步链(gossip同步),以太坊节点将最新的验证区块gossip给网络上的所有节点。一旦收到,新节点可以将区块添加到链的顶端。在所有节点收到新区块之前,新区块不能被铸造(以太坊平均约0.4秒)。
Hedera Hashgraph的gossip
Hedera在Gossiping方面的创新是Leemon Baird博士的创新,他是Hedera的联合创始人。
想创建一个更快、更安全的网络,Baird博士实施了2个独特的变化
1. 任何节点都可以向任何其他节点gossip。因为Hashgraph是一个图而不是区块链,所以Hedera的节点不需要在开采/传播新区块之前开采一个区块并传播它。Hedera创建事件,这是一个类似于区块的概念,交易被分组并暂时存储在图上。
不像以太坊,每个区块都包含完全相同的交易,Hedera的事件包含他们遇到的任何交易,因为任何节点都可以向任何其他节点gossip交易。
你可能会认为这个过程会产生大量重复的数据存储在图上,然而,Hashgraph会找到所有相同的交易,计算它们提交的真实中值时间,按真实时间戳排序,并修剪掉其余的交易。
2. 每个gossip都间接地包含了所有gossip的历史。与区块链不同,区块链只对新区块进行gossip
Hashgraph对事件进行gossips,包含2个哈希值。节点制造的最后一个事件的哈希值,以及节点接收的最后一个事件的哈希值,从而满足了有向无环图(DAG)的属性,使DAG图算法能够使用这两个哈希值拼凑出整个图。
Hedera的可视化对这一点做了很好的总结
共识
像以太坊和Hedera这样的去中心化的分布式系统在节点对网络状态进行投票时达成共识。网络状态很重要,因为它是关于交易真实性的协议。
中心化与非中心化
中心化系统中不需要共识,因为系统假设信息是真实和正确的。例如,Alice从她的银行应用程序中向Bob发送了100美元 - 银行验证了Alice的账户余额并批准了这笔交易。
在去中心化的分布式系统中,没有可信的权威。网络需要在每次(或几次)交易后达成共识。
网络上的节点将验证Alice是否有足够的钱发给bob,而网络共识将确保整个网络同意该验证,然后再写到账本上。
共识协议与共识算法
- 协议是一套确定的标准
- 算法是关于如何解决问题的确切指示
让我们把足球作为一个体育例子:
足球协议
- 靴子在脚上
- 靴子可以踢到球
- 手球被罚下场
- 比赛由得分多的队获胜
足球算法
- 在防守者之间运球
- 然后在守门员无法防守的地方对准门柱
- 然后将球踢向该点
共识协议 - 拜占庭式容错
拜占庭容错(BFT)是分布式系统可以抵抗拜占庭故障的属性。
拜占庭故障用拜占庭将军的问题来解释——拜占庭将军们有一个通信问题。
如下图所示,将军们已经包围了一个敌人的城堡,并试图协调他们的最后行动。要想成功,所有的将军必须在同一个决定上达成一致,要么全部进攻,要么全部撤退。
每次他们试图安排攻击时,问题就会出现;每个将军都会发送他们的投票,说明他们想做什么。拜占庭问题发生在信息传递是欺诈性的时候——这些信息的设置是为了迷惑他人。
将军们彼此之间没有安全的通信,试想一下,他们需要把人从军营送到军营;当他们收到的信息是真实的,他们怎么能相信呢?
- 将领之间的信息可以被截获,并在发送和接收之间被改变
- 送信人可能会丢失或被杀
- 将军们可能会腐败或妥协,向不同的将军发送相互矛盾的信息
将军们需要一起安全地做出决定并达成共识,执行他们的计划——协调。
这个概念被应用于分布式计算机系统,每个将军都是网络上的一个节点,每个节点对另一个节点都是陌生的,如果一个节点对通信不确定,网络上的其他节点可以验证其真实性。
抗拜占庭故障的系统直到1999年才出现,此后一直被用于飞机和军事通信中。
拜占庭故障可能发生在以下场景中
- 软件/硬件故障
- 网络问题,或网络缓慢或拥堵
- 停电
- 恶意节点试图中断网络上的通信
拜占庭容错是指分布式系统在面对拜占庭问题时达成共识的特性。
像以太坊和Hedera这样的去中心化网络也是分布式的,因此,网络上的节点需要根据节点或网络的拜占庭故障达成共识,以确保整个网络的交易被记录、验证并在网络中共享,与每个节点记录网络的状态并行。
共识算法
共识算法解决了拜占庭将军的问题——以太坊使用权益证明(PoS),Hedera Hashgraph使用虚拟投票。两者的区别总结如下:
以太坊--权益证明(PoS)
以太坊的PoS算法称为Casper。
以太坊的PoS使用投票,验证者从领导者那里收到一个新的区块,验证者检查交易和区块签名是否有效,然后在网络上发送他们的投票。
基于投票的共识很慢,因为每个新的决定都需要每个节点投票,然后签署决定,产生网络流量。
许多基于投票的共识算法会产生更多的流量,例如,额外的握手和收据。
Hedera Hashgraph--虚拟投票
与以太坊不同,Hedera的Hashgraph没有一个领导者验证交易,创建一个区块,要求网络验证,然后要求投票决定该区块是否有效。
Hashgraph的gossip与每个节点分享整个交易历史。每个节点不需要从另一个节点收到投票,因为每个节点都可以检查整个交易历史(通过运行DAG算法和发现所有历史)他们有交易历史,知道他们将投票。
以太坊要求网络上的所有节点拥有相同的信息;Hedera的Hashgraph要求2/3的节点确认交易并达成共识。
有序事件的账本由gossiping协议启用,每个节点记录事件接收时间,而共识是时间的中位数。
Hedera收到了计算机验证的证明,他们的共识机制是aBFT。
从Hedera的网站上复制,Hedera通过有秩序的事件和共享gossip的网络来达成共识。
值得注意的是,Hedera Hashgraph节点使用“权益证明”来优先考虑每个节点的验证,并保持网络的诚实。
总结
一方是那些相信以太坊将成为未来主导的大多数群体,他们认为以太坊是唯一值得信赖的链。然而,像Hedera的Hashgraph这样的第三代账本在安全、特性和功能方面提供了进步,吸引了不同行业的人。我相信我们会有一个共享的世界。
原创文章,作者:币圈吴彦祖,如若转载,请注明出处:https://www.kaixuan.pro/news/452683/