全球第一个实现混合共识的区块链公链-初链TrueChain技术团队专访

中国网/2018-04-04/ 分类:专访/阅读:
初链主创之一,也是带领初链全球技术团队的CTO Eric Zhang日前携同核心技术团队中的几位成员,在刚落成的初链旧金山办公室,与大家说明初链近期的技术进程。 ...

前言:

初链(TrueChain)是全球最早的混合共识公链,设计和实现初链混合共识协议,将PBFT和POW共识结合在一起。初链解决了区块链领域最重要的问题之一: 去中心化和性能的矛盾。

“用户体验至上”的初链产品体系让用户和企业能够快速便捷发布和管理智能合约的全生命周期,包括Steller – 初链合约全生命周期管理平台,Dapp Warehouse – 初链去中心化应用仓库,TrueScan Explorer和初链钱包等。

初链主创之一,也是带领初链全球技术团队的CTO Eric Zhang日前携同核心技术团队中的几位成员,在刚落成的初链旧金山办公室,与大家说明初链近期的技术进程。

Eric: 初链主要创始人之一,CTO,工信部中国软件行业协会区块链人才标准专委会专家,毕业于牛津大学计算机系

Ren X 和 Jesper: 初链技术和共识研究负责人

Felix: 初链Steller产品前端负责人

初链为什么选择混合共识?

Jesper: 在主流共识设计领域中,PoW共识可以实现大规模的去中心化,节点数目有公认的可扩展性(Scalability),但在性能上有明显的瓶颈。

而以PBFT为代表的拜占庭容错协议虽然在一定条件下可以有较高的性能,但是它们通常被设计于私有场合使用,即所有节点需要在协议开始前知道相互的身份(公钥等),并且节点不能自由出入网络。

这些特性使得BFT协议自身难以适用于区块链的场景。

众多的去中心化应用对性能是有要求的,这就要求有新的区块链基础设施,同时满足两个条件,首先要比原有的基于PoW的公链有明显的性能提升,同时保证去中心化和低参与或部署成本。

混合共识(Hybrid Consensus)是目前看来同时满足性能要求和公链要求的几个最具有前景的设计方案之一。自提出至今,它在学术界已经有了比较扎实的理论基础,同时有比较强的可实施性。

此外,在这个领域仍有一些在研究上尚未解决的或者是工程上将会遇到的问题,例如在混合共识内部的边角情况处理(corner case processing)改善潜在的leader处理能力瓶颈、混合共识场景下的节点(node-stimulating)策略、可信的外部数据获取等等。我们将在主网上线前逐步公布我们对这些问题的解决方案或者优化方案。

混合共识的优势在哪里?

Jesper: 混合共识一定意义上来说满足了节点数目的可扩展性,可以在BFT参与者中敌手数目低于阈值且网络环境稳定的时候保持高性能的交易处理能力。混合共识的安全假设清晰明确。相比较一些基于无环有向图的设计,混合共识对于分布式应用的支持比较友好。

尽管如此,混合共识也不是完美的,我们仍需要在现有的理论基础上做出许多的努力。

初链的混合共识在设计上考虑哪些元素?

Jesper: 对于混合共识的BFT部分我们采用久经考验并被严格证明安全的PBFT协议,虽然PBFT对于网络延迟有一定的假设,但是我们认为这些假设在极端网络环境(例如洋葱路由网络)以外的条件下是合理的。此外,PBFT满足在混合共识中的BFT部分需要满足的一些额外特性要求。

我们将重用主流的PoW代码并加以必要的修改,以希望在安全假设得到保证的前提下以最小的工作量尽快实现上线。

节点如何加入初链的网络?

Jesper: 新节点进入网络将会是协议设计的一部分。对于用户而言,只需要下载初链的全功能版本的客户端并简单设置运行即可。由于一些客观设计原因,预计会对节点的运算能力和网络带宽有一定的需求。

Ren,你能介绍一下初链的测试网及其功能吗?

Ren X: 初链测试网是一个基于超级账本 Fabric(Hyperledger Fabric)的实例,运行在我们的公有云中,旨在测试和登录最初的分散式应用程序生态系统。我们将测试主要针对混合共识的变化。除了测试网之外,我们还提供了一个丰富的仪表板,提供了Fabric必须提供的所有用例,还提供了一个去中心化应用(Dapps)的仓库,它将主管各种Dapps供用户开始使用。

我们还支持网络界面设计(Web UI)的组件,支持浏览器内链码编译(而不是简单的字节码提交),或者帮助用户在各自的环境中编写链码。这将是一个目前Composer Playground功能的修改版,但根据初链的用户需要定制。我们最终将用我们自己的PBFT实现来替换基于kafka的初始化模型,将其彻底替换为一个新的混合共识。

我们能从主网中得到什么呢? 能够跟我们分享更多关于今年夏天将要启动的主网吗?

Ren X: 今年夏天推出的主网将有一个可以在去中心应用里(Dapps)使用的主币来充当我们的TRUE代币,用于奖励我们混合共识中的矿工,并且建立和原有TRUE token的映射。我们将会用一种智能合约机制来为用户交换他们自己的代币(交换资产的货币)和钱包(在Fabric之上),该机制将根据用户是选择成为矿工或仅仅是最终用户来与任一货币进行交互。

我们将允许最终用户使用跨平台编译的程序包来启动初链的客户端,该程序包将使初链客户端拥有自己的仪表板,用于任何一部分的链码(智能合约)。他们可以选择从仪表板启动一个新的链码,以及自己的TRUE代币(如果他们想的话)。

我们最初还会为那些没有挖掘资源的用户提供我们自己的公共云实例。我们将允许他们以一定的费用使用它,并在他们有自己的资源时帮助他们成功迁移。

可否谈一下初链的规模扩展工程?

Ren X: 我们目前可以预见由建立在初链的混合共识之上的TPS规模带来的的流量负载,所以我们将使用测试网进行模拟并做出适当的改变。我们重新使用了fabric中基于golang的组件,但是我们将把我们自己的版本推广到Github组织里。 与原有功能不同的是, 我们将fabric改造成为一个无权限的框架来处理自动扩展的问题。

我们再次进行规模扩展测试,以确定其容量规划、网络稳定性、适用于区块链的不同系统的IOPS,适用于区块链的系统设计原则, 和在公共云中的SSDs等功能的读/写同步时间。我们希望通过CI/CD策略的高强度迭代来基本实现基于网络通信复杂性的线性可扩展性,并最终改进我们与R/D应用(demo)驱动开发的一致性设计。 初链自始至终都是为高性能应用程序服务的,所以这是我们将在整个开发和设计阶段重点关注的领域。

就性能而言,我们能够期待什么?

Ren X: 我们正在试验我们的共识机制,并将很快发布一份关于性能的黄皮书。然而,基于良好的共识设计基础,我们非常有信心能实现成千上万的TPS。同时我们将继续研究一致性设计和评估组件,比如在Fabric中使用的默认Gossip协议。

在积极解决诸如激励设计、智能合约中的数据交互模型,和链之间的数据迁移等一系列难题的同时,我们当然也对数据分片的想法很着迷。我们将执行针对Dapp的特定领域的性能测试,以优化初链平台的每个组件,并将发布基准数据,比如在新的对等点上同步整个网络所需的时间。

初链是建立在Fabric的基础结构上的,而我们都知道Fabric一直被用于私有链,那么初链将对它进行哪些主要的更改以适应公链的要求?

Ren X: 我们将使Fabric“无权限化”,意味着我们会颠覆诸如“会员服务提供商”这样的基本概念。此外,还有一个主要的代币和一个钱包。我们还改变了当前启动链码的方式(在单独的容器中),因为原有方式仅适用于私有链,并且会导致共享链码的问题。 “一个链码对应一个容器”的策略对于在公共链上部署的数千个智能合约将不起作用,因为这意味着在所有节点中启动同样多的容器。

我们还将在fabric之上增加一个安全层,以验证zkSNARKS以及一个分析监视模块,以帮助人们利用这种分布式经济的数据模型来吸收实时统计数据。

除此之外,我们还公开提供了命令行API以及网络用户界面(仪表板)、移动应用程序和链码仓库。具体来说,我们是这样重新使用HLF中的用户界面和基础设施组件的方法。

HyperLeagram Cello被认为是Fabric的编配规定平台,它能处理docker Swarm、docker host和kubernetes(k8)。它包括一个用户授权模型以及一个基于节点的软件开发工具包,该工具包使用GRPC调用和TLS证书与下层结构进行交互。这样就提供了一种通过前端实现REST API与链码交互的方法。它有启动多个链的方法,并提供选择许多可插入协议产品中的一个(solo,pbft,noops)。这是由杨宝华和其他几位IBM研究人员提出的。虽然这不是可以直接使用的(因为我们将公开并提供我们自己的共识),但我们将从中提取基础设施组件。

超级账本Composer被认为能强化智能合约的业务逻辑,或者在Fabric术语中被称为“链码”的代码。

Hyperledge blockchain-explorer仅用于区块链的KPI,主要用作交易追踪器。我们并不需要把精力放在对它的强化上,而是应该直接从Stellar产品中获取用户界面的相关功能。 在这方面的加强将能为初链添加更多分析功能, 并将其纳入到CouchDB中。

也就是说,我们还将需要和广大区块链社区 (特别是超级账本社区)来一起讨论、贡献和验证我们的方法。这本质上将是一个开源协作的实战练习,而这正是我们希望通过公有链实现的。我们愿意为属于我们fabric的一支多做贡献,并希望最终能为Kubernetes、 Fabric和整个过程中所涉及的一系列组件做一些贡献。

说过了工程,基础设施,初链最终是面向用户,企业和开发者的,在产品端是怎样计划的?

Eric: 我们在初链的产品设计中一直都强调以用户为核心的原则. 在公链的世界里,我们认为技术和用户体验同样重要。我们规划了初链的产品矩阵,主要包括这几个部分:

Fabricated TrueChain - 初链测试网络

Steller - 初链企业和用户合约管理平台

TrueScan - 优化版的初链区块链浏览器

TRUE Consensus - 初链混合共识

TRUE Wallet - 初链轻钱包

TRUE Node - 初链全节点封装

我们一定要为区块链的应用发布者,企业提供最好用的基础设施,这件事在初链和共识同等重要的。

初链的前端产品采用了哪些技术? 在前端产品的用户体验上是怎样考虑和设计的?

Felix: 在前端开发中主要考虑的是让用户能够更加直观、简单的进行操作。因此在设计上没有使用过多的色彩和图案,保持页面的清爽,让用户可以直观的看到更关键的信息。在技术方面主要使用了Vue.js渐进式框架,构建了前端路由和优秀的数据渲染组件:一方面呈现给用户更为清晰的菜单目录结构,另一方面为后续的功能拓展提供了有力的框架支持。

初链的团队怎样组织?

Eric: 整个技术团队现在是“特种部队”状态,因为混合共识这个领域在设计和工程实现上都还处于理论相对完善,但工程上有很多细节,最好的工程师和分布式/密码学研究者分布在世界各地,初链的几个技术创始人分别在美国和印度,而我们的产品团队在中国。后面随着开发的深入,我们会逐渐让团队集中起来。

另外一个很重要的部分,也是接下来的工作,是初链会建立开发社区,我们会用接下来半年的时间让开发社区增长到比较大的规模,并且把很多重要的任务交给社区,逐渐把核心的开发向社区转移,目标是让初链的技术逐渐“去中心化”。

那么通过开发者社区进行开源项目的开发有什么好的方法吗?

Eric: 首先我们会通过自己组织和参与众多的Hackathon来向社区宣传并分发问题,这些问题都是很具体的问题,用一周末的时间解决一个问题,同时也会了解我们的codebase,我们不仅会线下参与hackathon,还会通过多个社区和极客的通道进行线上,跨地域地分发。

另一个问题是社区管理,我们维护一个小规模的团队进行技术社区管理,逐渐让社区自动转起来,这里有很多技巧,可以后面专门为大家介绍。

初链的技术在今年有什么样的规划?

Eric: 我们的测试网已经内部部署,共识在3月30号已经开源并且完成测试,后面我们会向外部发布一版稳定的测试网,并且让很多Dapp开始上链。我们其实已经有很多合作伙伴,就等着我们上链。比预期稍晚了一点,原因是测试和一些细节多用了一些时间。

今年夏天我们会发布混合共识,并上线主网,同步发布我们的全节点,到时我们欢迎大家加入初链的节点网络,并且用我们的基础设施发布合约。

TAG:
阅读:
Copyright © 2018 火火财经 版权所有
二维码
意见反馈 二维码