#征文活动BEL

与 Web2 的「黑匣子」系统不同,可验证性意味着任何人都可以独立验证系统的运行方式。以太坊通过确保任何人(甚至在低端设备上)都可以验证状态、执行和共识来进一步推动这一点。为了使以太坊真正可验证,必须证明三件事: - 状态:用户能否确认区块链的当前数据? - 执行:用户能否确认状态转换(STF)有效? - 共识:用户能否确认选择了正确的链? 以太坊的状态是任意时间所有账户余额、智能合约存储和代码的快照。如何在不下载整个区块链的情况下证明这个状态是有效的?这就涉及到 Merkle Trees 及其后继者 Verkle Trees。Merkle 树创建了从数据到 Merkle 根的「证明路径」,允许用户验证单个数据点,而无需完整的数据集。然而,随着以太坊状态的增长,Merkle 证明变得庞大且低效。Verkle Trees 使用「椭圆曲线矢量承诺」缩小证明尺寸。 Verkle 树不是对每个数据分支进行哈希处理,而是使用加密技巧生成更小的单一证明,有效将证明大小从 330 MB 减少到约 2 KB。 以太坊的执行层运行状态转换函数(STF),该函数采用前一个状态和一个新块来计算下一个状态。为了验证执行情况,用户必须重新运行交易 —— 这是一个成本高昂的过程,需要大量存储和计算能力。以太坊使用附加到区块的「有效性证明」,而无需重新运行每个块。通过有效性证明,提议者向轻客户端证明 STF 执行的正确性。用户仅验证 3 个简单的哈希值:旧状态根,新状态根,区块哈希。 以太坊的混合概率和确定性共识允许低延迟块生产(slot),并且每个时期(32 slots)都有最终性。如何在不运行完整验证器的情况下验证这一过程?同步委员会使用 512 个随机选择的验证者对链的头部进行 27 小时的签名。轻客户端无需下载链即可验证此签名,以确保链的正确性。这种方法简单、高效,但也存在一些风险(无法对不良行为进行罚没)。【原文为英文】