|火星独家 | 通向以太坊2.0:读懂「无状态验证机制」


|火星独家 | 通向以太坊2.0:读懂「无状态验证机制」
本文插图

免责声明:本文旨在传递更多市场信息 , 不构成任何投资建议 。 文章仅代表作者观点 , 不代表火星财经官方立场 。
小编:记得关注哦
来源:火星独家
|火星独家 | 通向以太坊2.0:读懂「无状态验证机制」
本文插图

编译 | Bite@火星财经App
以太坊 2.0最广为人知的变化是Staking和分片 , 这些变化都是从以太坊中获得灵感 。
当以太坊在2015年推出时 , 它引入了“通用”区块链的概念 , 任何人可以在网络上构建与ETH和各种代币互动的应用程序 。 这些应用为去中心化金融(DeFi)打开了成熟大门 , 并发展到持有超过10亿美元抵押资产的金融产品 。
以太坊 2.0距离全面启动仍需要2–3年的时间 , 并且Eth 2.0将被部署为由信标链(Beacon Chain)与多条分片链(Shard Chains)构成的独立区块链 , 而 Eth 1.0 需要经过改动与升级方能成为Eth 2.0中的其中一条分片链 。 这意味着现在运行的以太坊 1.0 区块链需要进行改动 , 并且在未来的 5~10 年保持运作 , 持续发展 。 而 Eth 1.x 即为以太坊1.0升级版本的代称 。 Eth 1.x 的首要目标旨在解决现在区块链日益增长的资料负担 。
当人们谈论以太坊及其状态规模时 , 你可能听说过“状态膨胀”(state bloat) 。 这是指支付一次GAS费会让你的数据在以太坊区块链上永久保存 , 从而导致一个无限的、不断增长的状态 , 其中甚至有很多无用数据 。 状态在存储空间上膨胀 , 这意味着随着网络的使用 , 以太坊节点需要更多的存储或更高性能的硬件 。 从长远来看 , 这增加了以太坊节点运行的门槛 , 并且每当区块GAS限制增加时 , 状态增长就成为一个更大的问题 。
无状态性
无状态客户端的概念是最先由 Vitalik在探索 Sharding (分片) 的情况下提出来的 , 但之后在围绕Eth1.X的讨论中也被探讨 。 起初这种方式被认为太过复杂 , 但随着Trinity bean sync方式展现了semi-statelessness (半无状态性) 对于轻客户端的可行性 , 无状态客户端的概念获得了很多支持 。
什么是“状态”?
要解释无状态以太坊 , 我们首先需要理解“状态”(state)的概念 。 当我们提到“状态”时 , 一般是指“事务的状态” 。
以太坊的完整“状态”描述了所有账户和余额的当前状态 , 以及在EVM中部署和运行的所有智能合约的集体历史 。 链上每个最终确定的区块 , 都有且只有一个状态 , 这是由网络中的所有参与者共同确认的 。 每当有新的区块被添加到链上 , 状态都会随之改变且更新 。
我们来看一下以太坊客户端软件中一般的交易过程:
|火星独家 | 通向以太坊2.0:读懂「无状态验证机制」
本文插图

在区块中执行交易需要交易数据(蓝色矩形所示) , 及当前状态(黄色矩形所示);执行结束后 , 原本的当前状态变为历史状态 , 同时产生新的当前状态 。 处理交易可能还需要一些别的数据(如区块时间戳 , 或是前个区块哈希值) , 但我们先忽略这些大小固定且无关紧要的部分 。 执行交易还会产生明细(receipt)(绿色部分) , 但在讨论无状态客户端时也可暂时忽略 。
无状态客户端的核心思想是:在区块中执行交易过程时 , 不访问整个状态 。
Eth 1.X扩容难题
Eth1.x 研究的重点是将当前的以太坊链转移到“无状态客户端” (Stateless 以太坊), 最终目标是顺利过渡成为Eth2.0中的一个执行环境 (Executive Environment) 。
以太坊已经发布了近5年的时间 , 惊人增长的背后也让业界注意到了它的瓶颈是什么 , 随着越来越难运行全节点 , 以太坊网络可能会变得越来越中心化;随着网络延迟的增加 , 它的速度可能会越来越慢;随着“状态膨胀”的出现 , 区块验证可能变得越发困难 。 最终 , 随着交易吞吐量达到上限 , 且客户端改进越来越难以实现 , 终端用户与核心开发者都将非常受挫 。


推荐阅读