曹锋是 PCHAIN 创始人,前 IBM 中国研究院互联网金融首席科学家,中国区块链研究联盟高级研究员。作为最早接触区块链的从业者之一,曹锋博士和他的团队获得中国第一个区块链国际专利,同时也是 ChinaLedger 中国分布式总账基础协议联盟共同发起人。PCHAIN 由曹锋博士于 2017 年正式启动,目前是世界上第一个支持以太坊虚拟机(EVM)的原生多链系统。其独创的 PDBFT 共识算法将通信成本从 N^2 降低至 N,且有效地解决了节点数量无法扩展,过于中心化的的问题。PCHAIN 全新的 Oracle 机制——Smart Data,则有效解决了智能合约内生知识不足的问题。同时,PCHAIN 可支持非原生 token (如 BCH,ERC20)的智能合约调用。

本文为火花访谈对 PCHAIN 创始人曹锋博士的采访记录。在本次访谈中,曹锋博士围绕公链底层的技术创新,向大家分享了他的学术观点和研究动向。

原文标题:《火花访谈|商业子链 — 跨越联盟链与公链的鸿沟》

PCHAIN 曹锋:商业子链将跨越联盟链与公链间的鸿沟

问:可以简单介绍一下您的从业经历吗?

曹锋:我在 IBM 工作了十年,刚开始是做一些和人工智能、大数据相关的工作,接着进入互联网金融领域。当时我是 IBM 中国研究院互联网金融的首席科学家,所以就很自然就延伸到区块链。不过在区块链最开始的时候,大家只是认为它是互联网金融的一个小的分支,没想到有今天的发展。

从 2015 年起,IBM 陆续开展了一些区块链的研究。当时 IBM 和三星有一个合作,这促使 IBM 内部开始了一个秘密的项目,叫 Open
chain,而我非常有幸成为整个亚太地区第一个拿到 Open chain 源代码的人。在 6 月份的时候,突然接到总部通知,说区块链是一个非常重要的方向,我们不能再采用原来这种小规模研讨的方式,需要投入更多的人和精力,抓紧时间在这方面做出一些成果。

于是我们就积极抽调人手,开始加大研究。之后我和我们团队在 2015 年 10 月份获得美国知识产权局的通知,成为中国第一个区块链国际专利的发明团队。从申请专利之后,IBM 就一直对区块链进行越来越多的研究。同年 12 月份,IBM 内部把全球的十大研究院的 CTO 等顶级计算工程与研究专家邀请到上海进行了两天的闭门会议,讨论的结果就是把 Hyperleger 变成 IBM 的全球战略,现在 IBM 大部分的区块链项目都是基于 Hyperleger。

2015 年后,我决定出来创业。因为之前 IBM 做过人工智能,并且是 IBM 人机大战的中国区的负责人,刚好那时候人工智能很火,而区块链还很少人知道,所以就比较犹豫该选择哪个方向。但当时我因为直觉,认为区块链未来会变得非常重要,有改变世界的可能性,所以最终还是决定了以区块链作为创业方向。

围绕着区块链金融服务业的模式,我们做了一系列探索:2016 年 5 月,我们在贵阳举办了第一个有官方背景的区块链会议,并且发布了中国第一个区块链金融产品;2016 年 9 月,我们发布了中国的第一个票据交易,同时也是世界上第一次在区块链上的资产收益权转让;2017 年,我们跟一些银行进行关于票据应用的创新尝试。在这个过程中我们也逐渐意识到,区块链需要更好的底层,因为它需要承载越来越多的计算和越来越强大的技术功能。

一开始我们想要做公链,基于两个方面的考虑。一方面是在做 MPS 的过程中,我们发现正在做的技术更多是在应用层或者中间层的创新,很难深入到底层。如果想要真正的深入底层,唯一的办法就是去做一条真正属于自己的公链,或者说自己发起一条公链,只有这样才能真正促进底层的一些技术创新。另外一方面,由于之前我们偏应用层和中间层的这些经历,也促使我们对底层性能方面有一些自己的思考和见解。

问:您当初为什么想要成立 PCHAIN?

曹锋:因为我们看到随着整个区块链的发展,以及一些事件的发酵,它已经不再是一个小众的东西了。尽管大家现在对区块链真正理解还有很长的一段距离,但事实上这个环境已经好了很多。因此我们预测,在未来它会出现更大范围内的应用需求,所以这就是我去创立 PCHAIN 的动机。

一方面,我们想去做更加底层的、深入的技术;另一方面,我们始终怀着这样的一个愿景——使大规模区块链的应用成为可能。我们坚信未来整个人类社会都会被区块链所改造,这是一个具有里程碑性质的新生事物。但是从现有的底层技术来看,还和这个愿景差的非常远,所以这也是我们要发起 PCHAIN 的一个重要原因。

PCHAIN 这个域名其实我很早就注册了,当时手上有很多域名,PCHAIN 算是精挑细选出来的。P 其实表达了非常多的含义,它可以是 public (公有链),可以是 poly (多链),可以是 partition (分片),也可以是 Pi (圆周率)……其实 Pi 是一个非常有意思的东西,它也是带有原生的意义在里面,而且它的形状又和多链的架构特别像,代表了底层的 π。

问:那您觉得现在做这个项目的难点是什么?

曹锋:从去年到现在我们在技术上做了非常多的突破,比如实测实现了全球范围内最大的 256 条子链的计算,这个是大部分做多链的团队做不到的。它有两个门槛,一是技术门槛。如果想做到几条链、十几条链并行计算或者并行出块,是相对容易的;但是如果上升到几十条到上百条,然后从上百条到两百条,每一次都是技术上的大飞跃。

另外从实测的角度来说,还会有一个资源上的挑战。当时为了做这样一个测试网络,我们在全球范围内租用了一千多台机器,这些机器每个月的开销是 100 万人民币,所以这也是另外的一个门槛。如果你仅仅只想要做这样一个实验,你的预算可能就要以 100 万为单位去做这样一个尝试。正是由于这两方面原因,我们现在可能是唯一一个能通过实测证明这件事情的团队。

从技术的突破来看,共识也是我们一直想要去解决的问题。共识机制从一开始的 POW,接着到 POS,然后大家发现说 POS 可能也还不够好,那传统的经典方法就是 PBFT 了。它虽然在联盟链上用是挺好的,但是有一个重要的问题,就是结点数一旦超过十几二十个,通信复杂度是跟它节点的平方数成正比的,这就限制了它的节点数不能很多。

所以在这方面,我们做了一些理论上和实践上的探索和突破——发明一个新的算法 PDBFT。这个创新也是基于前人的一些经验,并且融合了我们对 PBFT 的认识,才探索出来的。结合传统的 Tendermint 算法、BLS、VRF 等,以及我们自己对 BFT 一些特殊算法的设计,最后通过实测证明了它在全球范围内是可以达到共识的,并且它理论的节点可以达到上百个甚至 200 个,我觉得能做到这个水平已经非常好了。

另外一个方向就是 Smart DATA。这个名词最早是由 W3C 提出来,作为知识图谱里面的一个 direction。因为我原来做过人工智能,也是 W3C 的标准组委员会成员之一,所以这个 Smart DATA 也是顺手拿过来。自从 V 神提出来这个 Smart contract 后,技术层面很少有人再进一步的进行突破,所以我们觉得 Smart DATA 应该是下一个很重要的方向。而且,Smart DATA 代表了大数据跟区块链的一个结合,很好的解决了现在 Smart contract 内生数据不足的问题。

如果我们相对于 bitcoin1.0 来看,所有的数据全是内部产生的,根本不需要任何外部数据,它是一个内生的纯封闭系统。接着 V 神提出 Ethereum,并且引入智能合约,这时候一些数据就需要从外部来引入,所以它已经相当于半开了一个门。但是我们认为未来区块链要真正发展,必须要和 IOT、大数据和人工智能做一个深度的融合,这是我们看到的未来一个趋势。所以未来会有越来越多的外部数据,进入到区块链系统里面。

目前解决这些问题基本都是通过智能合约来进行的,但很显然,设计智能合约的初衷并不是为了这个目的,所以它是有点被迫的成为这样一种过渡性的手段。既然这样,那为什么不能提出一个新的机制,来做这样一件事情?其实我们去年提出来这个方案之后,也陆续得到二三十个合作伙伴的支持,所以这也可能成为 2019 年非常重要的一个方向。

问:那您觉得 data 本身的 verification 是怎么样去确定呢?

曹锋:我觉得从某种角度来说,它是通过数据源本身的行为来保证的。因为 blockchain 能够解决的只是你的数据和信息上链之后,不可篡改的问题。但如果信息从源头一开始就是假的或是虚的,这就不是 blockchain 能解决的问题了。我们更可能是通过 IOT 或者一些规则来尽可能的保证它的真实性和有效性。

问:所以您以后的研发方向是朝 Smart DATA 这边发展吗?

曹锋:对,我们今年很大程度上会朝 Smart DATA 这个方向发展。但同时我们也提了一个新的战略,也正好是跟我们这个架构相关。因为我们是国内比较早提出多链架构的团队,所以我们是世界上第一个支持 EVM 的原生多链系统,并且现在已经得到越来越多团队的认可。包括最近京东推出来的 JD Chain,也需要用多链。

但其实围绕多链架构本身,还存在很多问题。尽管我们已经实现了 256 条子链之间的并行块,但是内部指令之间怎么进行协同,怎么更好的进行交互,怎么让多条链表现出来是一条链的状态,这里面还是有很多有待去研究和开发的。

回到刚刚讲的 Smart DATA,我们希望数据能够以一种很直接的方式注入到 blockchain 里面,而不是采用原来这种被迫的 Smart contract 的方式。但另一方面,一旦有新的数据能够注入,它势必会带来其它各种各样的问题,比如像现在高 TPS 所造成的问题。现在链的 TPS 都越来越高,号称百万、千万和上亿的都有,暂且不论它的真实性,但有一个趋势是很明显的,即越来越多的数据都放在 blockchain 上。

但是你又会发现 blockchain 是一个天然冗余的结构,这么大的数据冗余其实也是没有必要的,而且会让各个节点会变得越来越重,所以我们接下来会主要去推出 data reduction,即把一些不重要的数据去掉。

其实 Ethereum 已经开始做了一些初步的东西,但是我们看到它的数据压缩率相对来说还是比较低,大概只有百分之几的一个数据压缩率。其实我们现在内部也已经初步有一些突破,大概能够压缩到一半,当然这个也是可以继续往前去突破的方向。

总体来说,围绕 Smart DATA 的学习,我们还会有一些细分的方向。我们还拓展了一个新方向——Commercial child chain,就是商业子链。一开始我们只是做子链,但是做着做着就发现,商业子链其实有非常大的一个现实需求。现在尤其在中国有很多对联盟链的需求,但这些联盟链未来其实都希望能够跟公链进行结合,这其实是必然的一个趋势,恰好我们的子链能很好地去适应这样一个情景。

一开始,我们可以满足你作为联盟链的需求,如果有一天,你想要把它跟公链进行连接的时候,那我们的架构可以保证你几乎零成本的重新连回公链上面。所以这个是我们今年认为非常具有落地性的一个方向。

问:您曾经在一篇关于 Pchain 的文章里面提到,可以通过 reward penalty function 防止同样一个 derivative chain 共谋,那么这种设计里面的 input 是什么?

曹锋:这个是我们原生子链很重要,也是非常有意思的地方。因为我们的原生子链跟母链共用同一个通信体系,也就是 token 可以在子链和母链之间相互的转移。所以对任何一个子链来说,它都会有一个身份叫这个链的 creater 或 owner,当人们创建子链的时候,他其实是需要抵押一部分我们内生的 token 在这个子链上面。

同时,它会邀请外部的一些节点来参与,我们通俗叫挖矿,实际上也是参与共识。在创业的时候,owner 的这部分 token 需要预先抵押在这里面,同时这些节点之间也是相互通过它去挖对应的抵押 token。通过我们内部的决策机制,一方面尽可能的保证不要总是固定的一群人 consensus,如果时间长了就比较容易出现扩大平均;另外一方面是通过 token 的激励机制,引入更多的人来参与子链的构建。

它采用了这种变相的方式,能够做到第一我对你有约束;第二你不能做恶;第三解决这个链的 creater 或者 owner 的退出问题。因为理论上他们是可以退出的,当你发现这个应用后来没有人用了,干嘛要苦苦支撑呢?所以我们是通过一个规则的方式来完成的,即你作为 owner 可以退出,但是退出的唯一的办法就是所有的公司节点全部退出之后,然后再经过一段时间你就可以退出了。

而且它是可以调整的。比如说我是一个 owner,我现在觉得参与的人不够多,挖矿积极性不高,那我可以持续的往里面注入新的 token,这样的话就能吸引更多的人过来,这更多是通过一种经济手段来解决这个问题。

问:您在文章里面提到,当有很多 chain 的时候,如果我们只有有限的节点,可以用 heuristic rules 去解决这个问题。请问 heuristic rules 具体是什么东西?

曹锋:其实刚才提到的就已经是 heuristic rules 了,它相当于说我怎么样有很多的 chain 可以去 create。因为到了后面你会发现,除了技术以外,更多的是一些基于经济学的考虑和设计。比如相对于以太坊而言,你原来只有一种选择,只能在这条链上部署智能合约,但是现在你可以把智能合约部署在它的任何一条子链上。另外一方面你也可以去创建一条新子链,这需要买很多的 token,然后吸引大家,当然这里面所付出的成本是不一样的。

我们当时做这个事情的时候,是把子链看作一个有生命周期的东西。它可以出生在官方子链上,也可以出生在自己的一个子链上。它还会有自己的发展,随着应用越来越多,可以吸引更多的矿工进来挖矿,吸引更多的人参与智能合约的开发。它有可能发展得非常好,并且一直这样发展下去。

同时,它也可能衰退。当你过了一段时间发现,矿工的积极性也不高,参与的用户也不多,那可能就慢慢的越来越衰退,这就是所谓的老。最后死就是当所有的矿工都不愿意在你这上面挖矿了,认为你这个没有前途,这个时候就要考虑退出了。

实际上我觉得这才是更加合理的一个设计。现在以太坊其实存在大量的垃圾或者僵尸的 Smart contract,在上面被动地占用了很多资源,因为它没有这样的一个生命周期。

PCHAIN 的多链子链架构可以解决联盟链相互信任的问题。我们相信联盟链最终会向公链过渡,而 PCHAIN 可以通过商业子链的形式,实现无缝过渡。

问:那子链消失的话,这些资产是不是就消失了?

曹锋:对的。当所有的矿工都不再挖矿的时候,这些资产就已经没有了,可能会有点匪夷所思,但事实上就是如此。如果拿现实的区块链项目来看也是一样,当链本身还存在的时候,哪怕你的团队全都消失了,这个链依然存在这个世界上。那链怎么才算真正的消失?就是世界上没有任何一个服务器,任何一个节点运行你链上面的算法的时候,这条链就从世界上消失了。

问:那最后在结算的时候它具体怎么执行呢?把原来的资产都变成 PI (原 PAI)吗?

曹锋:这就要看子链 owner 具体是怎么设计的。你可以通过智能合约转化成原生的 PI,大家达成一致之后再进行退出;也可以选择永远都不退出,这是一个项目策略上的选择。

刚开始的时候,子链完成的是一个从 PI 到 PRC20 之间的转换,但是当消亡的时候,怎么把 PRC20 上面的资产再转换成我原生的 PI 后再退出,这其实是一个商业选择。

问:如果采取 DPOS 的模式,有没有可能因为某一个局部的链 security 增强,从而导致整体的 security 下降?

曹锋:任何一个子链的 verification,从角色的层面来看大概可以分为三个:第一个是你用来参与投票的,这个叫 verification
node;第二个角色叫 full node,即全结点;第三个角色叫 light node,即轻节点。你会发现在主链上有大量的全节点,或者 verification node。如果你是一个子链上的 verification node 或者是 super node,你可以不是主链上的 verification node,但必须是主链上的 full node。

只有这样,你才能够保证子链和主链之间的连通性和交互性,如果你连主链的 full node 都不是,是没法去做这件事情的。所以你会发现,即使子链上的节点越来越多,它并不会影响主链上的安全性。

实际上我们 PBFT 的算法跟 DPOS 还是有很大差别的,因为我们主要的 consensus 是 BFT 类而不是 POS。但是另一方面,因为 super node 的个数非常有限,而那些大量持有 PCHAIN token 的人,他们也想参与这样一个过程,共同来维持整个系统的稳定性。所以,我们引入 delegation,让你可以把你的票和 token 委托给另外一个 super node。

同时,在我们设计里面还有一个特别有意思的 safe delegation,即安全委托。安全委托是指在进行委托的过程中,我并不需要把我的 token 打给你,而可以通过一个安全账户,把我想要抵押 token 的账号地址填在里面,然后把我的 token 锁在这个账户里面。一方面我的 token 不会离开我的控制,但另外一方面它也被锁在相应的账户里面了。

问:那 execution group 是属于 delegation 的一种吗?

曹锋:我们目前并没有把 execution group 分离出来,但这也是我们下一步需要去扩展的方向。按照最开始的设想,我们希望可以把执行的节点和共识分开,但是目前来看它们还是合二为一的。我们发现即使把通讯代价从 n 的平方降到 n,在实测的主网上线之后,它依然会受到网络带宽实际情况的一些影响,因为在公网环境下它的状况其实是非常不稳定的。

所以再回到这个问题,execution group 这个 design 我们还是依然保留在这里,因为这个一定是随着未来 5G,或者说更好的网络工具出现的时候,才可能会变成现实,它其实更多的是一种任务分工。

问:您觉得对您影响最大的一本书是什么?

曹锋:彼得·德鲁克《卓有成效的管理者》。这本书第一次让我从一个全新的视角看待知识经济浪潮中如何有效地让团队成员分工协作,帮助我逐渐形成了带领团队基本理念和准则,并且受益至今。

对组织负有责任,能影响组织经营成果的人,就是管理者。管理者,就必须卓有成效。在区块链社区化结构中,社区的每个核心成员都应该成为卓有成效的管理者。

来源链接:mp.weixin.qq.com