起初,我们直接在自己的程序内管理硬件资源,后来我们构建了操作系统作为中间层,代理我们处理那些繁重的任务。再往后,我们又实现了硬件虚拟化,于是应用可以在云端运行。早期的互联网只有少数几层协议,如 TCP/IP,后来发展出应用层,于是有了 HTTP、FTP 和 SMTP 等。如你所见,抽象的例子比比皆是。 因此,我想说的是,新的抽象是演化的标志,下一代区块链必须比上一代更加抽象。从比特币到以太坊的跨越是初代区块链抽象,同时我相信抽象的进程不会就此终止。如果想要知道后以太坊时代会是什么样子,我们首先应该思考的是,还可以从以太坊中进一步抽象掉什么。 新的抽象与比特币相比,以太坊的通用智能合约模型是一大进步。若要再进一步抽象,一个方向是基于以太坊智能合约模型创建一个更抽象的模型。如果我们更深入探究以太坊模型,我们会发现该模型融入了很多特定的设计选择,其中比较主要的有: 1.账户地址。用户需要通过 EOA (外部账户)来发起交易。EOA 地址是公钥的 Keccak256 (一个特定的哈希算法)哈希值。 对于非技术背景的用户来说,这些设计选择看上去不明所以,但是其重要性不亚于共识算法或经济模型参数的选择。这些选择影响着以太坊的方方面面,就好像对普朗克常数 [4] 进行微调也会给我们的宇宙带来翻天覆地的变化 [5]。构建一个新的去中心化生态就像是创建一个新的宇宙,而这些设计选择就像是这个宇宙中设定好的物理规律。 当时有这些设计选择是为了帮助以太坊实现其初始目标,事后看来它们并非最佳选择。例如,发送方身份验证算法 Secp256k1 对设计者来说可能就是顺手一选,但是在不支持 secp256k1 的环境中 [6] 它带来了不必要的障碍;通过一份小小的白名单内嵌预编译合约的做法,使得大部分广泛使用中的密码学原语被排除在应用之外;状态数据结构中使用的 MPT 也被证明是效率非常低下 [7] 的,不仅加剧 [8] 了状态爆炸问题,还导致了与 IO 相关的 EVM 操作码 [9] 的定价困难,而定价不当可能会引发 DoS 攻击等安全问题。 (责任编辑:admin) |