可能不是性能更好,应该是抽象更高。 怎么把系统变得抽象层次更高呢? 回忆刚才的定义,要找到里面的特殊设计和特殊细节,如果它不是共性的东西就把它砍掉,想办法把它变成更加一般化的设计。 在今天的区块链系统里,有哪些特殊设计呢?我找到了几个方面和大家分享一下: 特定账户体系区块链是人和资产交互的系统,这里面既然有人,有用户,你就要为每个用户建立一个账户、一个身份来代表它。怎么验证账户是属于某个人的?账户内部的数据模型是怎么样的?这些东西在今天的区块链系统里都是硬编码,由区块链设计者帮开发者、帮用户选定。作为用户、开发者,你并没有权利替换它。 以账户里的验证来举例,不管是 Bitcoin 还是 Ethereum,都是系统指定的,一旦你想往系统中发一笔请求、构造交易,你必须要用特定的密码学算法来签名,这是强制性的设计。作为区块链用户,你没有办法更改它,它是写死在系统里的。 但是,这样一个强制的设计其实会产生很多问题,其中最明显的是造成区块链用户门槛非常高。由于历史原因做出的特定选择,和今天在很多互联网场景里用到的密码学算法,是不一样的。比如说,现在每个手机里都有安全芯片,用安全芯片来保管私钥是最方便、最安全的,但安全芯片可能用的是 R1 或者 RSA 的算法,而不是区块链选择的加密算法,不兼容就会导致你必须使用助记词技术重新建立账户体系,而不能利用现有的账户体系。 现在,其他账户体系还有哪些?邮箱、人脸识别、生物特征识别等等,其实有很多,但是这些跟区块链的账户体系不兼容,这是特定设计带来的障碍。 特殊的密码学算法比如说,今天我在某一个区块链上想要开发一款应用,我不想用这个平台指定的几个有限选择,怎么办?你不能怎么办,你啥也做不了。 在以太坊里,有一种 Precompiles 是写在 EVM 虚拟机里的特定密码学算法,如果你不想用这个算法的话,你也许可以用 Solidity 重新实现一个,但效率非常低,因为 EVM 本身效率也非常低。 这会带来什么问题呢?密码学算法其实是一种标准,不同国家的密码学算法标准不一样,美国有美密,中国有国密,但区块链的选择不是任何一种标准。这意味着,当区块链的应用想要走到真实场景里的话,很难兼容现有的标准,这其实是区块链技术推广的障碍。 运行时环境现在,几乎所有的区块链平台都支持智能合约,智能合约需要运行在恰当的环境里,这个环境可能包括虚拟机、状态模型。运行时环境本身也可以分为计算时、运行时、验证运行时等等,各自都有很多不同的选择。比如说,虚拟机可以用 EVM,也可以用 RISC-V 虚拟机等。但今天看到的每个区块链设计,都是由区块链设计者帮开发者选定了特定的组合,开发者无法自由选择不同的选项,这会给开发者带来门槛。开发者为了进入区块链的体系,可能需要学习一套完全不同于今天工作里用到的东西,在我们看来这个限制也很大。 (责任编辑:admin) |