项目分析:本体和它的朋友们
一、本体系统概览
相信很多人读了本体的白皮书,在看了一些介绍本体的文章后,会发现大多数文章会以下面这段 官宣的文本 (技术白皮书概述)作为开始:
本体(Ontology)是一个多链、多系统融合的
链群结构
,除了本体本身的分布式账本框架可以
支持实现
不同治理模式下
的区块链体系,也可与来自
不同业务领域
、不同地区的不同链,通过本体
的
各类协议进行协作
,形成
各类异构区块链和传统信息系统的跨链、跨系统交互映射
。因此,本体
又被称为本体链群或本体链网,即区块链之间的互联网。—本体技术白皮书概述
这段描述非常专业,但是对大多数人而言,很难形成直观的理解,而本体的架构图,对于理解本体到底是什么有很大的帮助。
将本体的技术架构图简化一下,可以得出下面的简化图:
我们按照箭头的指向,自底向上来看。首先,本体是一个区块链系统。区块链系统的去中心化,不可篡改性等特性,根源在于这个账本。而我们常说的公链,最核心的任务就是对这样的一本账本进行维护。而用什么方式进行维护,如何将参与到这个系统的成千上万个节点连接起来进行协作,就需要设计出一套 共识机制 来完成。
最初的基于算力大小的PoW共识,用最公平的方式完成了分散在全球数千个节点的协作。而PoW共识协议有其弊端,比如太过消耗能源,且达成共识的时间太久,人们开始寻求更快更有效的方式。以抵押数字资产作为权益的PoS共识,不用再以暴力挖矿的形式达成共识,降低了能源消耗,以抵押的资产占比计算出记账下一个区块的概率。在PoS这个大类里,有一类现在广泛采用的共识机制就是DPoS。虽然很多区块链系统的共识机制,名称不同,但是本质上都是DPoS的思想。我们面对的场景是相同的,即:对账本进行更新。更新账本可以获得系统的奖励。一种方式是人人可以记账,另一种则是少数人拥有记账的权力。这少数人,就是DPoS中的D的含义,即 代理 ,也称作 委托 。
而怎么选出参与记账的节点,方式各有不同。有的系统用代币作为选票,比如EOS系统,持有EOS代币,就拥有 投票权 ,通过选举,得出排序。也有的系统,通过多个维度对参与系统的节点进行声誉排序,而如何定出排序,则各有各的方法,主要还是看节点的实力,实力的衡量包括了节点的资本实力,为系统带来的贡献,社交圈子等。也或者,像本体用到的,通过 随机 的方法来选出更新账本的节点。这里面涉及到的随机方法,是可验证随机函数,每一轮的随机数种子,来自于上一轮生产区块的节点。值得注意的是,能够参与被随机过程选择的节点,一般也需要经过一定的门槛筛选,比如抵押代币。
基于DPoS思想的共识机制,选出来的节点数量是固定的,一般是在100以下,比如7,15,21,33等数字。在这些选出来的节点间,达成更新账本的共识。这个过程也有一个自己的名字,叫作PBFT算法,数学上证明可得出有1/3容错能力。形象一点说,这是一个 开会 讨论的过程,决策的逻辑是 少数服从多数 。
区块链:人类的巴别塔
巴别塔,又称之为通天塔。起源于犹太教的一个故事,一群只说一种语言的人,决定在 示拿 这个地方建造一座能够通天的高塔。上帝见此情形,就把他们的语言打乱,让他们再也不能听明白对方的意思,并把他们分散在了世界各地。因为上帝认为,一群只说一种语言的人们,以后就没有他们做不成的事情了。
区块链从诞生之初,就带有这种通天塔的意象。它能通过公开的分布式账本达成分散在全球各地的,不同肤色,不同民族,不同语言的人们的沟通,协作,完成价值的交换。
然而,人类在区块链世界里自己扮演了上帝这个角色。
现在的区块链世界,经过几年的发展,出现了各种各样的区块链系统,公有链,私有链,联盟链等。这些链之间是分散的,不能互联互通。尤其是在公链领域,尤其繁荣。本身区块链是一种非常好的将人类互联互通的工具,但现在生态割裂,它们治理模式不同,共识机制也有所差别。
好在越来越多的人意识到了区块链世界不能向着无数平行线结构方向发展,而应当通过某种方式编织在一起,形成 区块链网络 。链与链之间能够互相沟通,协同操作,也即,我们需要跨链技术。典型的项目有,Cosmos,Polkadot等。
Cosmos:
Polkadot:
本体在各类区块链账本之上构建的 交互层 ,也是在做同样的事情:让链与链之间实现互通有无。简单的资产跨链实现并不难,难的是打通多种不同链之间的数据交互,业务交互等。
而在本体的设想中,要多了一层考量:除了能在链之间互通以外,也将传统的非区块链系统纳入,实现跨系统的交互。
区块链的发展一定要连接成一个 价值网 ,才能真正显示出它的力量。
再往上一层,是本题的核心协议层,仅仅有不同的账本交互,还不足以支撑上面的生态发展,链与链之间,系统与系统之间的更复杂的交互还需要借助于 协议 来完成。这些核心协议包括数字身份,数据保护,数据存储,以及智能合约等各个方面。而在这些协议里,数字身份则是更为重要的一环,在本文第二小节会再展开。
在协议层上,是本体为开发者提供的应用开发框架,包含了应用开发需要的协议以及组件。这是对下面两层的功能抽象,也是对业务逻辑的封装,为更上层的开发提供了方便的套装。
系统的最上层,是真实的场景,是直接面向用户提供服务的接口。
本体的技术分层架构里,最突出的应当是核心协议层里提到的 分布式信任框架 ,这是一个让人很困惑的词,但是换一种说法就是, 数字身份 。
二、本体数字身份
本体其实是两条腿走路,也可以说是两个系统,只不过二者的关系紧密,看起来只是一个系统。一条是底层基础公链,在底层基础公链这里,当前并非完全自主,而一定程度上,依赖于NEO平台提供支持,比如智能合约。但是从本体开源的代码看,它的智能合约目前支持两种,一种是链上集成的底层智能合约,另外就是通过使用NeoVM虚拟机来执行的智能合约。WASM虚拟机则仍在开发中,WASM可以支持更多语言,为开发者提供更多选择空间。
另外一条就是这里要说的数字身份。 读懂数字身份,才是读懂本体的关键 。而数字身份到底有什么用?可以用一个关键词来回答,那就是 信任 。
很奇怪,本体为什么在白皮书中着力叙述了信任、分布式信任的重要性和实现手段?区块链本身就被称之为 信任机器 ,又何必再花费这么多的笔墨来展示本体的信任网络?
或许两种信任略有不同。
区块链通过公开账本完成并不可信的任意两个人,或者说节点之间的交易。传统商业模式里,必须通过其他方式来担保,同一个社群里,可以通过某个德高望重的人物来担保。在现代的电商领域里,是通过支付巨头在做中间人,为互不信任的双方做担保,完成二者之间的交易。区块链完成的去中心化,简单说就是让整个系统通过密码学的手段,或者说数学的方法,实现P2P的交易。
理解本体的信任网络,可能要从NEO开始说起。从NEO的官网上看,有一个等式:
数字资产 + 数字身份 + 智能合约 = 智能经济
NEO主打的三个方向,也可以称作三驾马车。为了实现智能经济,NEO需要解决的问题是大家一直在说的, 资产通证化 。现实世界流通的资产,从性质上看,分成三类:
固定资产
流动资产
数字资产
其中固定资产类别里,有房产,地产等类。流动资产包括股票,债券等具有更好的流动性的资产类别。而新兴的数字资产,是可以全球24小时x7天不间断的交易的资产类别。前两者都有相关的法律部门参与监管,流动性要小于数字资产。
现在,现实世界的资产有提升流动性的内在需求,也是实现智能经济的必由之路。但是,物理资产与虚拟资产之间存在着 鸿沟 ,这个鸿沟需要 借助数字身份 来完成。如果资产进入到数字世界,就必须给它们在数字世界一个身份。
本体的信任网络正是NEO智能经济版图中数字身份板块的重点项目。
但是,本体本身也是一个公链,甚至在公链方向,看本体的白皮书描述的愿景以及在开发的进程,野心似乎要超过NEO。
本体的信任锚
本体的信任锚是本体生态系统中提供认证服务的合作伙伴。在本体网络中,人,物,机构等参与者都有自己的身份证,这就是ONT ID,但是这个ID如何展示一个人/物的画像呢?
人有自己的社交关系,有自己的活动空间。学校,银行,朋友,家庭,政府等等机构和伙伴都是个人的数据认证源。物有自己的属性,有与人的关系,有法律上的所有权划定以及和其他物的关系。
三、如何为开发者赋能
公链是一种基础设施,公链之上的⽣态需要的是开发者来搭建。而普通用户的参与,更多是通过 DApps加⼊入到这个⽣态。对于开发者来说,有⼀个好的想法,紧接着会想他们的DApp要运行在哪条 公链之上。每个公链的设计都是在效率和公平之间做出的平衡,而选择了一个公链,就等同于放弃了其他公链的能够带来的优势。⽐如用以太坊和EOS两个公链平台举例,在以太坊上开发智能会⾮常轻松,不仅语⾔接⼝有 Solidity 这种 JavaScript 类的语言,平台还提供了丰富易⽤的接口完成我们需要的业务。⽽EOS平台开发语⾔限定了 C/C++ ,这对很多⼈来说是个很⾼的⻔槛,且部署耗时很⻓。从另⼀个⻆度说,使⽤EOS平台能够获得很好的事务处理效率,以太坊拥堵问 题为人诟病已久,在这⽅面,EOS确实要略胜一筹。⽽公链的发展仍在继续,根据以太坊平台的规划,分片技术和共识平稳过渡到POS类成功之后,以太坊甚⾄至能够实现每秒百万级别的事务处理理。所以公链本身各有所长,且要考虑到未来的扩展性等。
作为开发者,在⼀个公链上完成开发,迁移到另一个公链,需要付出时间成本,各家公链实现的技术栈不
同。选择哪家公链做开发也成了一种权衡,导致开发者要面临一种选择困境。如果本体在跨链交互这层能做出顶级项目的水准,个人认为是在想在本体体系下开发的技术人员的最大赋能。
而开发者无意也分成两个大类:
顶级的开发者
一般的开发者
顶级的开发者需要的是认同,靠价值观吸引;而一般的开发者可能更加需要的是系统的指导。
本体提出的愿景很大,按照当前的两个发展方向,基础公链+信任网络,完成本体这个项目本身需要吸引到更多高水平的开发者的加入。看了下当前的Github上本体的贡献者,以及关注的人数,和EOS公链,ETH公链,是不在一个量级的。对于本体的开发团队实力,我并不怀疑,但是为了实现白皮书的愿景,无疑还需要更多的社区开发者支持。
而考虑到上层生态,个人反倒觉得并不需要那么顶级水平的开发者,需要的是创意,场景实现,需要本体提供系统的开发指导。在本体的官网,通读了一下开发文档,在智能合约的开发和dAPI的使用方面,除了文字稿之外,还提供了视频教程,这对于吸引更多开发者加入,指导开发者完成在本体上的开发意义重大。
此外,为开发者对接除了开发之外的资源,扮演孵化器一样的角色,比如宣传资源,场地,经费等等。
为开发者赋能,开发者的成果反过来也是在为整个生态赋能。希望本体的后续发展如愿以偿,期待。
另外,本体的白皮书写得极好,当前已经公开的简介白皮书,技术白皮书,以及生态白皮书,写得丰富且清晰明了,本篇仓促,杂乱无章,读完本篇想进一步了解本体项目的朋友可以直接去官网看这三份白皮书。