当前位置:主页 > 列表页 > 正文

行走笔记:Nervos 谢晗剑,抽象是当下区块链更需解决的问题

2021-11-02 04:16 | 出处: 行走

本篇笔记来自万向主办的上海区块链周活动,是1026日下午Nervos Network 架构师谢晗剑的主题演讲,原标题《区块链抽象与演进》。

以下,Enjoy

不知道大家有没有看过这样一句话



目前新的区块链所面临的最大挑战不是速度或者吞吐量,而是治理

所谓的第二代区块链新的区块链发展到今天,其实已经六年的时间了如果大家回顾之前的一些想法,能够发现当时的一些不那么正确的思路在几年之前大家想要做一个新的区块链,想的是如果我解决了区块链的性能问题,就创造出新一代的系统就可以打败以太坊就可以怎么怎么样但是这几年区块链行业发展下来,这个思路已经被证伪

我们能够看到有新的区块链出来,它们的性能也确实非常好但是家还是认为我们依然处于以太坊的时代,我们并没有进入下一个时代。并没有当年从BTC进入到以太坊的感觉

虽然今天新区块链已经有很好的性能,每秒可以处理几千笔交易所以有人说我们面临的最大挑战可能是治理我其实也是同意的。治理确实是整个区块链行业面临的很大的问题,而且这个问题是一个open question,是没有答案的。

不同的区块链的社区,不同区块链的团队都在探讨怎对开放性的P2P自治的项目去做治理所以治理确实是一个很难的问题但我想说,治理不是唯一的问题

抽象也很重要如果治理讨论的问题是,我们作为一个社区能够决定一个区块链平台是不是应该做某件事情的话,那么abstraction区块链的抽象层次可能会决定什么东西可以被搬到台面上,被治理被讨论。也就是说我们到底可以就一些什么样的问题去讨论,我们该做还是不该做我会认为抽象也是新的区块链所面临的一个非常重要的挑战。

那什么是抽象?


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

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

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



用一个不是那么区块链的例子来解释大家可能有玩过游戏机,特别是戏厅里大型街机如果你了解这样的机器会知道,每一台机器只是对应一个游戏对于街机来说,系统设计是从软件到硬件一体的设计所有的设计都是围绕一个目的服务的,就是这一款游戏。

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

但是游戏行业发展到今天最流行的东西已经不是街机了,而是像Xbox这样的通用的游戏平台。X box是一个一般化的设计你可以为X box设计各种各样的游戏。玩家只要购买不同的游戏,就可以在一个系统上去运行去玩。

街机X box就是一个一般化的过程。从另外一个角度上,X box是一个抽象层次更高的设计它可以适用更多的场景,它里面为每一个特定游戏所打造的特殊的东西,很少很少几乎没有正是因为它没有那些特殊的细节,在这个平台上的开发者才能够去填补那些细节,才能够让这个平台适应各种各样的需求。

当我们去考察区块链行业的发展考察BTCETH的进化的时候,其实也是这样过程。如果大家还记得比特币想要做什么我们从白皮书标题里可以看到,BTC一开始的目的是想要实现一个点对点的支付系统这是一个有非常明确的单一目的的系统所以它的系统设计也是围绕这个目的来做的。



在以太坊出现之前的时代——如果大家还有印象——全世界的人都看到了BITCOIN底层的技术是非常有价值的不管它区块链也好,还是叫分布式账本也好当我们想要用这个技术来做另外事情的时候,你会做什么?你能做的只有Fork BITCOIN的代码,而不是在BITCOIN这个平台之上去做什么事情

所以在以太坊之前,利用区块链技术的方式,是不停的创造一个又一个新的区块链的项目但是以太坊的出现就改变了这一切。以太坊不需要这么麻烦,可以把BITCOIN变成一个更加一般化的,或者说把区块链变成一个更加一般化的系统

以太坊是找到那些利用区块链技术的应用,它们需求的共性。通过创造个平台,把只为支付服务的一些特殊的设计去掉但是要把为各种各样的场景应对应用需求的共性需求找出来会为共性的需求去设计一个平台所以以太坊有虚拟机,有它的运行环境在以太坊上我们可以去构造各种各样的不同的应用。无论是支付,借贷还是游戏。

从这个角度看,BITCOIN以太坊是一个一般化的过程。换句话说以太坊是一个抽象层次更高的系统就像X box之于街机一样

如果沿着这个思路去考察,我们很容易可以想到我们要怎么样做的更好如果我们真的要做出一个和现在这一代区块链不一样的区块链,下一代应该是什么样子它可能不是性能更好,它应该是抽象层次更高

那我们要怎样把一个系统变得抽象层次更高呢?

回忆一下对“抽象”的定义我们要找到里面特殊的设计特殊的细节如果它不是共性的,我们就把它砍掉然后想办法把它变成一个更加一般化的设计。

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

1、特定的账户体系



区块链是人和资产交互的一个系统。这里有人有用户,就要为每个用户建立一个账户来代表他,或者建立一个身份来代表他。

在账户体系里账户的标识怎样去验证这个账户是属于某个人的,这个账户内部的数据模型是怎样的?这些东西在今天的区块链系统里都是硬编码是由区块链的设计者帮开发者帮用户选定的作为用户和开发者,并没有权利去替换它

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

但是这样一个强制的设计会有很多很多的问题最明显的是它造成了区块链的用户门槛非常高由于历史原因作出的特定的选择,造成了和今天在很多互联网场景里用到的密码学算法是不一样的。

比如手机芯片现在每个手机里都有安全芯片,用安全芯片来保管私钥是最方便也最安全的但是安全芯片用的可能是R1或者RSA的算法,而不是区块链选择的K1这样的不兼容就导致你必须使用一些像助记词等技术去重新建立一个账户体系,而不能利用现有的账户体系

我们经常使用的账户体系还包括电子邮箱地址、人脸识别各种生物特征识别等等很多但是这些区块链的账户体系是两分的,是不兼容的这是特定设计带来的第一个障碍

2、特殊的密码学算法



比如在某一个区块链上想要开发一个应用,开发者如果不想用这个平台指定的有限几种选择,可以怎么办?目前是啥也做不了比如在以太坊里,密码学算法是写死在EVM虚拟机的特定的密码学算法如果你不想用这些,也许可以重新实现一个你想要用的算法,但效率非常低因为EVM本身效率非常低它在实际使用中是不可接受的所以其实你也没得选择

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

3、运行环境



现在几乎所有的区块链平台都是支持智能合约的智能合约需要运行在一个恰当的环境里这个环境可能包括虚拟机,可能包括状态模型运行时环境本身也可以分为计算时的运行时,还有验证运行时。

所有左边4个选项,每个各自都有很多不同的选择比如虚拟机,可以用EVM也可以用wozoom,也可以用JavaScript虚拟机,会有很多选择但是今天我们看到每一个区块链系统的设计,都是由区块链的设计者帮开发者选定了一个特定的组合开发者没有自由去选择不同的选项

这会给开发者带来门槛。开发者为了进入区块链的体系,可能需要去学习一套完全不同于今天工作里用到的东西这个限制也很大当然不只是对开发者会存在学习成本对于区块链的性能,安全性等各方面都是有影响的我就不展开了。

总之

相关文章