最近几期,Conflux计划推出一系列的科普文章,从一些简单的技术原理开始,帮助大家辨别一些项目宣传的概念中,哪些概念是可能实现的,哪些概念如果要实现,是需要有妥协的。在第一期,我们从区块链的“不可能三角”谈起,谈一谈如果要追求极致的效率,究竟要牺牲什么。目前在区块链媒体中,有一个流传很广的概念叫“不可能三角”,即效率、安全、去中心化三者不可并存。和“不可能三角”出现同样频繁的概念,是“不可能三角”被公链某个项目打破。在一些媒体宣传Conflux的时候,也曾经使用过这个说法。不过,Conflux从未在官方宣称“打破不可能三角”,我们认为这并不是一个严谨的概念。只能说,这个概念被提出来的时候,还没有人把这三件事情同时做好,并没有人通过严谨的分析证明它不可能。今天,我们来介绍另一个不可能三角。无论一个区块链是公有链还是联盟链,是PoW还是PoS,是采用中本聪共识还是BFT还是其他的什么方式,都绕不开它。这个不可能三角包括三个目标。1.全部节点同步与验证
直播|“后浪”仙女58Coin-小贝如何乘风破浪:金色财经 · 直播主办的《 币圈 “后浪” 仙女直播周》第7期20:00 58COIN|市场总监小贝将在直播间聊聊“币圈‘后浪’仙女如何乘风破浪”,感兴趣的朋友扫码移步收听![2020/7/1]
在公链网络中,公链网络的正确性与安全性依赖于一些节点的背书。例如,在比特币或以太坊中,根据协议,每一个矿工挖出区块时,要保证新区块和历史上的每一个区块每笔交易都是正确的。也就是说,比特币矿工出块时,在为之前所有的区块进行正确性背书。在EOS中,超级节点通过签名对区块的正确性背书。我们这里称为“参与共识的节点”。“全部节点同步与验证”要求每一个被确认的交易,都得到过所有参与共识的节点的同步与验证。这个目标是和安全相关的。我们想象一个场景,有一个人想通过伪造无效签名,制造非法交易,盗走你的资产。如果只有一小部分参与共识的节点同步和验证了这个交易,而其他节点不同步这个交易,直接采信那一小部分节点的判断结果。如果这样的话,将一笔非法交易混入交易历史的可能性,就会高于每个参与共识的节点都进行同步和验证。二者的安全性是不一样的。2.超高吞吐率
动态 | 巴西里约热内卢司法部门讨论区块链如何提高公众透明度:据Cointelegraph 12月6日消息,在由里约热内卢里约热内卢州司法学院(EMERJ)组织的一个常设论坛上,里约热内卢的司法部门将讨论区块链如何有助于提高公共透明度。[2019/12/7]
最终确认交易的平均吞吐率超过11000TPS称之为超高吞吐率。3.低带宽要求
对于每一个参与共识的节点,网络带宽的最低配置要求不高于20Mbps(2.5MB/s)。这个目标是和去中心化相关的,参与的门槛越低,能参与共识的人就越多,越有利于去中心化。以上就是这个不可能三角的三个目标。原因理解起来也很简单,如果一个节点只有20Mbps的带宽,那么每秒只能下载2.5MB的数据,大约是10000笔交易。如果网络中最终确认交易的平均吞吐率超过11000TPS,这个只有20Mbps带宽的节点是没有能力同步和验证每一笔交易的。那么面对这个困难,做出取舍的方案又有哪些呢?1.放弃全节点同步与验证在这些方案中,Sharding是一个很著名的解决方案。Sharding方案的大体思路是,整个区块链在逻辑上分出若干个Shard,将没有关联、互不冲突的交易分到不同的Shard中去,每个Shard由一部分矿工负责同步和验证。对于矿工来说,不需要为其他Shard中的交易正确性负责。Sharding方案是一个提高吞吐率的思路,但这个思路牺牲了一部分的安全性。毕竟,如果有一个人想通过伪造签名,制造非法交易盗窃你的资产,全网中每一个节点都帮你防范非法交易,和只有一小部分节点帮你防范非法交易,二者的安全程度是不同的。不过,对于只是存个零花钱的账户地址,相对于安全性,可能用户对交易成本更敏感。所以这一方向是非常有探索价值的。但如果用Sharding方案下的TPS和别人全节点同步与验证下的TPS比,就很不科学了。另外一个思路是,通过零知识证明或可验证计算等密码学工具,允许一个节点不必同步每一个交易,只需要同步区块头及一些密码学的元素,也可以验证一个区块的MerkleRoot是正确的。当然,这个思路上有很多坑需要去解决,如果有机会,我们会写一篇文章展开讨论一下。2.放弃高TPS这里的放弃高TPS,是指在现有的网络条件下,放弃10000TPS以上的吞吐率。Conflux保留了去中心化和安全性,就需要保留全节点同步与验证和低带宽要求,以实现家用网络条件也可以当矿工,每一笔交易都得到了每一个矿工的验证。如果要保留这两点,效率是有天花板的。3.低带宽要求在一些共识机制中,普通用户不参与对交易的同步与验证,而是通过一些方式选出少数特殊的节点来进行共识。这时,我们可以假设每一个参选的节点都准备了足够的计算机资源,例如更好的CPU,更大的硬盘,更大的网络带宽。这时,也就没必要将“最低配置要求”设的很低了。下一次,如果您看到一个项目声称大于10000TPS,甚至是喊出无限可扩展的口号时,您就需要来看一下在这个不可能三角中,它放弃了哪一角。是放弃了第一点还是第三点?如果是放弃第一点,项目是采用了Sharding方案?还是做出了其他的修改?这种修改会不会带来安全性问题,如何解决?如果是放弃第三点,高TPS是否基于更高的网络带宽要求?还是说在网络带宽无限的条件下无限可扩展?顺便推荐一下我们的线下活动~在本期ConfluxMeetup,我们为大家邀请到了ConfluxCTO伍鸣、Conflux研究总监杨光、TOPNetworkCo-founder&CEOSteveWei来一起聊一聊《下一代公链和DApps生态前景》。点击报名
动态 | Poloniex回应CLAM“闪崩事件”:无论如何损失将得到解决:Poloniex在推特发布了对于CLAM事件更新:“毫无疑问,我们致力于让受影响的债权人成为一个整体,无论遇到什么样的困境。我们正在努力实现这一目标,包括(但不限于)收回违约借款人欠贷款人的债务。无论如何,损失将得到解决。”据金色财经此前报道,用户考虑起诉Poloniex,指责其处理加密货币CLAM闪崩亏损之举为盗窃。[2019/6/8]
声音 | Brendan 发推特表达如何实现成功:据 IMEOS 报道,Block.one CEO Brendan Blumer 发推特表示,成功通常是有具备充分理由让社区听从你,并实际提供他们(社区)想要的东西来实现。[2018/10/1]
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。