联盟链已占据了区块链江湖的半壁江山。但我们似乎对联盟链的崛起并未感知。
自2015年Linux发起了Hyperlegder项目,联盟链也是经历了技术和解决方案上的快速进化。在2020年,联盟链在中国拥有了更前沿的发展方式,这来源于联盟链在传统IT领域的创新和融合。
链,是将多个节点的资源聚集而成的一条网络。在公链和联盟链技术趋同的今天,公链和联盟链可以转化为非许可链和许可链的两大标签。
联盟链依靠建立联盟的主体的信任,为链提供去中心化的能力,而链又是资源的聚集,开发的平台,也就代表着,如今的联盟链可能已经涉及了IaaS、BaaS、Paas等多领域能力。
联盟链已经进化了,在Hyperledger和企业版以太坊的范畴里,都是由联盟发起者建一条链,然后为加入联盟的企业提供服务,而今天的联盟链,是想互联网产品一样,整合了IT的上游资源,中游技术,下游产品,想要囊括大部分的用户。
例如目光所及的BSN,通过在IT资源的合作部署,对主流框架的适应,主要向需要上链开发的企业提供全面的资源和开发工具。而蚂蚁链,则是借助阿里云的既有资源、平台、工具,全面支持链的部署,代表着链将是其云服务体系中的重要部分。
我们知道联盟链一定是toB的,一旦具有开发需求,一定是基于企业的,企业开发产品,会考究产品开发方式、成本、未来模式等,这些细节会让toB的需求自动做一个区分。
作为联盟链,如果想全面占领市场,必然也要如此思考联盟链的产品体系。今天,以百度超级链和开放网络这一产品设计,可以看到一个联盟链产品的起源、成长和蜕变。
百度对联盟链的认知
目前国内的区块链应用落地形式以联盟链为主,其余应用落地,则只是通过搭建链上应用辅助政务工作进行,只能归类于技术服务订单。
百度区块链团队认为,虽然联盟链可以实现多方参与共享数据互信,但从产品上看,多数情况下链上数据对外部并不可见。这将意味着,虽然我们看到了联盟链多点开花,但并不能很好的实现我们做区块链产品的目的。
互联网生态里存在的数据孤岛、网络生态割裂问题还会出现,而从区块链能力上看,联盟网络有限、联盟链构建门槛较高等问题会让区块链一直处于不亲民,不能大规模应用的阶段。
这是大部分联盟链产品团队一致的认知,这是一些区块链行业本身具有的问题。需要用产品来解决这一问题。
所以联盟链的产品设计趋势就是轻松上链,在保证性能可行的前提下,链的成本也尽可能的低。
百度超级链也主打灵活便捷、弹性付费成本低等特点,据官方数据,XuperChain单链可以达到8.7万TPS。
但使用超级链其费用仍旧很高,笔者在百度超级链后台选择一个处理器12核、内存24G,磁盘40G、CDS云盘4000G、带宽20M的服务资源,然后搭建一个超级链节点,仍需要一年50w以上的成本,在超级链里,如果选择更高的公信节点提供接入服务,不同公信节点的价格也不同。
百度超级链的公信节点配置收费
以此来看,如果通过一个联盟链实现一个节点,从逻辑上看,需要可信主体,需要服务器资源、需要开发服务框架,当全部选择这些服务,一年的成本可能会超过100w。
因此,这样来看,对于链本身的开发,成本已经足够低,大部分政务订单高达千万级,超级链里开发链的成本降低到了百万以内,但仍旧不是很多想利用区块链技术的小企业的首选。
这其中有一个思路,就是对资源、对业务要求、对链上实现的更轻的理解。上文我们是选择搭建一个节点,该节点是联盟链中的全节点,参与联盟链的记账,使用超级链提供的开发框架以及百度云的云服务器资源。
这是深度参与的节点,而作为很多更低需求的企业或开发者,做一条链都是“重”的思路,因为其需求在于上链,链本身的可信足以保护我即可。
所以这个思路才会是普惠的思路。依照这个思路,联盟链主体,需要启动一条链,这条链拥有足够的性能,拥有联盟链主体的可信能力,拥有开发框架和例如账户体系等。
笔者的这个思路,就可以解释百度在超级链的产品体系里搭建了开放网络产品的需求。
一个尝试
从官方获悉的资料阐述,开放网络基于百度XuperChain技术搭建,用户花2元即可享有一站式合约开发管理、合约模板、功能组件及多语言SDK等服务。成本方面,开放网络采用弹性付费,根据用户情况按需按量灵活计费。
开放网络的合约调用收费
我们进入后台查看了开放网络的产品。
首先开放网络基于超级链搭建,那依靠超级链的资源节点如下图,其中7个节点在北京,其余分散在上海、广州等不同城市,节点通讯方面,开放网络基于P2P网络同步数据,通过XPoS共识算法保证网络中交易数据的一致性,开发者可以自由选择通过哪个节点接入网络。
开放网络的节点部署:目前已搭建17个,总目标25个
而从架构上看,与Xuper超级链的架构相仿,其思路可以理解为基于超级链搭建的一个PaaS。
开放网络的设计架构
作为偏向应用的链,最重要的是查看应用所需的开发,因为链的问题不需要考虑,主要考虑的是应用开发,所以智能合约和客户端是主要的关注对象。
开放网络中可以使用的模版合约
通过查询,可以看到在开放网络提供的合约市场里包含了以上10种拥有模版的智能合约,而在这些相应的合约编辑工具里,还包含编辑空白合约的选项。开放网络产品负责人向区块链网络表示,目前区块链应用主要落地场景以存证、溯源、去中心化游戏、数字积分等为主,对这些应用场景提供了十多个智能合约模板供开发者快速实现DApp。
开放网络网络情况
据开放网络的浏览器监测数据,目前运行合约数为1366个,历史并发峰值为每秒356笔,通过确认,356笔为上链事务的并行量。
当合约运行,例如文件存证合约,会将文件哈希上链,保存到区块中。链上数据主要提供两种方式的索引,一种是通过键值对的方式,写入数据时使用特定前缀作为Key,方便遍历查询,另一种是表结构,可以对表中的某些列建立索引,方便查询。
联盟链与公链的原理相同,但在块中的数据类别里,联盟链更自由。
开放网络的智能合约编辑页面
当开发者编辑完合约代码后,可以直接编译后上链,上链后再通过SDK文件搭建调用链上数据的客户端即可。
github上的超级链SDK
通过与百度开放网络团队沟通,在客户端与多语言的思路上,其团队是这样理解的:
关于智能合约开发语言。
智能合约开发语言一般需要提供包括资源使用计量、指令级安全控制、链上数据与权限打通等很多有挑战性的改造和适配工作。超级链的XuperBridge技术为智能合约多语言扩展提供了架构支持,可以适配多种智能合约虚拟机,支持C++、Go、Java等合约语言,也即将支持solidity。但出于性能和安全方面的考虑,开放网络中目前暂时只开放了C++语言,后续会陆续开放Go、Solidity等合约开发语言的支持。
关于SDK、客户端等业务集成开发的编程语言。
在不涉及到编程语言与合约虚拟机的适配的问题下,开发者的开发难度会小很多。超级链目前也提供了包括Go、Java、Python、C#、Javascript、Object-C等多种语言的SDK,其中有些SDK是完全来自社区开发者的开源贡献,超级链SDK语言基本覆盖了大部分的用户需求,也会继续借助社区的力量持续完善SDK语言。
最后,对于开发者来说,使用区块链,还设计一个问题,监管。
在联盟链这样的许可链中,监管的实现较为轻松,可以直接通过链上监管合约实现对上链数据的事前审核和事后监管,意味着对上链数据会有审查,监管机构也会作为监管节点参与网络治理。但对开发者来说,监管技术是透明的,在合约开发和后续调用过程中不需要进行额外的操作。这对开发者来说,是无需更多担忧的。
但对于趋于区块链的无需许可和开放性的部分开发者来说,联盟链无法满足其需求。
向更高用户规模做功
百度做开放网络的一个理念是:再先进的技术,如果不能落地应用增值生效,切实解决实体经济问题,都是空中楼阁。这其实是对区块链整体技术现状的一个描述,公链偏向了加密货币应用,而在具体的非金融层落地较难,而联盟链必要的落地,就是要降低成本,毕竟一个一年花费几十万硬性成本的网络资源,不是所有企业都有意支付。
此前,百度超级链的落地,大多切入资源集中、资金较为充足的需求者。做开放网络,是一种向更广泛使用者倾斜的尝试,或者可以定义为向B端需求者中的普通需求者倾斜。然后再通过应用扩展C端用户。
例浙江正元智慧科技股份有限公司基于百度超级链开放网络推出首个智慧校园DApp易校园。将校园二维码交易记录存证,可信数据方便学生、教师、商家查询和对账。
可信的存证更直观的是电子存证、电子签约等可信基础服务。开放网络也是可以直接联通司法机构,未来用户在开放网络上保存的数据具备司法效力。在政务领域,也有望通过超级链开放网络对用户提供”一网通办”服务。
总结下来,这些都是一个联盟链主体向更高用户规模的尝试。开放网络团队描述为“这是个B2B再2C的过程”。
诸如开放网络一样的区块链基础设施平台,它可以像云计算平台一样提供各种各样的基础组件和弹性计算能力,但平台并不能提供衣食住行等C端用户直接使用的服务,最终需要通过开发者编写DApp提供具体的业务服务,因此开放网络的核心还是在扩大网络规模的基础上,构建起行业能力、开发者工具、可信组件等生态能力。
确实,大部分区块链产品都会通过这样的思路去实践。因为给开发者不断的降低门槛,是必要的、唯一的途径。