以太坊:望梅止渴的以太坊分片(Sharding)

不久前 Vitalik 发了一篇题为《为什么分片棒棒哒:揭开技术属性的神秘面纱(Why sharding is great: demystifying the technical properties)》的文章(https://vitalik.ca/general/2021/04/07/sharding.html,中文机翻痕迹明显,建议阅读英文版),从技术上深入浅出地讲解了以太坊分片提供的特定属性和付出的牺牲。

文中提到:“分片是以太坊可扩展性的未来,它将是帮助生态系统每秒支持数千笔交易并允许世界上大部分地区以可承受的成本定期使用该平台的关键。”

美国银行业存款连续第三周下降 贷款基本持平:金色财经报道,美国银行业存款连续第三周下降,创近两年来最低水平,延续为期一年的下滑态势,因为客户继续转向货币市场基金以求更高回报。贷款基本持平。美联储周五公布的数据显示,截至5月10日当周,经季节性因素调整后的商业银行存款减少264亿美元,至17.1万亿美元。其下降主要集中在大型银行。未经调整的存款下滑570亿美元,前一周增加665亿美元。经季节性因素调整后的商业银行贷款减少33亿美元。未经调整的贷款和租赁下降174亿美元。(财联社)[2023/5/20 15:14:54]

文章是好文章,特别是通过定义以太坊分片的特定属性,与“流氓分片”(原文所说的“具有非常不同且通常弱得多的安全属性的技术”)划清了界限。

Angle Protocol已添加代币化短期美债 ETF“bIB01”作为agEUR抵押品:5月16日消息,去中心化稳定币协议Angle Protocol已添加代币化的短期美国政府债券 ETF“bIB01”作为欧元稳定币agEUR的抵押品,bIB01由代币化现实资产项目Backed Finance提供支持,用户可使用bIB01借入agEUR。[2023/5/16 15:05:00]

虽然烤仔非常佩服 V 神画大饼的实力,也认同安全可靠的分片技术是未来区块链技术必然的发展方向,但是对于文中的若干错误仍然觉得不吐不快。

文章的核心逻辑是 V 神认为通过“简单”技术无法同时让区块链获得可扩展性(Scalability)、去中心化(Decentralization)、安全性(Security)三个属性,即所谓的“不可能三角”,而分片技术可以同时解决这些问题,所以“分片棒棒哒”。这个逻辑初看似乎有点道理,但是仔细想想却似是而非,主要有三个漏洞:“简单”技术、“不可能三角”、分片的必要性。

Provenance Blockchain Foundation任命Joshua Maddox为开发者社区总监:金色财经报道,金融服务公司Provenance Blockchain Foundation今天宣布任命Joshua Maddox为开发者社区总监。Joshua Maddox将建立一个行业领先的金融服务开发者生态系统,包括基金会的HASH赠款计划。Maddox曾担任Kin Ecosystem的开发者关系负责人,该基金会在Solana区块链上运营最大的代币,并担任Acumen的营销和技术副总监。(prnewswire)[2022/9/28 5:59:06]

MinerSwap疑似发生Rug Pull,308枚ETH已转入Tornado Cash:11月7日消息,PeckShield监测数据显示,ETHPoW上稳定币交易协议MinerSwap疑似发生RugPull,获利资金已从ETHPoW跨链至以太坊,其中已有约308枚ETH被转入Tornado Cash。MSP代币价格下跌34%。[2022/11/7 12:29:00]

首先是关于“简单”技术无法同时获得三个属性的论断。文中没有定义到底什么样的技术能称为“简单”,实际讨论时偷换概念成了三种“容易的解决方案(easy solutions)”:包括比特币以太坊在内的传统单链,由少数节点维护的高吞吐量区块链(大约指 EOS 和联盟链),以及多链生态系统(波卡和其它一些不保证安全性的“流氓分片”等)。

安全团队:FTX交易所遭到gas窃取攻击事件技术分析:10月13日消息,据Beosin EagleEye Web3安全预警与监控平台的舆情消息,FTX交易所遭到gas窃取攻击,黑客利用FTX支付的gas费用铸造了大量XEN TOKEN。Beosin安全团队第一时间对事件进行了分析,结果如下:

1.以其中一笔攻击交易为例

(0x8eb73bd5c08318a4cfd233940c3a58744830cda999e59ecbc56f094618a91d69),攻击者先在链上部署攻击合约(0xCba9b1Fd69626932c704DAc4CB58c29244A47FD3)

2.FTX热钱包地址会向攻击合约地址转入小额的资金,利用攻击合约(0xCba9...7FD3)进行批量创建子合约。由于整个攻击中创建了大量合约,并且每次执行完子合约之后,子合约都会自毁。

3.接下来子合约fallback()函数去向Xen合约发起铸币请求,如下函数,claimRank()函数传入一个时间期限(最小1天)进行铸币,铸币条件是只用支付调用gas费,并无其他成本,并且claimMintReward()函数为提取函数,该函数只判断是否达到时间期限(本次黑客设置的时间期限为最小值1天),便可无条件提取。但在此次调用过程中,交易发起者为FTX热钱包地址,所以整个调用过程的gas都是由FTX热钱包地址所支付,而Xen铸币地址为攻击者地址。

4. 1-3中的步骤,重复多次,并且每次重复过程中都会将已到期的代币提取出来,并且同时发起新的铸币请求。

截止发文时,通过Beosin Trace追踪发现,FTX交易所损失81ETH,黑客通过DODO,Uniswap将XEN Token换成ETH转移。[2022/10/13 14:26:15]

这个论断的逻辑问题在于,“简单(simple)”不等于“容易(easy)”,偷换概念后的举例论证也因为没有穷尽所有可能性而更像是在挑软柿子捏。

类似的逻辑烤仔之前曾经在一个笑话中见到过——“如何证明所有奇数都是素数?我们来看一下:3是素数,5是素数,7也是素数,证完了。”

其中第二种方案吞吐量高的区块链(“High-TPS chains”),在 V 神的概念里似乎和节点数量少画上了等号,犯了循环论证的错误。总之,这里的论述肯定是没有考虑 Conflux 这样可以在几千个共识节点上实现几千 TPS 吞吐量的方案。

或许 V 神在这里对于“简单”的定义可以直接按照效果划一条线,凡是能解决“不可能三角”的统统归为“不简单”技术,这样方可确保逻辑严谨立于不败之地。

其次,所谓的“不可能三角”也是一个由来已久的错误概念。虽然常被拿来和分布式系统的 CAP 定理相提并论,但是实际上“区块链不可能三角”从来没有任何理论上的证明,最多只能算是一个“假说”或者“猜想”。这种把“自己做不到”等同于“不可能”的逻辑,颇有一种便秘了埋怨地球没有吸引力的即视感。

好在 V 神似乎也意识到再提“不可能三角”以太坊分片的优点就说不通了,所以在这篇文章里偷偷加上了一个前提——“如果你坚持使用简单技术,那么将无法同时获得三种属性”。

不知道啥时候能正式把“区块链不可能三角”的说法正式改为“区块链简单技术暂时做不到三角”以正视听,同时建议加一行小字“‘简单技术’指不能同时获得这三种属性的区块链技术”。

最后,这篇文章也不足以支持分片技术的必要性和迫切性。分片固然可以打破“不可能三角”,解决以太坊面临的性能问题。但这只是一个充分性的条件,不能说明为什么一定要采用分片技术,甚至不能说明为什么一定要打破“不可能三角”。

在“不可能三角”的描述中,可扩展性的要求是整个区块链共识系统的处理能力超过普通消费级 PC 或笔记本电脑作为单个节点的处理能力。从长远来看这个目标终归是要实现的,但是从目前以太坊的实际情况来看,这个目标属于好高骛远。以现在的电脑性能,单机足以每秒处理几千甚至上万笔交易,而以太坊只能处理不超过 50 笔,还远远没有达到瓶颈。基于以太坊现在的性能搞分片,就像是一个小学数学还没学明白的孩子非要学高等数学一样,事倍功半不说,将来还免不了从头再来一遍。

所以,即便分片可以解决以太坊面临的问题,也不意味着必须用分片来解决。与最初提出以太坊分片的概念时相比,如今已经有了包括 Conflux 等高性能共识算法和 Rollup 等第二层扩展方案在内的很多现成的解决方案。再抱残守缺地坚持做分片就有点一条道走到黑的意思了。

除了核心逻辑存有漏洞之外,分片本身在安全性、可靠性和性能方面的牺牲也是非常明显的,V 神在文中已经说得比较详细,此处不再赘述。

这里只纠正一点:分片必然降低用户体验,增加确认用户等待时间的问题无可避免,并非只存在于采用欺诈证明的方案。尽管 ZK-SNARK 等证明技术可以大幅提升交易的验证效率,确保交易上链后能被快速确认,但此类技术无一例外需要较长的时间用于生成证明。因此,从用户的视角来看,采用 ZK-SNARK 技术减少交易上链后等待时间的代价是增加了上链前等待生成证明的时间,总的体验未必有多少改善。寄希望于靠 ZK-SNARK 解决分片带来的延迟问题的人,应该再去复习一下朝三暮四的故事。

综上所述,烤仔认为以太坊的分片技术就如同望梅止渴故事里的梅子,可以鼓舞人心但是没有多少实际意义。如果一直心心念念远方的梅子,而对身边的溪流视而不见,恐怕只会渴死在路上。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:0ms0-0:908ms