HF1 为信标链首次硬分叉的暂时代码名称 (点进链接参与协议升级永久命名的讨论),这次升级的主要目标为:
1. 增加轻客户端支持
2. 修复一些信标链上的漏洞,这些漏洞发现时间比较晚,来不及在创世前修复
3. 在需要进行较大的更新 (分片、合并) 之前,先在相对较小的更新中对硬分叉机制进行测试
HF1 提议的共识改变
同步委员会
我们在信标链上添加了随机取样的 “同步委员会”。这样做的目的是让轻客户端以较低的开销 (每天至少需要约20KB来保持,需要约500个字节来确定单个区块) 来确定信标链头。这将使得轻客户端实际上可用于移动设备、信标链 之类的浏览器内的应用案例 (以及合并后的整个以太坊),从而为更加去信任的钱包生态打好基础。
在每个时间段(约27小时)内,随机选择 1024 位验证者作为同步委员会的成员。同步委员会中的验证者将发布证明当前链头的签名。这些签名将作为LightClientUpdate对象的一部分被广播至区块链,这可以帮助轻客户端找到链头;并且签名会被打包进链,验证者会分得奖励。
Vitalik:跨链证明是实现跨链社交恢复钱包的关键,ZK-SNARK等是可行选择:6月20日消息,以太坊联合创始人VitalikButerin在最新文章《更深入探讨钱包和其他用例的跨L2读取》中指出,实现跨链社交恢复钱包的一个可行方案是维护一个存放在特定位置的密钥库,以及多个不同位置的钱包,这些钱包可以读取密钥库来更新自身的验证密钥视图或在每次交易验证过程中。跨链证明是实现这个功能的关键,需要对其进行深度优化,可能的方案包括零知识证明(ZK-SNARK)、等待Verkle证明或自定义KZG解决方案。
从长远看,我们需要实现聚合协议,通过生成聚合证明来打包所有用户提交的操作,以此来降低成本。这可能需要将其集成到ERC-4337生态系统中,可能需要对ERC-4337进行一些修改。同时,为了减少从L2内部读取L1状态的延迟,L2应被优化。
钱包不只可以放在L2上,也可以放在与以太坊连接程度较低的系统上,如L3或只同意包含以太坊状态根的独立链。然而,密钥库应放在L1或高安全性的ZK-rollupL2上。尽管这样会增加复杂性,但从长期来看,可能在L2上设置密钥库才是成本更低的方案。在这个过程中,我们也需要致力于提供保护隐私的解决方案,并确保我们的方案可以与隐私保护方案兼容。[2023/6/21 21:50:47]
主要PR:
Blur推出Global Activity界面,可监控所有NFT系列的上架和销售活动:金色财经报道,NFT 市场 Blur 宣布推出可监控和跟踪所有 NFT 系列上架和销售活动的 Global Activity 界面,同时允许用户自定义监控多个 NFT 系列的活动。[2023/4/21 14:17:52]
https://github.com/ethereum/eth2.0-specs/pull/2130
核算改革 (第一层)
给验证者的奖励不再通过计算得出。此前,我们的方法为存储PendingAttestation对象然后在最后对它们进行处理。而现在我们添加了一个位字段以存储每个验证者的状态,从而可以实时收集参与数据。位字段按照“混洗”的方法进行排序,以确保同一个委员会的验证者的记录同时显示。这一改变的目的是简化客户端实现,并使得更新默克尔树的成本更低。
https://github.com/ethereum/eth2.0-specs/pull/2176
Vitalik:新加坡在加密货币监管方面的善意尝试可能不会奏效:11月21日消息,以太坊创始人 Vitalik Buterin 近日在接受采访时表示,新加坡在加密货币监管方面的善意尝试可能不会奏效,因为新加坡监管机构试图将“区块链使用”和“加密货币”区分开,“如果没有加密货币,那么你拥有的区块链就是假的,没有人会关心这些区块链”。
此外,Vitalik Buterin 表示,监管机构既要支持新技术,又要打击不良参与者,在两者之间取得平衡难度很大,但他也表示新加坡很早就将自己定位为对加密货币友好的司法管辖区,只是最近几个月才开始收紧尽管,监管机构只是试图“阻止加密货币投机”,而不是完全禁止加密货币。(straitstimes.com)[2022/11/21 22:11:32]
核算改革 (第二层)
我们每 64 个 epochs 更新一次验证者集并进行一次惩罚核算,而不再每个 epoch都计算一次。这样做是为了极大地降低处理“空时段过渡 (empty epoch transitions)”的复杂性——比如,在一条参与率非常低的链中,两个相继的区块之间隔了一千个 slot,其间仅有空块。目前为了处理这样的链,客户端们将需要每个epoch重新计算一次验证者的余额以对验证者执行怠工惩罚。而这项提案应用之后,客户端仅需要每隔 64 个 epoch 核算一次。
动态 | Vitalik Buterin 提出激励开发者的新方案:将智能合约交易手续费资助合约创建者:Vitalik Buterin 在以太坊研究论坛上发表文章,提出一种激励开发者的新方案,当开发者创建一个智能合约后,任何其他使用该合约的用户付出的交易手续费的一部分(比如说 33%),会发送给合约的创建者作为激励,而且还提出了两种关于奖励的算法,分别是线性和超线性。该想法出自于 9 月 16 日在以色列举行的 StarkWare Sessions 会议上,在探讨关于公链基础设施的开发,资金应该是通过治理和协议获得,还是说应该被独立的企业资助话题中,以太坊创始人 Vitalik Buterin 认为,「通过协议获得资金的优势是,这个方法可以获得更多的资金。而劣势也很明显,由于这类方法是中立的,所以无论利用任何机制都会被恶意攻击,之前也已经遇到过各种各样的尝试。所以这类方法的最大的挑战是想出一套合适的治理结构和其组件。然后他还举了一个例子,如果我们设置这样一个资助机制:当有人使用了某个智能合约,因此而产生的转账费的一部分会分配给该合约的创建者,这样的机制就非常的中立。[2019/9/23]
此外,我们对怠工惩罚 (inactivity leaks) 增加了两项变动:
现场 | Vitalik Buterin:区块链可以被视作是一种促进各种经济协调的工具:金色财经现场报道,今日,由金色财经提供战略媒体支持的以太坊产业发展峰会在香港举办,会上以太坊创始人Vitalik Buterin及其团队接受了包括金色财经在内的中外媒体采访。在回答“区块链究竟能给我们这个社会带来些什么”这一问题时,Vitalik Buterin表示:“我认为你可以把区块链看作是一种促进各种经济协调的工具,就像其他不同种类的经济机制一样,人们可以在互联网上合作制作内容,然后再各自获得报酬,这样就会鼓励人们更具有责任心,他们在制作新闻的时候也会更负责,不会出现虚假新闻。现阶段,人们正在提出各种不同的工具、或是不同的经济机制,鼓励大家以更广泛的受益形式来工作。传统支付方式很难满足这种协作工作模式,因此区块链能够创建全新的经济机制。我写论文的时候,也得到了开发者们的支持。”[2018/9/8]
1. 每个验证者的怠工惩罚力度降低至1/4。也就是说,如果链上出现怠工惩罚,当一个完全离线的验证者损失其余额的~10%的数额时,在此期间另一个90%都在线的验证者仅损失其余额的~0.1% (而不是~1%)。这样做是为了加大对作恶节点的惩罚力度,对那些仅仅由于网络连接不佳而掉线的验证者则降低惩罚力度。点进链接查看更多的讨论
2. 区块敲定后怠工惩罚会逐渐减少,而不会停止。即区块被敲定后,离线节点的余额将持续减少,这样确保了参与率显著高于2/3,而不是刚刚超过阈值。点进链接查看更多的讨论 (不过请注意与此处略有不同)。
主要PRs:
https://github.com/ethereum/eth2.0-specs/pull/2192
https://github.com/ethereum/eth2.0-specs/pull/2194
惩罚常数调整
很庆幸,尽管我们还没有完全解决验证者惩罚的问题,但在某种程度上已经摆脱了困境。我们会改变以下常数:
1. INACTIVITY_PENALTY_QUOTIENT:
从2**26(= 67,108,864) 减少至3 * 2**24(= 50,331,648)
2. PROPORTIONAL_SLASHING_MULTIPLIER:
从1提高至2
3. MIN_SLASHING_PENALTY_QUOTIENT:
从2**7 (= 128)减少至2**6(= 64)
HF1 提议的分叉选择变更(大概)与HF1同步部署
通过 (block, slot)对来做分叉选择
目前,如果在最近的 slot 里没有区块发布,那么出于 LMD GHOST 证明的目的,该 slot 里面的证明会被算作支持证明者所支持的最近区块。例如,在下图,空白 (BLANK) 区块的证明也会算入 A 的证明里。
但是,这容易招致 34% 攻击。如果有m名验证者被分配到每个 slot,那么一个恶意攻击者就可以控制每个 slot 的0.34 * m。攻击是这样进行的:攻击者不发布 B,且不发布任何他们的证明。所有的诚实证明者对他们在slotn看到A、在slotn+1什么都没看到的声明进行投票,在slot n+2,诚实提议者会在区块A上生成区块C,而诚实的验证者们会支持C。此时,恶意提议者发布B并对slot n+1和n+2做证明。这样,底部分叉有0.68 * m的验证者支持它,而顶部分叉只有0.66 * m的验证者支持,由此底部分叉胜出。
这样的攻击在此论文的 3.1部分有详细描述:
https://econcs.pku.edu.cn/wine2020/wine2020/Workshop/GTiB20_paper_8.pdf
提议的修复方案是改变分叉选择的运作方式——让分叉选择在 (block, slot) 对的树上操作,而不是在区块树上。因此,在slotn+1的诚实投票会算作在上图对 (BLANK, n+1)的投票,也就是会被正确算作支持顶部分叉,那么顶部分叉的支持率会变成1.32 * m,由此能够打败攻击。
主要PR:
https://github.com/ethereum/eth2.0-specs/pull/2197
分叉选择对称攻击修复
分叉选择还存在“对称攻击” ?(balance attack),攻击是这样形成的:有2%的验证者在一个slot结束之前发布少量证明,让大于49%的网络的人认为区块A胜出,让大于49%的网络的人认为区块B胜出。如果他们对广播计时准确,针对每组人群的信息会及时到达,且在slot的边界时间结束前不够时间重新广播信息到其他组。如果网络环境对攻击者而言是最理想的话,这样的攻击他们可以无限重复。
提议的修复方案是通过赋予下一个slot的提议者暂时但重要的分叉选择权来“打破对称” ,他们能决定所有验证者在分叉的哪一边。
重要的文档:
https://notes.ethereum.org/@vbuterin/lmd_ghost_mitigation
原文链接:
https://notes.ethereum.org/@vbuterin/HF1_proposal#Proposed-consensus-changes-in-HF1
来源 |?notes.ethereum.org/@vbuterin
作者 | Vitalik Buterin
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。