原文标题:《Wait, Why Do We Need Consensus Again?》
撰文:Shresth Agrawal、Dionysis Zindros、k4m4,pod.network
编译:Tia,Techub News
地球是宇宙中心的这一错误认知延续了几个世纪。那时的人们认为太阳、恒星和行星都围绕着地球旋转。直到勇敢的思想家们揭示了日心说的真相,才彻底改变了天文学,从而打破了地心说的模型。
和天文学世界一样,区块链世界也存在一个长期误解:共识是建立去中心化支付的必要条件。我们被比特币和以太坊束缚住了。
去中心化货币需要去中心化共识的解决方案。 —以太坊白皮书,2014 年
共识其实是敌人。通过消除共识,我们可以像谷歌搜索一样快速完成交易。
共识难题
Eve 攒比特币买了她的第一辆特斯拉。Bob 和 Charlie 是特斯拉经销店运营者。
Eve 对一条消息签名,以此表示她正在向 Bob 转账。Bob 收到了 Eve 签署的付款,但还不放心把车钥匙交给她。因为 Bob 需要确定 Eve 没有同时向 Charlie 签署付款交易(双花)。
图 1:Eve 尝试双重支付,目的是将相同的代币转移给 Bob 和 Charlie。
通常,区块链共识来解决双重支付问题。共识将交易作为输入,并按照多数节点都同意的某种全局顺序进行输出。
图 2:共识作为一个黑匣子,将无序的「内存池」交易作为输入,并按照大家都同意的顺序输出它们。
回到 Eve。将 Eve 支付给 Bob 的交易叫作 tx1,支付给 Charlie 的交易叫作 tx2。区块链通过共识确保交易顺序,当出现双花时,最先被打包出块的交易才是有效的。
在只有一方参与的网络中,达成共识很简单:该方只需按照收到交易的顺序输出交易即可。但在有两方或多方参与的网络中,网络条件的差异将导致交易以不同的顺序接收。除此之外,恶意方可以故意提出相互矛盾的观点或引入网络延迟。那么,我们如何就全球秩序达成一致呢?
我们可以使用中心化银行来管理所有交易。但由于我们不想依赖任何可信中介,因此我们选择一组称为验证者的参与方,并假设其中三分之二以上是诚实的。
验证者通过多轮沟通达成共识。每隔一段时间,就会随机选择一个领导者,通过将待处理交易放入他们签名的区块来提出全局顺序。其余验证者对领导者的区块进行投票。拥有三分之二验证者签名的区块被视为已公证。恶意领导者可能会选择性地审查交易,甚至无法创建区块,从而迫使流程重新开始。多次重复此迭代过程可让每个人最终达成相同的顺序。达成共识的过程很慢。
相比之下,Web 应用很快,它只需要实现一次往返 —— 客户端发送 HTTP 请求,服务器返回 HTTP 响应。
我们需要完整排序吗?
让我们重新考虑一下:每笔交易都需要成为全球状态的一部分吗?
假设进行了两笔付款交易:Alice 向 Bob 付款,Charlie 向 Dave 付款。由于这两笔付款是独立的,实际上可以按任何顺序执行。即无论以哪种方式执行,结果状态都保持不变。
图 3:Alice 向 Bob 支付的款项与 Charlie 向 Dave 支付的款项无关。无论这些交易的结算顺序如何,结果都保持不变。
共识可以解决双重支付问题——但我们能否避免因此带来的延迟成本?
方法如下。与共识类似,还是需要一组验证者,并假设其中三分之二以上是诚实的。验证者不是就全局顺序达成一致,而是通过签名来保证他们收到的交易有效(基于他们的本地视图)。只要获得超过三分之二的验证者确认的那笔交易则为有效交易。
Eve 向验证者发送两笔双花交易。首先,有一组不诚实的验证者同时签署了这两笔交易。然后,她将诚实的验证者分成两组(假设每组占总验证者数的三分之一),并向不同组发送不同的交易(比如向第一组发送给 Bob 的交易,向第二组发送给 Charlie 的交易)。不过 Eve 还是无法为这两笔交易收集足够的签名来执行双重支付攻击。
将这一分布式网络再具像化,假设这个网络有 N 个验证者,其中不到三分之一是恶意的。
诚实用户:向所有验证者广播新的交易,并在收到三分之二以上验证者的签名后,认为交易已完成,该笔交易获得证书(certificate)。
诚实验证者:维护本地未花费代币列表,并且仅签署代币的第一个有效交易。
如果要完成双花,两笔双花交易都需要获得证书,即需要超过三分之一的验证者是非诚实的。
这种非共识协议不需要验证者之间进行通信,只需要一次网络往返!并且,这一架构在区块链文献中已被充分研究,在文献中,其学术用语为一致性广播。
会有潜在风险吗?当 Eve 试图进行双重支付时,共识将在全球范围内对她的交易进行排序,并且只有两个交易中的第一个会被接受。但在我们描述的协议中,协议无法保证 Eve 的每一笔交易都会最终完成。Eve 的账户甚至可能永远被封锁,因为我们不必向对手方提供任何保证。
那么,我们为什么需要再次达成共识?
我们不存在达成共识一说。
除了支付之外,「bag」或常见子集协议(例如,链上拍卖、投票、限价订单)、仅附加信息流(去中心化社交、公证)以及可以表示为无冲突复制数据类型的协议(社交图谱、声誉系统、游戏)都可以在没有全局排序的情况下运行。目前运行的许多依赖顺序的 DeFi 协议也可以在无需全局排序的情况下运行。
Pod消除了共识,从而实现了像谷歌搜索一样快、像比特币一样安全的去中心化系统。
免责声明:本文提供的信息不是交易建议。BlockWeeks.com不对根据本文提供的信息所做的任何投资承担责任。我们强烈建议在做出任何投资决策之前进行独立研究或咨询合格的专业人士。