Nervos架构师谢晗剑:区块链的抽象与演进
如果比特币演进到以太坊如同街机进化到XBOX,那Nevors对于以太坊的创新就像XBOX进化到PC一样。
原文标题:《区块链抽象与演进》
原文作者:谢晗剑,Nervos Network 架构师


编者语:10 月 26 日,在万向区块链实验室主办的第七届区块链全球峰会活动上,Nervos Network 的架构师谢晗剑在其演讲中,通过其对区块链演进的抽象化观点,进一步阐述了Nevos在这场演进中是如何做出创新的,本文为其演讲全文,文章根据现场速记整理。


大家好!我是 Nervos Network 的架构师谢晗剑,很高兴能和大家分享我今天想讲的题目——《区块链的抽象与演进》。


区块链所面临的最大挑战是什么?


不知道大家有没有看过这样一句话,意思是:今天新的区块链所面临的最大挑战不是「速度」和「吞吐量」,而是「治理」。


所谓的第二代区块链,新的区块链发展到今天,已经有五六年的时间了,如果大家回顾之前一些想法的话,能够看到当时的思路可能不是那么正确。


几年前大家想要做新的区块链的时候,想的是「如果我解决了区块链的性能问题,是不是就创造出了新一代的系统,就可以打败以太坊,然后可以怎么怎么样」等等。


但这几年区块链行业的发展已经把这个思路给证伪了,因为我们能够看到有新的区块链出来,它们的性能也确实非常好,但大家还是认为我们依然处于以太坊的时代,并没有进入下一个时代,并没有感觉到当年从「Bitcoin」进入到「Ethereum」的时代,这种感觉并没有,虽然今天新的区块链已经有很好的性能,能每秒处理几千笔交易。


 有人说我们面临的最大挑战是「治理」。


其实我也是同意的,「治理」确实是现在区块链行业面临的很大问题,而且这个问题是「Open question」,是没有答案的,不同区块链社区、不同区块链团队都在探讨怎么对这样一个开放性的 P2P 自治项目做治理。治理确实是很难的问题。


但是我想说,这不是唯一的问题,「抽象」也很重要。


「治理」讨论的问题是——我们作为社区能够决定区块链平台是不是应该做某件事情的话,那么区块链的「抽象」层次是决定什么东西可以被搬到台面上被治理、被讨论,就什么样的问题讨论该做还是不该做。


 所以,我认为「抽象」也是新的区块链所面临的非常重要的挑战。


什么是「抽象」?


这个词本身就很抽象。


抽象本身是比较技术的词,有两个解释,我们只要关心第一个:所谓抽象是一个过程,我们把特殊性从一个系统里去掉,然后从系统里创造出一般性、普遍性。


这是一般化的过程,通过去掉特殊的设计,把共性找出来,让系统可以变得更加一般化,可以适用于更多的场景。


这个解释可能还是很抽象,大家要记住关键词是要去掉「特殊性」,把「特殊性」从系统里去掉,在系统里找到更多共性「一般性」的东西放在设计里创造「一般性」。


用一个不是那么区块链的例子解释一下。


 大家可能玩过游戏机,至少我小时候会在游戏厅里玩大型所谓的街机。如果你了解这样机器的话,你就知道每一台机器其实对应一个游戏,这对于街机来说系统设计是从软件到硬件一体的设计,所有设计都是围绕一个目的服务的,就是这一款游戏。




当我们需要创造另一个新游戏的时候,我需要另外设计一台新的机器,所以游戏厅里摆了十台二十台机器,每台机器是不同的游戏。


游戏行业发展到今天最流行的东西已经不是街机了,更多的是像 XBOX 这种通用的游戏平台。


XBOX 是一般化的设计,你可以为 XBOX 设计各种各样的游戏,而后你只可以购买不同的游戏就可以在这一个系统上运行去玩。


所以,从街机到 XBOX 就是一般化的过程,从另外一个角度来说 XBOX 是抽象层次更高的设计,可以适用更多的场景,里面为每一个特定游戏所打造的特殊东西很少很少,几乎没有。


正是因为它没有那些特殊的细节,在这个平台上的开发者才能填补细节,才能让平台能够适应各种各样的需求。


当我们考察区块链行业的发展,考察「Bitcoin」和「Ethereum」的进程也是这样的过程。


「Bitcoin」想做什么?


从白皮书、标题里可以看到一开始的目的是想实现点对点的支付系统,这是有非常明确单一目的的系统,所以它的系统设计也是围绕这个目的来做的。


在以太坊出现之前的时代,如果大家还有印象的话,我们想要全世界人都看到「Bitcoin」底层的技术非常有价值,不管是区块链还是分布式账本。


当我们想用这个技术做另外事情的时候你能做什么?你能做的只是 Focus「Bitcoin」代码,而不是利用「Bitcoin」的代码做什么事情。

但是以太坊的出现改变了这一切,以太坊说我们不需要这么麻烦,我们可以把 Bitcoin、区块链变成更加一般化的系统,我们要找到那些利用区块链技术的应用需求的共性,创造出一个平台出来,把只为支付服务这种特殊设计去掉,但是要把为各种各样的共性需求找出来,为共性需求设计一个平台。


所以以太坊有虚拟机、运行环境,在以太坊上可以构造各种各样不同的应用,比如支付、借贷、游戏等等。


 从「Bitcoin」到「Ethereum」是一般化的过程。




换句话说,以太坊其实是相对「Bitcoin」抽象层次更高的,就像 XBox 相比于街机一样。


如果沿着这个思路去考察的话,我们很容易可以想到要怎么样做的更好,如果真的要做出和现在这一代不一样的区块链的话,下一代是什么样子?


可能不是性能更好,应该是抽象更高。


怎么把系统变得抽象层次更高呢?


回忆刚才的定义,要找到里面的特殊设计和特殊细节,如果它不是共性的东西就把它砍掉,想办法把它变成更加一般化的设计。


在今天的区块链系统里,有哪些特殊设计呢?我找到了几个方面和大家分享一下:


1 . 特定账户体系   




区块链是人和资产交互的系统,这里面既然有人,有用户,你就要为每个用户建立一个账户、一个身份来代表它。怎么验证账户是属于某个人的?账户内部的数据模型是怎么样的?这些东西在今天的区块链系统里都是硬编码,由区块链设计者帮开发者、帮用户选定。作为用户、开发者,你并没有权利替换它。


以账户里的验证来举例,不管是 Bitcoin 还是 Ethereum,都是系统指定的,一旦你想往系统中发一笔请求、构造交易,你必须要用特定的密码学算法来签名,这是强制性的设计。作为区块链用户,你没有办法更改它,它是写死在系统里的。


但是,这样一个强制的设计其实会产生很多问题,其中最明显的是造成区块链用户门槛非常高。由于历史原因做出的特定选择,和今天在很多互联网场景里用到的密码学算法,是不一样的。比如说,现在每个手机里都有安全芯片,用安全芯片来保管私钥是最方便、最安全的,但安全芯片可能用的是 R1 或者 RSA 的算法,而不是区块链选择的加密算法,不兼容就会导致你必须使用助记词技术重新建立账户体系,而不能利用现有的账户体系。


现在,其他账户体系还有哪些?邮箱、人脸识别、生物特征识别等等,其实有很多,但是这些跟区块链的账户体系不兼容,这是特定设计带来的障碍。


2 . 特殊的密码学算法   




比如说,今天我在某一个区块链上想要开发一款应用,我不想用这个平台指定的几个有限选择,怎么办?你不能怎么办,你啥也做不了。

在以太坊里,有一种 Precompiles 是写在 EVM 虚拟机里的特定密码学算法,如果你不想用这个算法的话,你也许可以用 Solidity 重新实现一个,但效率非常低,因为 EVM 本身效率也非常低。


这会带来什么问题呢?密码学算法其实是一种标准,不同国家的密码学算法标准不一样,美国也美密,中国有国密,但区块链的选择不是任何一种标准。这意味着,当区块链的应用想要走到真实场景里的话,很难兼容现有的标准,这其实是区块链技术推广的障碍。


3 . 运行时环境   




现在,几乎所有的区块链平台都支持智能合约,智能合约需要运行在恰当的环境里,这个环境可能包括虚拟机、状态模型。运行时环境本身也可以分为计算时、运行时、验证运行时等等,各自都有很多不同的选择。比如说,虚拟机可以用 EVM,也可以用 RISC-V 虚拟机等。但今天看到的每个区块链设计,都是由区块链设计者帮开发者选定了特定的组合,开发者无法自由选择不同的选项,这会给开发者带来门槛。开发者为了进入区块链的体系,可能需要学习一套完全不同于今天工作里用到的东西,在我们看来这个限制也很大。


不光是对开发者有学习成本,对区块链性能方面、安全方面都有影响。总而言之,区块链系统者给你做了选择,你只要用区块链系统就不能再做其他的选择。


以上三个方面是现在能够看到的区块链在抽象层次上比较大的问题,我们也希望解决这些问题。解决的方式,说起来也很简单。既然找到了问题,就要对账户做抽象,对密码学做抽象,对运行时做抽象,给用户和开发者更多的选择。



我们是怎么做的呢?在账户抽象一层,Nervos 推出了新的数据账号模型——Cell model。有了账号抽象之后,能够实现什么样的效果呢?在抽象账户上的应用,可以被不同地方的用户用到。


比如说,你是普通的互联网用户,你只有邮箱,你可以直接使用区块链上的应用,你不需要下载新的钱包入口,你也不需要设置你的私钥、助记词,你可以直接使用邮箱做账户就好了。


我们同样也可以利用手机的安全芯片,安全、方便地帮你建立一个账户。如果你的手机芯片和人脸识别是关联的,你可以直接用人脸识别控制账户,整个过程中你不需要学习区块链任何特殊的东西,只要用你现有的东西就可以了。


Nervos 上已经有不少应用在这样做了,像 Unipass 这样的应用就是一个基于 e-mail 的去中心化区块链账户系统,还有像 DAS 这样的应用,也是利用抽象账户的特性,使得互联网用户、以太坊用户、EOS 用户都可以直接操作应用,而不是只有 Nervos 用户可以操作应用,这是互操作性。


如何做密码学抽象?




密码学抽象的核心是需要有非常高效的虚拟机。我们自己实现的高效虚拟机是 CKB-VM,它采用的是开放指令级 RISC-V,得益于 RISC-V 指令级的特性,CKB-VM 可以让开发者用 C 和 Rust 来实现密码学算法,好处不仅仅是高效,并且很多成熟的密码学算法实现可以直接被搬到区块链上来运行,也就是说它们可以被搬到 Nervos 上运行。


密码学算法的实现其实非常困难,如果我们先去实现密码学算法,那么这样会很容易出错。如何判断密码学算法的实现是不是安全的?唯一的最好的检验标准就是它的成熟度和使用时间,使用的人越多,使用的时间越长就越安全。


能够直接移植 C 和 Rust 做的密码学好处是不需要重新实现一套,如果用 Solidity 重新实现一套,那么安全性就值得考虑,因为它是新做的事情,里面可能会有 bug,需要时间矫正。


通过高性能的 EVM,通过支持 C 和 Rust 的 EVM,可以高效复用现在大部分的密码学算法,因为现在大部分现有的密码学算法就是用 C 和 Rust 实现。


运行时的抽象怎么做?




对于开发者来说,开发者不会被迫去使用某一种语言做开发,而是可以使用日常就已经很熟悉的语言来做开发,无论是 JAVAscript、Ruby、Rust、C 等,都可以被用来做开发。而且在写智能合约时,智能合约内部的内存布局、数据布局也并不是规定好的,而是可以有很灵活的选择,这是我们想要实现的目标。


Nervos 其实是在这样的方向上改进区块链的,我们想要创造的可能不是速度更快的区块链,而是抽象层次更高的区块链。但是当抽象层次能够做到更高之后,我们能够做的事情会更多,性能也好、吞吐量也好,会是抽象层次变高带来的副作用。




当抽象层次更高之后,我们就会把更多事情移到链外,或者如今天上午 Vitalik 所说的移到 Layer 2 去做。Layer 1 与 Layer 2 的分离,或者说计算与验证的分离是抽象变化层次的副作用,所以我们应该追求的是抽象层次的变化,而不是直接追求性能的变化。




就好像我们从 XBOX 变成了 PC,XBOX 虽然是一般化的通用平台,但其实它还是给了人们很多的限制,我们可以给它做不同的游戏,但是不能改它的硬件。PC 把这个限制也去掉了,在硬件层也做了更加一般化的处理,PC 允许人们换显卡、CPU、内存、主板、硬盘。所以 PC 是更加一般化的系统,它是一个标准。从这个角度来讲,PC 是比 XBOX 抽象层次更高的系统,能够做更高的事情,能够满足用户更多的需求,能够给开发者带来更多的方便。


如果大家对 Nervos 有更多兴趣的话,可以访问 Nervos 的官网,我的演讲就到这里,谢谢大家!







律动 BlockBeats 提醒,根据银保监会等五部门于 2018 年 8 月发布《关于防范以「虚拟货币」「区块链」名义进行非法集资的风险提示》的文件,请广大公众理性看待区块链,不要盲目相信天花乱坠的承诺,树立正确的货币观念和投资理念,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。
Nervos
栏目
关于Nervos的一切
相关快讯
更多
2小时前
律动 BlockBeats 消息,11 月 29 日,Jack Dorsey 将辞去推特公司领导职务,首席技术官 Parag Agrawal 被任命为 CEO 和推特董事会成员。(财联社)
2小时前
律动 BlockBeats 消息,11 月 29 日,据彭博社报道,前花旗集团高管 Matt Zhang 建立的投资公司 Hivemind Capital Partners 正在启动一项 15 亿美元的风投基金,专注于加密货币相关领域,该基金已聘请前高盛分析师 Sam Peurifoy 来领导专门针对 P2E 游戏的投资。 Matt Zhang 表示,Hivemind 预计在未来 6 到 12 个月内再增加 4 到 5 个合作伙伴,将围绕流动性挖矿、项目风投、加密交易、P2E 游戏 4 个主要战略方向进行投资。
2小时前
律动 BlockBeats 消息,11 月 29 日,自托管银行开发商 Mean DAO 完成 350 万美元融资,软银和三箭资本及 DeFiance Capital 领投,Skyvision Capital、Solar Eco Fund、Sesterce Capital 和 Gate.io 参投。 据悉,Mean DAO 开发的 DeFi 协议 Mean Protocol 具备自动化的现金流协议,可完成自动支付并提供传统银行工作流程,具备可灵活变更的时间参数表。目前,Mean DAO 拥有超过 1.9 万名成员,其平台为 3.1 万名用户提供服务。
2小时前
律动 BlockBeats 消息,11 月 29 日,据 CNBC 报道,推特 CEO Jack Dorsey 预计将卸任。Dorsey 是比特币最有名的主要支持者之一,推特简介只有 Bitcoin 一词。此前,Dorsey 表示他愿意离开公司,完全专注于比特币。