本文来自:链捕手,作者:VitalikButerin,编译:Alyson,星球日报经授权转发
你能将区块链的可扩展性推进多远?正如马斯克希望的那样,你能否真正实现「将区块确认时间缩短10倍,将区块大小增加10倍并将手续费降低100倍」,而又不会导致极端的中心化并损害使区块链的基本属性?如果没有,你能走多远?如果你更改共识算法怎么办?更重要的是,如果你更改技术以引入诸如ZK-SNARK或分片之类的功能,会发生什么情况?
事实证明,无论分片与否,都有重要且相当微妙的技术因素限制了区块链的扩展性。在许多情况下,这些限制都有解决方案,但是即使有了解决方案,也存在局限性。这篇文章将探讨这些问题。
01节点需要足够分散
在凌晨2:35,你会收到来自世界另一端合伙人的紧急电话,他帮助你管理矿池。从大约14分钟前开始,你的合伙人就告诉你,你的矿池和其他几个人从仍然承载着79%网络的区块链中分离出来。根据你的节点,多数链的区块是无效的。这里出现了余额错误:关键区块似乎错误地将450万枚额外代币分配给了一个未知地址。
一个小时后,你正在与其他两个小矿池进行电报聊天。你最终看到有人将一个链接粘贴到一条推特上,其中包含一条已发布的消息。这条推文的开头是「宣布新的链上可持续协议发展基金」。
到了早上,在推特与社区论坛上的争论无处不在。但是到那时,这450万枚代币中的很大一部分已经在链上转换为其他资产,并且进行了数十亿美元的DeFi交易。79%的共识节点,以及所有主要的区块链探索者和轻钱包的节点都遵循了这一新链条。也许新的开发者基金将为某些发展提供资金,或者也许所有这些都被领先的交易所吞并。但是,不管结果如何,该基金在所有意图和目的上都是既成事实,而普通用户则无力反击。
Vitalik Buterin:已把2011年制作的游戏上传到IPFS:金色财经报道,以太坊联合创始人Vitalik Buterin在社交媒体上称,我把在加密前(2011年)做的一款游戏上传到IPFS。祝好运。
对此,Aave及LensProtocol创始人Stani表示,一件很酷的事情是,有一个哈希值,所以你可以随时找到游戏并玩它。不知道你用什么来创建它,但是带有Unity的webGL使得为IPFS渲染变得非常容易。[2023/5/23 15:20:23]
这可以在你的区块链上发生吗?你所在区块链社区的精英可能协调得很好,包括矿池、区块浏览器和托管节点。他们很可能都在同一个电报频道和微信群组中。如果他们真的想对协议规则进行突然更改以促进自己的利益,那么他们可能会这样做。要使这种协同的社会攻击无效,唯一可靠的方法是通过被动防御,而这个群体实际上是分散的:用户。
想象一下,如果用户正在运行验证区块链的节点,然后自动拒绝破坏协议规则的区块,故事将会如何发展。如果每个用户都运行一个验证节点,那么攻击很快就会失败:一些矿池和交易所会在这个过程中分叉出来,看起来相当愚蠢。
但是,即使一些用户运行验证节点,攻击也不会让攻击者大获全胜;相反,它会导致混乱,不同的用户会看到不同的区块链视图。至少,随之而来的市场恐慌和可能持续的分裂将极大地减少攻击者的利润。驾驭这样一场旷日持久的冲突的想法本身就会阻止大多数袭击。
Paradigm研究合伙人Hasu的推特
如果你有一个由37个节点运行程序和80000个被动侦听程序组成的社区来检查签名和阻止区块头,则攻击者获胜。如果你的社区中每个人都运行一个节点,那么攻击者就会失败。我们不知道针对协同攻击的群体免疫力的确切阈值是多少,但有一件事是绝对清楚的:更多的节点是好的,更少的节点是坏的,我们肯定需要几十个或几百个以上的节点。
V神、孙宇晨支持的生命科学组织VitaDAO拟设营利性公司推动长寿技术发展:4月6日消息,由以太坊创始人“V神”支持创立的生命科学研究去中心化组织VitaDAO在推特宣布,正在投票决定是否创建一家营利性公司来确保和分配长寿研究的资金。该公司将命名为 VitaTech,作为 VitaDAO 的子公司/附属公司运营,它将利用公共资金来授权美国大学开发的长寿技术,并支持它们的持续发展。除V神外,波场TRON创始人孙宇晨此前也曾大力支持VitaDAO的发展。
今年1月,VitaDAO宣布完成410 万美元融资,融资方包括Coinbase的前首席技术官 Balaji Srinivasan、全球最大的药企辉瑞的投资部门 Pfizer Ventures,这也是辉瑞在 Web3 领域的首笔投资。VitaDAO 表示将会利用这笔资金进一步资助长寿研究项目和将于明年从DAO中剥离出来的生物技术初创公司。
去年10月,孙宇晨向VitaDAO旗下“长寿奖基金”进行捐款,孙宇晨也因此次捐赠成为“长寿奖基金”的第二大捐赠者,仅次于以太坊创始人V神。[2023/4/6 13:47:30]
02节点工作的限制在哪里?
为了最大限度地增加可以运行节点的用户数,我们将重点放在常规的消费类硬件上。完整节点处理大量事务的能力存在三个关键限制:
计算能力:安全运行一个节点的CPU所需的百分比是多少?
带宽:考虑到当前互联网连接的现实情况,一个区块可以包含多少个字节?
存储:我们可以要求用户存储多少GB磁盘?另外,它必须多快才能被读取?
许多人错误地认为,使用「简单」技术可以使区块链扩展多远,这是由于对这些数字过于乐观。我们可以逐一审视以下三个因素:
Vitalik Buterin(V神)突然现身基辅科技峰会:金色财经报道,以太坊联合创始人Vitalik Buterin(V神)突然现身基辅科技峰会,Buterin 在基辅现身特别值得注意,因为目前距离以太坊备受期待的合并只有几天的时间。作为峰会闭幕发言人之一,Buterin表示区块链、以太坊、加密世界中的很多人在关心和支持乌克兰,其他峰会发言人包括Binance乌克兰总经理 Kiril Khomiakov、NEAR Protocol 联合创始人Illia Polosukhin和乌克兰创业基金董事 Pavlo Kartashov。(coindesk)[2022/9/11 13:22:08]
1)计算能力
错误的答案:100%的CPU能力可以花在块验证上。
正确答案:大约有5-10%的CPU能力可用于块验证。
限制比例如此之低的主要原因有四个:
我们需要一个安全边际来覆盖DoS攻击的可能性;
节点脱机后需要能够同步区块链。如果我断开网络一分钟,我应该能够在几秒钟内赶上;
运行节点不应很快耗尽电池电量,使所有其他应用程序变慢;
节点还需要执行其他非区块生产任务,主要围绕在p2p网络上验证和响应传入的事务和请求。
请注意,直到最近,大多数对「为什么只有5-10%?」?的解释专注于一个不同的问题:由于PoW区块是随机出现的,因此验证区块所花费的时间较长,会增加同时创建多个区块的风险。
有许多解决此问题的方法。但是这些修补程序不能解决其他四个问题,因此它们无法像许多人最初认为的那样在可拓展性方面带来巨大的收益。
动态 | Vitalik Buterin 提出激励开发者的新方案:将智能合约交易手续费资助合约创建者:Vitalik Buterin 在以太坊研究论坛上发表文章,提出一种激励开发者的新方案,当开发者创建一个智能合约后,任何其他使用该合约的用户付出的交易手续费的一部分(比如说 33%),会发送给合约的创建者作为激励,而且还提出了两种关于奖励的算法,分别是线性和超线性。该想法出自于 9 月 16 日在以色列举行的 StarkWare Sessions 会议上,在探讨关于公链基础设施的开发,资金应该是通过治理和协议获得,还是说应该被独立的企业资助话题中,以太坊创始人 Vitalik Buterin 认为,「通过协议获得资金的优势是,这个方法可以获得更多的资金。而劣势也很明显,由于这类方法是中立的,所以无论利用任何机制都会被恶意攻击,之前也已经遇到过各种各样的尝试。所以这类方法的最大的挑战是想出一套合适的治理结构和其组件。然后他还举了一个例子,如果我们设置这样一个资助机制:当有人使用了某个智能合约,因此而产生的转账费的一部分会分配给该合约的创建者,这样的机制就非常的中立。[2019/9/23]
并行性也不是万能的。通常,即使是看似单线程的区块链客户端也已经并行化:签名可以由一个线程验证,而执行则由其他线程完成,并且有一个单独的线程在后台处理事务池逻辑。而且,越接近所有线程100%的使用率,运行节点所消耗的能量就越多,并且抵御DoS的安全边际也越低。
2)带宽
错误的答案:如果我们每2-3秒就有10MB的数据块,那么大多数用户的网络速度都>10MB/秒,因此他们当然可以处理。
正确答案:也许我们可以每12秒处理1-5MB的块,虽然很难。
声音 | Kevin Davitt:比特币期货波动率创历史新低:据marketwatch消息,Cboe Global Markets期权研究所高级分析师Kevin Davitt表示,截至10月26日的一周是近一年前推出比特币期货以来波动最小的一周,10月份XBT期货的平均每周波动率约为6.6%,远低于自成立以来的平均水平15.65%。[2018/11/6]
如今,我们经常听到关于互联网连接可以提供多少带宽的广告统计数据:通常听到100Mbps甚至1Gbps的数字。但是,由于以下几个原因,宣传的带宽数据和实际带宽之间存在很大差异:
「Mbps」是指「每秒数百万个比特」,一个比特是一个字节的1/8,因此需要将宣传的比特数除以8才能得到宣传的字节数;
就像所有公司一样,互联网提供商经常说谎;
总是有多个应用程序使用相同的互联网连接,因此节点无法占用整个带宽;
p2p网络不可避免地会带来其自身的开销:节点经常会多次下载并重新上传同一区块。
当Starkware在2019年进行实验时,他们首次发布了500kb的区块,这是因为交易gas成本的降低首次使这种可能性成为可能,实际上有几个节点无法处理该大小的区块。
自那以后,区块链处理大型数据块的能力已得到提高,并将继续提高。但无论我们做什么,我们仍远不能天真地获得以MB/秒为单位的平均带宽,说服自己我们可以接受1s的延迟,并能够拥有如此大小的数据块。
3)存储
错误答案:10TB。
正确答案:512G。
正如你可能猜到的那样,这里的主要论点和其他地方一样:理论和实践之间的区别。理论上,你可以在亚马逊上购买8TB的固态硬盘。实际上,用来写这篇博客文章的笔记本电脑有512GB,如果你让人们去买自己的硬件,他们中的许多人会变得懒惰(或者他们买不起800美元的8TB固态硬盘),而使用中心化的供应商。
而且,即使你可以将区块节点安装并运行到一些存储磁盘上,高水平的活动也很容易迅速烧毁磁盘,迫使你不断地购买新磁盘。
此外,存储大小决定了新节点能够联机并开始参与网络所需的时间。现有节点必须存储的任何数据都是新节点必须下载的数据。初始同步时间(和带宽)也是用户运行节点的主要障碍。在写这篇博客时,同步一个新的geth节点花了我大约15个小时。
03分片区块链的风险
如今,在以太坊区块链中,运行一个节点已经对许多用户构成挑战。因此,我们遇到了瓶颈。核心开发人员最关心的问题是存储大小。因此,目前,在解决计算和数据瓶颈方面的努力,甚至是对共识算法的更改,都不太可能导致大量的gaslimit增加。即使解决了以太坊最大的突出DoS漏洞,也只能使gaslimit增加20%。
解决存储大小问题的唯一方法是无状态和状态到期。无状态性允许一类节点在不维护永久性存储的情况下验证区块链。状态到期会清楚最近未访问的状态,从而迫使用户手动提供续订的证明。
这两种路径都已经使用了很长的时间,并且关于无状态性的概念验证实现也已经开始。这两项改进相结合,可以极大地缓解这些担忧,并为大幅提高gaslimit打开空间。但是,即使在实施了无状态和状态到期之后,gaslimit可能也只能安全地增加大约3倍,直到其他限制开始占主导地位为止。
分片从根本上绕过了上述限制,因为它将区块链上包含的数据与单个节点需要处理和存储的数据解耦。它们使用先进的数学和密码技术来间接验证区块,而不是节点通过亲自下载和执行来验证区块。
因此,分片区块链可以安全地拥有非分片区块链无法达到的交易吞吐量水平。这确实需要大量的密码学智慧来创建高效而简单的完全验证方式,成功地拒绝无效区块,但这是可以做到的:理论已经很成熟,基于规范草案的概念验证已经在进行中。
以太坊正计划使用二次方分片,因为节点必须能够处理单个分片和信标链(必须为每个分片执行一定数量的管理工作),所以总可拓展性受到限制。如果分片太大,节点将无法再处理单个分片,如果分片太多,节点将无法再处理信标链。这两个约束的乘积形成了上限。
可以想象,通过进行立方分片甚至指数分片,可以走得更远。在这样的设计中,数据可用性抽样肯定会变得复杂得多,但这是可以做到的。但是,以太坊不会比二次曲线走得更远。原因是,交易分片实际上无法实现额外的可拓展性增益,除非其他风险变得非常高。
那么这些风险是什么?
1)最小用户数
可以想象,只要有一个用户愿意参与,非分片区块链就可以运行。分片区块链不是这样的:没有一个节点可以单独处理整个区块链,因此需要足够的节点来一起处理。如果每个节点可以处理50个TPS,而区块链需要处理10000个TPS,那么链上至少需要200个节点才能运行。
如果该区块链在任何时间出现少于200个节点的情况,那要么节点无法跟上区块链,要么节点无法检测到无效区块,或者可能会发生许多其他不良情况,这具体取决于节点软件的安装方式。
如果分片区块链的容量增加10倍,则最小节点数也将增加10倍。那么,你可能会问:为什么我们不从一点点容量开始,在看到大量用户涌入时再增加容量;而如果用户数减少,则减少容量?因此我们能掌握实际需要它的部分。?
这里有一些问题:
区块链本身无法准确地检测到有多少个唯一节点,因此这将需要某种治理来检测和设置分片数量。超出容量限制很容易成为分裂和冲突的源头。
如果许多用户突然意外退出,该怎么办?
增加分叉启动所需的最小节点数,会使得抵御恶意收购变得更加困难。
几乎可以肯定,最低节点数最好不超过1000。因此,似乎很难证明具有超过数百个分片的区块链是合理的。
2)历史可检索性
用户真正珍视的区块链的重要属性是永久性。当公司破产或失去维护该生态系统的能力时,存储在服务器上的数字资产将在10年后被清除。另一方面,以太坊上的NFT是永久存在的。
是的,人们将在2371年仍在下载和检索你的加密猫。
但是一旦区块链容量过高,存储所有这些数据就会变得更加困难。如果某个时刻遇到了很大的风险,历史的某些部分中将没有人来存储。
量化这种风险很容易。以区块链的数据容量为单位,乘以30即可得到每年以TB为单位存储的数据量。当前的分片计划的数据容量约为1.3MB/秒,因此约为40TB/年。如果将其增加10倍,则将变为400TB/年。
如果我们希望数据不仅可以访问,而且可以方便地到达,则还需要元数据,因此每年需要4PB,或者10年后需要达到40PB。这是大多数分片区块链可以安全获得的合理上限。
因此,看起来在这两个维度上,以太坊分片设计实际上已经大致瞄准了相当接近合理的最大安全值。参数可以增加一点,但不能增加太多。
04总结
尝试扩展区块链的方法有两种:基本的技术改进和简单的增加参数。首先,增加参数听起来很有吸引力:如果你在餐巾纸上进行数学运算,就很容易说服自己,家用笔记本电脑每秒可以处理数千笔交易,不需要ZK-SNARK、rollups或分片。不幸的是,这种方法从根本上有缺陷,其中有很多微妙的原因。
运行区块链节点的计算机无法耗费100%的CPU容量来验证区块链;他们需要很大的安全边际来抵抗意外的DoS攻击,他们需要备用容量来执行诸如在内存池中处理的事务。并且用户不希望在计算机上运行节点以使该计算机无法同时用于任何其他应用程序。
带宽同样也有开销:10MB/s的连接并不意味着你每秒可以拥有10MB的块,每12秒最多可能有1-5MB的块,与存储相同。增加运行节点的硬件配置并将节点的运行限制在特定参与者上并不是解决方案。对一个要去中心化的区块链来说,普通用户能够运行节点并且拥有一种运行节点的常见活动文化是至关重要的。
基本的技术改进肯定是起作用的。当前,以太坊的主要瓶颈是存储容量,无状态性和状态到期可以解决此问题,并允许将其增加多达约3倍,因为我们希望运行一个节点比现在变得更容易。分片的区块链可以进一步扩展,因为分片的区块链中没有单个节点需要处理的交易。
但即便如此,容量还是有限制的:随着容量的增加,最低节点数也会增加,而归档链的成本也会增加。
但是我们不必太担心:这些限制足够高,我们可以在区块链完全安全的情况下每秒处理超过一百万笔交易。但要做到这一点,而不牺牲区块链的去中心化,还需要付出努力。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。