区块链的区块高度 区块链区块大小限制

古泉财经 97 0

本篇文章给大家谈谈区块链区块大小限制,以及区块链的区块高度对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

PoT基于信任的共识机制方案

姓名:胡娟

学号:20021110092

转自:

【嵌牛导读】区块链的核心是无信任的领导选举机制,在无需第三方或可信方的监督下,实现了匿名节点之间共识的达成。目前工作量证明(PoW)和权益证明(PoS)是集中讨论的两种共识机制。PoW依赖于计算能力的证明,伴随着巨大的资源浪费。PoS通过依赖系统中拥有的加密货币的数量来解决问题。无论哪种方式,都受区块链系统经济基础的限制,这迫使那些不含加密货币的区块链应用程序只能求助于“许可”的设置,有效地使系统集中化。然而,对于无加密货币的非许可链能够为众多新兴应用领域(如教育、医疗)提供安全的、自治的P2P结构服务,在这些领域中,对等节点之间存在一定的信任基础。这为评估对等节点之间的信任并将其作为达成共识的基础创造了可能性。

【嵌牛鼻子】PoT,PoW,PoS

【嵌牛正文】

PoW 是十分昂贵的

他是一种“难度值”控制资源消耗的机制。难度值是随系统计算能力来调整级别的,随着节点和事务的增加,难度值不可避免的增加。除了高昂的成本外,还容易受到中心化陷阱的影响,即一小部分算力强大/有钱的节点最终控制了整个系统。例如比特币上的采矿池现象和垄断了系统的巨型挖矿数据中心。

当前,相比PoW在能耗上有更优表现的替代方案被人们持续关注,然而大多数建议的替代方案要么依赖于特殊物理硬件的所有权,要么权衡系统的去中心化采用许可链的方案,后者是使用拜占庭协议(PBFT)的变体。PoW目前合理的替代方案是PoS(Proof-of-Stake),PoS中区块领导者是根据其在区块链系统中持有的资产数量来被选择的。该方法背后的博弈论前提是,对拥有加密货币的节点,持有最大份额的节点有兴趣对系统进行服务,来保持他的可信度和价值,从而激励他们按照协议行事。与PoW相比,PoS承诺提供更加明晰和便宜的共识机制,但他需要将区块链系统与加密货币捆绑在一起。并造成了“你拥有越多你控制的越多”或“你拥有的越多,你越合理拥有领导权”这样富人越来越富的心态,导致系统进一步向中心化转变。

使用信任去修补区块链

 信任证明PoT,当网络中出现更多可信的对等点时,目标是最小化在PoW上花费的能量。也就是说,安装“您越受信任,您需要执行的工作就越少”的概念。“我们假设在应用场景中,区块链旨在在协作以实现共同目标的对等体之间提供去中心化的服务,并且可以在各方之间表达信任,例如在健康或教育领域。这与当前以自我为中心的金融区块链形成了鲜明的对比,在当前的金融区块链中,被选为区块领导者的唯一兴趣和博弈论动机是赚取加密货币。

 在PoT结构中,参与系统的每个节点都单独地表示对他认为可信任的其他节点的信任情况。这种信任不断地被广播,促使信任网络以去中心化的方式兴起,并存储在区块链中,为所有的参与者提供了一致性、防篡改的记录(view)。PoT机制在仍然使用PoW的同时,保证只有一小部分参与其中,从而大大降低了功耗成本。

协议描述和问题定义

PoT 描述的参与者的信任值是以去中心化的方式计算和协商的,这些信任值将表示为节点在系统中所持有的权重(stake),作为共识机制的基础。PoT的设计主要考虑了可验证性和独立性:

可验证性:一旦一个节点证明其有资格成为下一个领导者,所有的节点都可以验证这一声明。

独立性: 独立性声明领导者的被选举权与区块链有效性,可由任何节点使用公开可用的信息,无需他人协作的情况下进行验证。

为了实现以上的目标,需要解决两个主要问题:

1)定义一个去中心化的信任管理机制;

2)定义一个使用信任网络的共识协议。

1.去中心化信任管理(Decentralized trust management)

信任建立基于信任模型,这类工作在很多文献中已有。对于基于社区的信任,起始点通常是一个给定的信任网络,该网络编码系统中谁信任谁,它通常被建模为一个有向图,其中节点表示对等点(peer),边表示它们之间的信任关系。一个节点在网络中传入的链接越多,它就越可信。信任网络可以以多种形式出现,例如:

1)从社交网络中提取;

2)从底层系统中节点之间的交互推断而来;

3)被节点明确声明他们信任谁。

在公开链模型中,唯一可行的选择要么是跟踪区块链中节点之间交互的记录,要么设立一个信任网络,网络中每个节点在没饿过时期单独地声称他信任谁。前一种选择要求管理区块链系统的节点同时也是产生和记录事务的节点。

文章选择了后一种方案,每个节点通过广播信任关系宣布他们的信任节点,并由所有其他节点独立收集信息,形成信任网络。区块链区块大小的限制,使得PoT中区块链仅记录信任网络的哈希值。每个时期,当前的区块领导者是根据前一个阶段中达成一致的信任网络情况来选出来的。

2.基于信任的动态共识机制(Dynamics of a trust based consensus)

PoW尽管对能源的消耗十分巨大,但是在完全去中心化的系统中,PoW保持了良好的安全性和可操作性。更重要的是,提供了具有“保证时间窗口”的时钟功能,实现了新的块只有在前一个块出现后才能出现,允许分布式系统在不需要全局同步的情况下有效地工作。因此文章没有完全放弃PoW,而是信任等级越高的节点执行PoW时的难度值越低,信任等级越低则难度值越高。这将抑制不太受信任的节点加入PoW,使活跃的挖矿池被限制到更小的子集中。其中存在的风险是:1)可能会导致较小的信任子集中出现集中化的问题;2)难度值小的节点可能造成Sybil攻击。因此,PoT采用了以下的策略:

1)领导节点信任衰竭策略

节点根据他们获得的信任程度被分配到不同的小组。其成员根据可信等级对应的难度值进行挖矿,具有最高信任级别小组成员更有可能在区块链中挖到矿,这埋下了信任网络中顶层节点控制网络的隐患,造成“富人更富”的现象,同时其他的节点没有了升级的空间。衰竭策略会确保任何竞争到挖矿权的节点退回到低信任分区中。

2)新的信任关系采用阻尼策略

Sybil节点不能突然获得系统中的高信任等级,应当给诚实节点有足够的机会观察和控制恶意节点。在PoT中,引入了一种控制机制,通过对新的信任链路采用一种阻尼策略来控制新节点信任度量的过程,节点的信任等级与他们所保持存活的时间长短成正比增长。

PoT结构建立在两个主要机制上:

1) 衰退的信任机制,阻止区块领导者潜在的恶意行为,防止网络被一个小的顶层受信组织控制;

2) 网络信任机制演变的控制机制,阻止恶意节点信任等级的升级的速度,给予其他节点充分的时间去检测这样的行为。

区块链系统首先经历一个自力更生的阶段,通过对几个块仅实施纯PoW共识。在每

个新的区块中,网络中的节点(矿工)单独广播自己发出的信任关系。新节点加入产生新的信任关系,这种关系服从一种阻尼策略,将他们在系统中存活时间作为权重给他们分配。阻尼策略使得新节点使用新的信任关系来增强它们的信任级别变得更慢。自力更生阶段在协议定义的预设好的块数后结束。共识从此由PoW转变为PoT。

每个信任分区的节点都会遵循对应的PoW的困难系数来挖矿,当使用对应困难值找到PoW的解决答案时,节点宣布他的块,其他节点验证并接受该块作为共识的一部分。如果同时有多个有效的块被广播,则规则是选择信任等级最高的发布的块。一旦一个块被附加到区块链中,那么块所有权所属的节点相对于初始信任值会呈指数衰减。

1. 信任网络(The trust network)

信任网络是由节点在网络中,通过主动声明信任连接所组成的。每个周期,信任网络都表示为一个加权图,节点是区块链网络中的节点,边上的权值代表节点的存活时长。周期t所在的信任网络为: ,其中

  :节点的集合,SKi和VKi是节点的密钥对;

  :关系边的集合,由节点vi来声明和签名的;

:函数,为每一条边计算权重值

2. 区块链部分(The Blockchain)

   定义1: 密码散列函数 , 有效的PoW区块被定义为一个三元组:

参数 :区块对应挖矿的难度值;

参数 :前一个区块的哈希值;

参数 :PoW工作的随机数答案;

参数 :事务的负载。

3. PoT协议(The PoT protocol)

PoT协议除了PoW中事务负载和区块头元数据外,还包含节点提交给区块的签名,以及区块所在时期信任网络的摘要。

        1)信任分区(Trust divisions)

对每个节点,使用连续弃权函数(waiverfunction)实现难度值与输入信任级别成反比。另一种方法是,节点被分配到符合一定信任范围的组,每个小组所有成员在相同难度水平挖矿。挖矿和广播的机制与PoW相同,但注意到网络中的任何节点都可以毫不含糊地、一致地与其他节点一起检索任何一个节点的信任值。

        2)信任衰退和恢复(Trust decay recovery)

当节点vi在周期t时刻,获得了某一个区块的记账权后,它的信任值会进行一个与它在周期t初始时刻信任值成正比例的快速衰退和缓慢恢复的过程。以防止节点vi持续保持高的信任等级,从而产生Sybil攻击的隐患。这里引入了指数衰退函数:

N(0) 是时间0是衰减量的值, 是衰减常数。

在每一个周期t,信任衰减过程是由节点执行的,协议规则如下,衰减长度因子k,衰减常数 λ,当前周期t和当前区块链作为输入,从时间t开始对 k/λ 个区块,衰减对应记账权矿工的信任值。

3)对新边的阻尼策略(Damping new edges)

一个节点与其他节点信任连接的权值与他们所加入网络的时间成比例,防止节点过快地成为信任值最高的节点,分配规则如下:其中

4)PoT 有效区块(Valid PoT block)

SKt 是节点vt的签名, 是信任分区, 是 对应的难度等级,一个有效的PoT区块满足如下条件:

根据以上定义,总结PoT协议为,在每个周期 t开始时,假定网络中所有节点都知道共识区块链C的状态,包括对上一个周期 t-1信任图的信息。节点在t-1信任图上执行信任算法,然后应用信任衰退机制,衰减最近夺得区块记账权的节点的信任。矿工找到PoW难题的答案,就将答案连通区块 广播到网络中。如果这是一个有效的区块,其他节点验证后矿工将它附加到区块链C上。如果是非有效的,那么回退到步骤3),所有符合条件的节点继续试图找到难题的答案。

节点有可能同时监听到多个有效的区块,规定了此时接收最高信任节点发出的区块作为结果值。此外,网络延迟或连接网络的动态特性,不同的节点接收到不同的区块,此时会出现分叉现象,与PoW不同,采用信任最值得信赖的分支作为正确的主区块链。

论文出处:Leila Bahri, Sarunas Girdzijauskas. Trust Mends Blockchains: Living up to Expectations, 2019 IEEE 39th International Conference on Distributed Computing Systems (ICDCS)

区块链到底是不是骗局

区块链技术本身不是骗局区块链区块大小限制,但是不排除有人拿区块链做幌子去做骗局。 区块链存在的几个问题: 1、区块链体积过大问题随着区块链的发展区块链区块大小限制,节点存储的区块链数据体积会越来越大,存储和计算负担将越来越重。 以比特币区块链为例,其完整数据的大小当前已达约71GB,用户如果使用比特币核心客户端进行数据同步的话,可能三天三夜都无法同步完成,并且,区块链的数据量还在不断地增加,这给比特币核心客户端的运行带来区块链区块大小限制了很大的门槛。 2、区块链数据确认时间的问题目前的区块链系统,尤其是金融区块链系统中,存在数据确认时间较长的问题。 以比特币区块链为例,当前比特币交易的一次确认时间大约需要10分钟,6次确认的情况下,需要等待约1小时,当然对于信用卡动则2至3天的确认时间来说,比特币已经有区块链区块大小限制了很大的进步了,但距离理想状态仍有较大距离。 3、处理交易频率问题区块链系统面临交易频率过低的问题。 还是以比特币区块链为例,每条交易的平均大小约为250个字节(Byte),如果区块大小限制在1MB,那么可以容纳的交易数量为4000条。 按照每10分钟产生一个区块的速度计算,每天可以产生144个区块,也就是能容纳576000条交易,再除以每天的秒数86400,比特币区块链最高每秒处理6.67笔交易。 目前,比特币区块链上每天的实际交易量已经接近系统瓶颈(图),如果扩容问题没有得到解决,可能造成大量交易的堵塞延迟。 比特币区块平均交易数(来源: 区块元)相比之下,Paypal在2013年第三季度的总体交易笔数为7.29亿笔,平均每秒为93.75笔交易。 全球最大的支付卡VISA的官网信息显示,VisaNet在2013年的测试中,实现了处理每秒47000笔交易。 比特币区块链比起支付宝等几大支付网络,从交易处理频率来看,更像是一个刚出生的婴儿。 当然,这也是中本聪早期故意为之的设计,比特币区块大小被限制在了1MB,以此避免流氓矿工的恶意行为,对人们造成不良的影响,比特币区块链支付网络之所以能够成长到如今价值数十亿美元,就在于它的去中心化。 4、区块链发展受到现行制度的制约一方面,区块链去中心、自治化的特性淡化了国家监管的概念,对现行体制带来了冲击。 比如,以比特币为代表的数字货币不但对国家货币发行权构成挑战,还影响到货币政策的传导效果,削弱央行调控经济的能力,导致货币当局对数字货币的发展保持谨慎态度。 另一方面,监管部门对这项新技术也缺乏充分的认识和预期,法律和制度建立可能会滞后,导致与运用区块链相关的经济活动缺乏必要的制度规范和法律保护,无形中增大了市场主体的风险。 5、区块链技术与现有制度的整合成本较大对于任何创新,现有机构都要保证既能创造经济效益,又要符合监管要求,还要与传统基础设施衔接。 特别是当部署一个新型基础系统时,耗费的时间、人力、物力成本都非常大,现有传统机构内部遇到的阻力也不小。 当然,问题的存在并不能阻碍区块链的发展步伐,诸如简单支付验证、侧链、闪电网络协议等技术的提出和深入研究,已经为上述问题的解决提出了思路。

以太坊区块链大小

与比特币网络不同,以太坊不会明确地按内存限制每个区块的大小,而是通过区块 GasLimit 强制规定每个区块的大小。

以太坊的区块 GasLimit 设置有效的限制了一个区块中可以打包的交易量。GasLimit 参数由以太坊矿工集体决定,即通过投票的方式来动态地增加或降低 GasLimit 数值。

最近的一次投票是 2019 年下半年,矿工们群体投票同意将以太坊的区块 GasLimit 由原来的 800 万 Gas 单位提高至 1000 万,使每个区块相比之前区块的大小增加了 25% 左右,这从理论上提高了以太坊网络的 TPS 。

什么是区块链扩容?

普通用户能够运行节点对于区块链的去中心化至关重要

想象一下凌晨两点多,你接到了一个紧急呼叫,来自世界另一端帮你运行矿池 (质押池) 的人。从大约 14 分钟前开始,你的池子和其他几个人从链中分离了出来,而网络仍然维持着 79% 的算力。根据你的节点,多数链的区块是无效的。这时出现了余额错误:区块似乎错误地将 450 万枚额外代币分配给了一个未知地址。

一小时后,你和其他两个同样遭遇意外的小矿池参与者、一些区块浏览器和交易所方在一个聊天室中,看见有人贴出了一条推特的链接,开头写着“宣布新的链上可持续协议开发基金”。

到了早上,相关讨论广泛散布在推特以及一个不审查内容的社区论坛上。但那时 450 万枚代币中的很大一部分已经在链上转换为其他资产,并且进行了数十亿美元的 defi 交易。79%的共识节点,以及所有主要的区块链浏览器和轻钱包的端点都遵循了这条新链。也许新的开发者基金将为某些开发提供资金,或者也许所有这些都被领先的矿池、交易所及其裙带所吞并。但是无论结果如何,该基金实际上都成为了既成事实,普通用户无法反抗。

或许还有这么一部主题电影。或许会由 MolochDAO 或其他组织进行资助。

这种情形会发生在你的区块链中吗?你所在区块链社区的精英,包括矿池、区块浏览器和托管节点,可能协调得很好,他们很可能都在同一个 telegram 频道和微信群中。如果他们真的想出于利益突然对协议规则进行修改,那么他们可能具备这种能力。以太坊区块链在十小时内完全解决了共识失败,如果是只有一个客户端实现的区块链,并且只需要将代码更改部署到几十个节点,那么可以更快地协调客户端代码的更改。能够抵御这种社会性协作攻击的唯一可靠方式是“被动防御”,而这种力量来自去一个中心化的群体:用户。

想象一下,如果用户运行区块链的验证节点 (无论是直接验证还是其他间接技术),并自动拒绝违反协议规则的区块,即使超过 90% 的矿工或质押者支持这些区块,故事会如何发展。

如果每个用户都运行一个验证节点,那么攻击很快就会失败:有些矿池和交易所会进行分叉,并且在整个过程中看起来很愚蠢。但是即使只有一些用户运行验证节点,攻击者也无法大获全胜。相反,攻击会导致混乱,不同用户会看到不同的区块链版本。最坏情况下,随之而来的市场恐慌和可能持续的链分叉将大幅减少攻击者的利润。对如此旷日持久的冲突进行应对的想法本身就可以阻止大多数攻击。

Hasu 关于这一点的看法:

“我们要明确一件事,我们之所以能够抵御恶意的协议更改,是因为拥有用户验证区块链的文化,而不是因为 PoW 或 PoS。”

假设你的社区有 37 个节点运行者,以及 80000 名被动监听者,对签名和区块头进行检查,那么攻击者就获胜了。如果每个人都运行节点的话,攻击者就会失败。我们不清楚针对协同攻击的启动群体免疫的确切阈值是多少,但有一点是绝对清楚的:好的节点越多,恶意的节点就越少,而且我们所需的数量肯定不止于几百几千个。

那么全节点工作的上限是什么?

为了使得有尽可能多的用户能够运行全节点,我们会将注意力集中在普通消费级硬件上。即使能够轻松购买到专用硬件,这能够降低一些全节点的门槛,但事实上对可扩展性的提升并不如我们想象的那般。

全节点处理大量交易的能力主要受限于三个方面:

算力:在保证安全的前提下,我们能划分多少 CPU 来运行节点?

带宽:基于当前的网络连接,一个区块能包含多少字节?

存储:我们能要求用户使用多大的空间来进行存储?此外,其读取速度应该达到多少?(即,HDD 足够吗?还是说我们需要 SSD?)

许多使用“简单”技术对区块链进行大幅扩容的错误看法都源自于对这些数字过于乐观的估计。我们可以依次来讨论这三个因素:

算力

错误答案:100% 的 CPU 应该用于区块验证

正确答案:约 5-10% 的 CPU 可以用于区块验证

限制之所以这么低的四个主要原因如下:

我们需要一个安全边界来覆盖 DoS 攻击的可能性 (攻击者利用代码弱点制造的交易需要比常规交易更长的处理时间)

节点需要在离线之后能够与区块链同步。如果我掉线一分钟,那我应该要能够在几秒钟之内完成同步

运行节点不应该很快地耗尽电池,也不应该拖慢其他应用的运行速度

节点也有其他非区块生产的工作要进行,大多数是验证以及对 p2p 网络中输入的交易和请求做出响应

请注意,直到最近大多数针对“为什么只需要 5-10%?”这一点的解释都侧重于另一个不同的问题:因为 PoW 出块时间不定,验证区块需要很长时间,会增加同时创建多个区块的风险。这个问题有很多修复方法,例如 Bitcoin NG,或使用 PoS 权益证明。但这些并没有解决其他四个问题,因此它们并没有如许多人所料在可扩展性方面获得巨大进展。

并行性也不是灵丹妙药。通常,即使是看似单线程区块链的客户端也已经并行化了:签名可以由一个线程验证,而执行由其他线程完成,并且有一个单独的线程在后台处理交易池逻辑。而且所有线程的使用率越接近 100%,运行节点的能源消耗就越多,针对 DoS 的安全系数就越低。

带宽

错误答案:如果没 2-3 秒都产生 10 MB 的区块,那么大多数用户的网络都大于 10 MB/秒,他们当然都能处理这些区块

正确答案:或许我们能在每 12 秒处理 1-5 MB 的区块,但这依然很难

如今,我们经常听到关于互联网连接可以提供多少带宽的广为传播的统计数据:100 Mbps 甚至 1 Gbps 的数字很常见。但是由于以下几个原因,宣称的带宽与预期实际带宽之间存在很大差异:

“Mbps”是指“每秒数百万 bits”;一个 bit 是一个字节的 1/8,因此我们需要将宣称的 bit 数除以 8 以获得字节数。

网络运营商,就像其他公司一样,经常编造谎言。

总是有多个应用使用同一个网络连接,所以节点无法独占整个带宽。

P2P 网络不可避免地会引入开销:节点通常最终会多次下载和重新上传同一个块 (更不用说交易在被打包进区块之前还要通过 mempool 进行广播)。

当 Starkware 在 2019 年进行一项实验时,他们在交易数据 gas 成本降低后首次发布了 500 kB 的区块,一些节点实际上无法处理这种大小的区块。处理大区块的能力已经并将持续得到改善。但是无论我们做什么,我们仍然无法获取以 MB/秒为单位的平均带宽,说服自己我们可以接受 1 秒的延迟,并且有能力处理那种大小的区块。

存储

错误答案:10 TB

正确答案:512 GB

正如大家可能猜到的,这里的主要论点与其他地方相同:理论与实践之间的差异。理论上,我们可以在亚马逊上购买 8 TB 固态驱动 (确实需要 SSD 或 NVME;HDD 对于区块链状态存储来说太慢了)。实际上,我用来写这篇博文的笔记本电脑有 512 GB,如果你让人们去购买硬件,许多人就会变得懒惰 (或者他们无法负担 800 美元的 8 TB SSD) 并使用中心化服务。即使可以将区块链装到某个存储设备上,大量活动也可以快速地耗尽磁盘并迫使你购入新磁盘。

一群区块链协议研究员对每个人的磁盘空间进行了调查。我知道样本量很小,但仍然...

请点击输入图片描述

此外,存储大小决定了新节点能够上线并开始参与网络所需的时间。现有节点必须存储的任何数据都是新节点必须下载的数据。这个初始同步时间 (和带宽) 也是用户能够运行节点的主要障碍。在写这篇博文时,同步一个新的 geth 节点花了我大约 15 个小时。如果以太坊的使用量增加 10 倍,那么同步一个新的 geth 节点将至少需要一周时间,而且更有可能导致节点的互联网连接受到限制。这在攻击期间更为重要,当用户之前未运行节点时对攻击做出成功响应需要用户启用新节点。

交互效应

此外,这三类成本之间存在交互效应。由于数据库在内部使用树结构来存储和检索数据,因此从数据库中获取数据的成本随着数据库大小的对数而增加。事实上,因为顶级 (或前几级) 可以缓存在 RAM 中,所以磁盘访问成本与数据库大小成正比,是 RAM 中缓存数据大小的倍数。

不要从字面上理解这个图,不同的数据库以不同的方式工作,通常内存中的部分只是一个单独 (但很大) 的层 (参见 leveldb 中使用的 LSM 树)。但基本原理是一样的。

例如,如果缓存为 4 GB,并且我们假设数据库的每一层比上一层大 4 倍,那么以太坊当前的 ~64 GB 状态将需要 ~2 次访问。但是如果状态大小增加 4 倍到 ~256 GB,那么这将增加到 ~3 次访问。因此,gas 上限增加 4 倍实际上可以转化为区块验证时间增加约 6 倍。这种影响可能会更大:硬盘在已满状态下比空闲时需要花更长时间来读写。

这对以太坊来说意味着什么?

现在在以太坊区块链中,运行一个节点对许多用户来说已经是一项挑战,尽管至少使用常规硬件仍然是可能的 (我写这篇文章时刚刚在我的笔记本电脑上同步了一个节点!)。因此,我们即将遭遇瓶颈。核心开发者最关心的问题是存储大小。因此,目前在解决计算和数据瓶颈方面的巨大努力,甚至对共识算法的改变,都不太可能带来 gas limit 的大幅提升。即使解决了以太坊最大的 DoS 弱点,也只能将 gas limit 提高 20%。

对于存储大小的问题,唯一解决方案是无状态和状态逾期。无状态使得节点群能够在不维护永久存储的情况下进行验证。状态逾期会使最近未访问过的状态失活,用户需要手动提供证明来更新。这两条路径已经研究了很长时间,并且已经开始了关于无状态的概念验证实现。这两项改进相结合可以大大缓解这些担忧,并为显著提升 gas limit 开辟空间。但即使在实施无状态和状态逾期之后,gas limit 也可能只会安全地提升约 3 倍,直到其他限制开始发挥作用。

另一个可能的中期解决方案使使用 ZK-SNARKs 来验证交易。ZK-SNARKs 能够保证普通用户无需个人存储状态或是验证区块,即使他们仍然需要下载区块中的所有数据来抵御数据不可用攻击。另外,即使攻击者不能强行提交无效区块,但是如果运行一个共识节点的难度过高,依然会有协调审查攻击的风险。因此,ZK-SNARKs 不能无限地提升节点能力,但是仍然能够对其进行大幅提升 (或许是 1-2 个数量级)。一些区块链在 layer1 上探索该形式,以太坊则通过 layer2 协议 (也叫 ZK rollups) 来获益,例如 zksync, Loopring 和 Starknet。

分片之后又会如何?

分片从根本上解决了上述限制,因为它将区块链上包含的数据与单个节点需要处理和存储的数据解耦了。节点验证区块不是通过亲自下载和执行,而是使用先进的数学和密码学技术来间接验证区块。

因此,分片区块链可以安全地拥有非分片区块链无法实现的非常高水平的吞吐量。这确实需要大量的密码学技术来有效替代朴素完整验证,以拒绝无效区块,但这是可以做到的:该理论已经具备了基础,并且基于草案规范的概念验证已经在进行中。

以太坊计划采用二次方分片 (quadratic sharding),其中总可扩展性受到以下事实的限制:节点必须能够同时处理单个分片和信标链,而信标链必须为每个分片执行一些固定的管理工作。如果分片太大,节点就不能再处理单个分片,如果分片太多,节点就不能再处理信标链。这两个约束的乘积构成了上限。

可以想象,通过三次方分片甚至指数分片,我们可以走得更远。在这样的设计中,数据可用性采样肯定会变得更加复杂,但这是可以实现的。但以太坊并没有超越二次方,原因在于,从交易分片到交易分片的分片所获得的额外可扩展性收益实际上无法在其他风险程度可接受的前提下实现。

那么这些风险是什么呢?

最低用户数量

可以想象,只要有一个用户愿意参与,非分片区块链就可以运行。但分片区块链并非如此:单个节点无法处理整条链,因此需要足够的节点以共同处理区块链。如果每个节点可以处理 50 TPS,而链可以处理 10000 TPS,那么链至少需要 200 个节点才能存续。如果链在任何时候都少于 200 个节点,那可能会出现节点无法再保持同步,或者节点停止检测无效区块,或者还可能会发生许多其他坏事,具体取决于节点软件的设置。

在实践中,由于需要冗余 (包括数据可用性采样),安全的最低数量比简单的“链 TPS 除以节点 TPS”高几倍,对于上面的例子,我们将其设置位 1000 个节点。

如果分片区块链的容量增加 10 倍,则最低用户数也增加 10 倍。现在大家可能会问:为什么我们不从较低的容量开始,当用户很多时再增加,因为这是我们的实际需要,用户数量回落再降低容量?

这里有几个问题:

区块链本身无法可靠地检测到其上有多少唯一用户,因此需要某种治理来检测和设置分片数量。对容量限制的治理很容易成为分裂和冲突的根源。

如果许多用户突然同时意外掉线怎么办?

增加启动分叉所需的最低用户数量,使得防御恶意控制更加艰难。

最低用户数为 1,000,这几乎可以说是没问题的。另一方面,最低用户数设为 100 万,这肯定是不行。即使最低用户数为 10,000 也可以说开始变得有风险。因此,似乎很难证明超过几百个分片的分片区块链是合理的。

历史可检索性

用户真正珍视的区块链重要属性是永久性。当公司破产或是维护该生态系统不再产生利益时,存储在服务器上的数字资产将在 10 年内不再存在。而以太坊上的 NFT 是永久的。

是的,到 2372 年人们仍能够下载并查阅你的加密猫。

但是一旦区块链的容量过高,存储所有这些数据就会变得更加困难,直到某时出现巨大风险,某些历史数据最终将……没人存储。

要量化这种风险很容易。以区块链的数据容量 (MB/sec) 为单位,乘以 ~30 得到每年存储的数据量 (TB)。当前的分片计划的数据容量约为 1.3 MB/秒,因此约为 40 TB/年。如果增加 10 倍,则为 400 TB/年。如果我们不仅希望可以访问数据,而且是以一种便捷的方式,我们还需要元数据 (例如解压缩汇总交易),因此每年达到 4 PB,或十年后达到 40 PB。Internet Archive (互联网档案馆) 使用 50 PB。所以这可以说是分片区块链的安全大小上限。

因此,看起来在这两个维度上,以太坊分片设计实际上已经非常接近合理的最大安全值。常数可以增加一点,但不能增加太多。

结语

尝试扩容区块链的方法有两种:基础的技术改进和简单地提升参数。首先,提升参数听起来很有吸引力:如果您是在餐纸上进行数学运算,这就很容易让自己相信消费级笔记本电脑每秒可以处理数千笔交易,不需要 ZK-SNARK、rollups 或分片。不幸的是,有很多微妙的理由可以解释为什么这种方法是有根本缺陷的。

运行区块链节点的计算机无法使用 100%的 CPU 来验证区块链;他们需要很大的安全边际来抵抗意外的 DoS 攻击,他们需要备用容量来执行诸如在内存池中处理交易之类的任务,并且用户不希望在计算机上运行节点的时候无法同时用于任何其他应用。带宽也会受限:10 MB/s 的连接并不意味着每秒可以处理 10 MB 的区块!也许每 12 秒才能处理 1-5 MB 的块。存储也是一样,提高运行节点的硬件要求并且限制专门的节点运行者并不是解决方案。对于去中心化的区块链而言,普通用户能够运行节点并形成一种文化,即运行节点是一种普遍行为,这一点至关重要。

区块链扩容是什么?

在比特币诞生之初区块链区块大小限制,比特币区块链区块大小限制的创始人中本聪并没有特意限制区块的大小区块链区块大小限制,区块最大可以达到 32MB。当时,平均每个区块大小为 1-2KB,有人认为区块链上限过高容易造成计算资源的浪费,还容易发生 DDOS 攻击。因此,为了保证比特币系统的安全和稳定,中本聪决定临时将区块大小限制在 1MB。那时比特币的用户数量少,交易量也没有那么大,并不会造成区块拥堵。 2013年至今,比特币价格直线飙升,用户越来越多,比特币网络拥堵、交易费用上升的问题逐渐涌现出来。比特币社区开始探索如何给比特币“扩容”,即通过修改比特币底层代码,从而达到提高交易处理能力的目的。而从2013年随着用户的增多,以火币为代表的的交易平台在其中起着越来越重要的作用。

比特币创立之初区块大小是多少

比特币在创立之初,每个区块数不超过36兆字节的交易数据,区块的大小只有1M。

区块大小刚好是1M的原因是比特币区块要永久记载btc网络上交易的数据,这些数据经分类后形成分类账,再添加到区块链中,如果区块太大了会被网络限制,甚至会拒绝,区块大小能够影响着数据量的验证通过率。

区块的大小影响着比特币网络每分每秒能够解决处理多少的事务数量,因为比特币区块记载着各种交易数据,并进行了分类账目,如果某个个别区块太大了,数据量太大会遭到网络的拒绝,故区块能够有效克制网络的扩展。避免区块被填满,造成网络拥挤的局面,一旦那样,带来的交易费用也会不断攀升。

区块链区块大小限制的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于区块链的区块高度、区块链区块大小限制的信息别忘了在本站进行查找喔。

标签: #区块链区块大小限制

  • 评论列表

留言评论