时间: 2018 年 2 月 25 日 20:15-21:15
地点: 币乎社区(bihu.com)
嘉宾: 冒志鸿(ArcBlock 创始人兼 CEO)
主持人: Amber
大家好,我是冒志鸿,网名老冒,ArcBlock 的创始人兼 CEO。我今天为大家分享的主题是“ ArcBlock:解密区块链 3.0”。
区块链是非常火热的概念,而区块链 3.0 代表着区块链最新的发展趋势。“解密区块链 3.0”,就是让区块链和 3.0 的概念不再那么神秘,从技术角度上来讲,区块链就是一种新的计算机科学技术,并不是很神秘。
在讲区块链 3.0 之前,先简单的介绍一下我的个人背景。在做 ArcBlock 之前,我在美国微软研究院做社会化计算和机器学习相关的工作。在加入微软研究院之前,我曾在微软欧洲做移动技术相关的工作,在加入微软之前,我在国内创办过两家公司:北极星软件和又有地带。
区块链技术的演进过程#
我们先简述一下区块链技术的演进过程。我们今天讲的是区块链 3.0,区块链的 1.0、2.0 和 3.0 是由《区块链新经济的蓝图》一书提出的,这本书中,作者把区块链划发展阶段分为 1.0、2.0 和 3.0 三个阶段。
区块链 1.0 是以比特币为代表的区块链技术, 最大的特点是在某个区块链上只存在一个应用,如比特币,特币本身是一个区块链,同时又是一种协议兼数字货币,它是区块链的一种应用。从技术角度来看 1.0 时代的区块链,本质是一个分布式账本,在这个分布式账本之中,保存着最基本的交易记录。
在区块链 2.0 时代,区块链开始承载更多的应用。 提起区块链 2.0,我们都会想到智能合约,其代表产品就是以太坊。染色币技术是最早的区块链 2.0 应用。染色币是在比特币第一次低谷时出现的, 当时很多人意识到:比特币作为货币形式为时尚早,很多人开始想,能不能在比特币上做一些有用的应用。
染色币概念很常见,大家都见过写着广告的钞票,钞票上一旦被写下广告,就承载了一些其他应用。有人在钞票上写广告、写海誓山盟,还有人写连锁性的有趣的东西,引起大家传播。
染色币把比特币分成很多小币种,利用在比特币的字段里存放额外数据的方式, 在比特币上承载各种结构化的数据。通过这些结构化的数据表征如股权、证书、资产等。这样能让比特币具有承载应用的能力。在原有比特币的基础上做应用是一种取巧的方式,因此染色币技术迅速被新一代的技术取代了。
在以太坊白皮书中,有几个重要的概念,第一个是比特币,第二个是染色币。 在以太坊中引入智能合约,可以在区块链上做比染色币更灵活更强大的应用开发。
为区块链 3.0 而生的 ArcBlock#
我们在 ArcBlock 设计中对区块链 3.0 的理解,区块链 3.0 是一个为去中心化的应用而设计的平台。这里面有 4 点很重要:
1.云服务节点 ,即区块链跟云计算的结合。
2.开放链访问协议 ,区块链跟各种不同的底层链有效的结合,支持各种底层区块链,如以太坊、超级账本或小蚁量子。
3.blocklet ,一种中间件的技术架构。
4.社区的激励机制和社区的自我成长设计。
区块链 3.0 要让区块链应用落地。 现在大家用区块链产品,如使用钱包进行打币的时候,会发现钱包很难使用。一个好的技术应该是非常优雅的,容易使用的。
今天的区块链就是 1993 年的互联网, 1993 年互联网的最重要的协议,TCPIP 协议已经非常成熟了,这个 TCPIP 协议上有很多种不同的应用,浏览器也已经在实验室里诞生,但还没有变成主流的应用。而当时用 Internet,要在一个有专线的地方,那时拨号上网还尚未流行,而宽带更是大家不曾听闻的概念。
浏览器和拨号上网对互联网的落地至关重要,用电话拨号上网,意味着所有的人都可以在家里就可以接入互联网。有了浏览器就意味着互联网像一本书一样,容易阅读。
用过区块链产品的人都知道,无论是比特币、以太坊地址钱包还是其他冷钱包、硬件钱包,对用户都非常不友好。 区块链产品要想落地,最重要是让任何普通用户,乃至我们父母这一辈人都能够容易上手。所以区块链 3.0 最需要改变的问题,就是让所有人都能方便地使用, 这需要开发者努力开发用户友好的应用。
在 ArcBlock 的设计思路中,我们提出了四个非常重要的概念。
一、开放链访问协议#
我们通过开放链访问协议提供出一个抽象层,让大家不用关心底层技术,把精力放设计应用上。
二、 Blocklet#
我们认为它是在区块链的典型应用中最合适、最容易的框架。那通过这个框架,大家能更加有效率地来提高开发效率,写出更有效率更加安全的代码。
三、去中心化的订阅网关#
这个去中心化的订阅网关和 Blocklet 的设计紧密相关的。
四、代币经济服务#
代币要想在一个应用之中真正得到有效使用,就要有合理的代币经济体系。现在大部分的区块链,如以太坊的 E2C20,可以非常容易地创造出各种代币,但是它只是提供了非常基本的接口,而要把代币在应用中得到更有效的使用,还需要代币经济体系,现在代币经济体系需要大家自己开发。
开放链访问协议#
下面着重讲一下开放链访问协议。我们首先定义出一个相对标准的抽象层,有了这个抽象层,我们在写应用代码的时候,就不需要关心具体某个链的细节,而是在这个抽象层上来写区块链的应用。
如上图,本质上我们通过链适配器来把这个具体的区块链功能适配给开放链访问者。当我们开发应用时,大部分情况下只需要对应的处理开放链访问,而不需其他开发者帮助实现具体的区块链适配器。
我们在 ArcBlock 里提供了一个概念,能让更多开发者一起来协调工作如链的适配器, 这些适配器不一定是 ArcBlock 团队开发的,可能是区块链开发团队自己或者第三方社区的成员开发的。通过我们的 APT 激励体系,各个环节的开发者可以从中分享自己的利益。
我们希望在这样的代币经济体系的鼓励下,把开发分工合作变得更容易。
现在开发一款产品,已经有了相当多的开源组件或商业组建。但是系统化的激励体系可以调动大家的积极性。目前的开源体系中,有相当多开源项目得不到健康的成长。很多开发者,在项目里得不到足够的回报。一段时间后开发者的激情消失,如果没有接续者,开源项目就会半途而废。
一个成功的商业产品,首先需要有足够多的市场和用户。产品想要得到好回报,就需要制定较高的价格。而要增加产品的用户量,就不能定太高的价格,但即使价格低了,产品的销售情况还是会不够好,产品的开发者也得不到足够的利润。所以产品的定价和推广,也是一个矛盾。
区块链的代币经济带来了很大的价值:以公开透明的方式,让软件开发的各方分享开发中所获得的利益。 这样每个人都可以专注于自己最擅长的地方,一起来打造出成功的产品。
我们下面再看一下 Blocklet。Blocklet 是基于微服务的框架,微服务设计的基本原则是每个模块只做一件事情,把这件事情做到极致。我们设计的目标是让每一个 Blocklet 都专注于做一件具体的事情,不同模块之间保持相对独立。
只要我们把这个微服务的架构做得足够好,就会迎来新机会。开发者不需要构造每一个具体的微服务。可以使用第三方的微服务;有一些微服务,不但可以自己用,还可以分享给别人。我们使用的软件,有相当多的功能是雷同的。开发者开发产品的时候,除了要专注核心功能,还要做一系列的辅助功能。如果有一个很好的生态体系和产品组织,能让开发者专注于自己最擅长的产品业务,那么软件开发会变得更容易。
去中心化的订阅网关是和微服务相关的,最终需要把这些服务进行有效的组合以形成应用,此时 API 网关就显得尤为重要。
这里的一个关键部件,就是去中心化的订阅网关。使用这种订阅网关,可以更加有效地结合响应式的用户界面。我们在使用浏览器的时候,需要不停地刷页面。移动应用的界面是响应式的界面 — — 无需刷新,界面会随着用户的动作或外部变化自动更新。区块链应用作为新一代应用,它的界面应该是用户友好的,所以这种响应式的用户界面,在未来的区块链应用之中非常关键。
API 网关可以支持多种不同应用的客户端,而且这些客户端还可以支持不同的协议。现在的订阅 API 网关,能够把 Blocklet 暴露出不同的协议。
代币经济体系是区块链里最重要的概念, 大部分代币都是基于以采访的 E2C20 的。我们知道,现在做一个新的 token 非常简单。学习以太坊开发的第一个案例,就是发 token。通过简单的复制调整代码,只需五分钟就可以发出一种新币,但是新币只是一个符号,要想让这个币变得有意义,必须将代币跟具体的应用直接挂钩,围绕这个代币创造出一个代币经济。所以看区块链项目靠不靠谱,最重要的就是产品有没有实际的应用场景。
区块链中的代币经济体系,是最具有价值的,它能够最大程度得发挥创意。基于代币的激励体制,是区块链里最核心的。判断一个区块链的项目是否有价值,最重要的判断指标就是代币经济体系。
在 ArcBlock 经济体系里,我们的矿工有两种,一种是资源矿工, 他们能提供计算资源,如存储空间和运行 Blocklet 所需要的计算资源;另一种矿工是组件矿工, 他们无需运用组建就能够开发出链的适配器。
应用开发者和用户是两个重要的环节,应用开发者可以使用其他矿工所提供的资源开发出有价值、消费者友好的应用,最终用户通过付费或其他形式使用应用。
最终不同方会在 ArcBlock 的经济体系里形成有效的经济循环,不断贡献出新的资源。用户在使用收费应用时,通过自己购买点数、或者购买某种包月服务,将更多的钱流转入 ArcBlock 经济体系中,广告商和企业也会把钱不断投入到这个经济体系中。
应用所产生的收入,除了应用的开发者,还有平台方,矿工也能从中受益。举个例子,某个应用用到了矿工的计算资源或部件,这样就能形成系统化的经济体系。如果这个经济的模型设计的好,这个经济系统就能健康地成长起来。
上图更系统地介绍了整个 ArcBlock 的设计概要:底层通过开放链访问协议,让大家使用各种不同的底层链。中间层为开发不同模块提供了 Blocklet 开发框架。这些 Blocklet 框架提供的应用,通过去中心化的 Pub Sub 的 get way,把它暴露出 API 形式,而这些 API 又可以支持各种协议。
区块链深入到千家万户#
今天,虽然区块链已经是一个非常火爆的概念,但是我认为整个社会对区块链价值的理解仍然只是冰山一角!
区块链是互联网体系架构的提升,将来区块链会成为一个基础的协议,深入到各种设备,深入到千家万户。区块链的应用的场景,会切入到生活的方方面面。