全球区块链应用有1600多个,其中真正能跑、有意义、有趣的加起来可能只有几十个,这是因为目前开发区块链应用太麻烦。ArcBlock创始人兼CEO冒志鸿觉得区块链应该对开发者更加友好,好的用户体验能促进区块链应用成长。
“得开发者得天下”,ArcBlock(区块基石)希望解放开发者,让他们把精力花在有意义的应用开发上。6月30日,ArcBlock 第一个应用“开放链访问协议实验台(OCAP Playground)”正式上线发布,它为大幅降低区块链开发门槛带来一丝曙光。
image7月5日,[挖链八点秀]第五期特邀ArcBlock(区块基石)创始人兼CEO、连续创业和技术革新者冒志鸿进行了一场头脑风暴,百家媒体人、创业者共同参与讨论,以下为在线分享的精彩详情——
好的用户体验能促进区块链应用成长
ArcBlock是一种新型的云计算服务,本质上是一个为开发和部署区块链应用而优化的云计算服务平台。
ArcBlock不是一条新的公链,实际上我们也不打算引入新的公链,虽然我们内部有一条ArcBlock公链,但它和现在大部分公链不一样。
既然我们是一个为开发区块链应用而优化的应用平台,主要客户就是应用开发者,我们希望为应用开发者提供一系列工具和框架,让他们可以更加快速和容易地开发区块链应用。
最近一段时间区块链概念非常热,各种项目层出不穷,同时全行业又不得不面对一个很尴尬的问题,实际上我们没有真的区块链应用可以去用。
今天的区块链开发对开发者非常不友好。
如果大家曾经尝试去开发一个以太坊应用,你会发现过程很漫长:首先,你要安装以太坊的一个节点,之后同步数据,因为现在数据很多,同步数据就要花费很长时间,然后跟着它的指南去做。
如果你要把应用真正写出来,又面临着一系列问题,应用部署在哪里?你要把应用部署出去,必须在外面提供公开的区块链节点,而要想运行一个比较完整的以太坊节点需要花费很多的资源,这就导致有很多人开发了各种应用示例,但真正愿意和能够部署成为一个别人能够用的应用就特别少。
在一个统计现有区块链应用的网站上,上个星期我看到全球才1600多个应用,其中真正能跑、有意义、有趣的加起来可能只有几十个,而且这几十个里面包含交易所之类的。
导致这样的情况出现,就是因为做应用太麻烦了。人类总是懒惰的,不希望为了做一件事花很大力气。所以,提供一个非常好的体验,让用户非常容易用,让开发者非常容易上手开发,是能够促进区块链应用成长非常重要的一点。
解放开发者,把精力花在有意义的应用上
ArcBlock设计的定位就是大幅度简化开发者进入的门槛。
但是,这并不意味着App变得谁都可以开发,简化进入门槛只是把开发者从各种繁琐的细节、各种无谓劳动里面解救出来,也是把开发者从要花很多代价去部署一个服务中解救出来,让他们把精力真正花在一个有意义的应用上去。
最终一个App如何有意义?我觉得必须是一个非常好有创意的想法,对最终用户是有用的,不是一个人云亦云的东西,也不是一个随便混一个概念的东西,因为最终用户会用脚投票。
前几天直播中,我们社群里就有一位朋友提出了一个特别有意思的想法,“能不能实现一个超级钱包,这个钱包不断的里面可以有ERC-20的token,而且能支持比特币,而且这个钱包还能够不断扩展,支持越来越多的各种不同的链”。
这是一个非常好的想法,因为只要玩数字货币比较多的人,都会有这样一个需求,比如imToken很好用,但imToken不能保存比特币,另外一些比特币钱包里面又不能保存ERC-20的token。所以有这样一个万能钱包,毫无疑问是很有意思的东西,有了好的想法之后就要想如何把这个事情做出来。
这里就谈到ArcBlock有一个重要的模块叫做“开放链访问协议”,简称OCAP。
其实OCAP的概念非常简单,今天有各种不同的区块链,每种区块链都有自己不同的协议、不同的语言、不同的体系架构,这对一个区块链应用开发者而言是一个很头疼的事情。
首先你不知道应该选择哪一个区块链,选择哪一种技术,另外一旦你选错了技术想要再去换另外一个区块链,这时就会有很大麻烦。OCAP的定位就是设计一个相对比较稳定可靠的中间层,使得开发者只需要在这个中间层的基础上进行区块链的开发,其应用逻辑部分就不需要发生太大变化,而我们通过开发OCAP的适配器,再把中间层适配到每一个具体的区块链上去。
这个想法最初来自于数据库的开放数据库连接协议(ODBC)。
我一直觉得在计算机行业发展中,类比是了解新技术一个非常好的方法。因为行业虽然发展了这么长时间,直到今天我们用的计算机还是冯诺依曼体系,冯诺依曼已经是很多年前的人,虽然有各种日新月异的新技术发展,但是万变不离其宗,还是有一些普遍的规律可以追寻。
当我在研究区块链时,就是从过去计算机发展中找到一个可以类比到区块链发展的东西,非常容易能够找到的一个对象就是数据库技术。
其实,在数据库技术发展的这几十年里,早期经历了非常像今天区块链技术发展的阶段,有很多不同的数据库,而且数据库的类型也有很多种。数据库早期发展的时候有各种各样的方式,比如有层次的数据库,网状的数据库等等,后来关系数据库得到大众认可发展成为最迅猛的一种类型。
ArcBlock在业内第一个推出OCAP应用,OCAP是我们的一小步,也是整个区块链应用开发的一大步。
实际上OCAP的思路其实并不是一个特别难想到的思路,我相信每一个开发区块链应用的人,几乎合格的程序员都会想到需要一个中间层,需要做一个以后不再去依赖特定API的方式,我们只是把大家普遍都意识到的问题真正的标准化,并且花精力把它做了出来。
在设计OCAP的过程中,我们也充分地想到了一系列问题。比如OCAP本身是一个开放的区块链访问协议,如何去操作不同的区块链?
每个区块链都有自己不同的特点,此时一个类似查询语言的东西就很有必要,最终我们经过一系列的研究决定选用GraphQL,这是Facebook在几年之前主导发明并贡献给开源社区的新一代查询语言。
GraphQL从某种角度体现了Facebook自己的做事原则,一方面比较实用主义,更加注重于应用,另一方面它对前端的开发非常友好,让前端开发工程师非常省心,不过GraphQL的设计通常在后端上有比较高要求。
我们在OCAP引入了GraphQL作为一个语言,但GraphQL如何定义和实现在区块链上的使用需要我们去做。
因为GraphQL只是定义了一个非常高层抽象的东西,为了实现对底层不同区块链的操作,我们还需要在GraphQL的基础上扩展出一个个具体的数据结构,以及在后端实现每一个查询,通过这种设计就使得OCAP不只是一个简单的区块链API的封装者。
OCAP引进了好几个新的概念,Facebook推出GraphQL已经有几年时间,但在过去还没有成为主流的东西,所以GraphQL本身有学习曲线的,另外区块链本身对很多人来说也是一个比较新鲜的事物。
所以区块链本身也是有学习曲线的,我们把不同的区块链通过一个新的方式能统一地去访问,这本身也是需要学习曲线的。
为了能让开发者更容易地学习和掌握OCAP,以及体验OCAP究竟能带来什么样的价值,我们把推出的第一个ArcBlock的应用叫做OCAP Playground。
顾名思义,它是一个可以让开发者在Playground随便玩、尝试测试的工具,通过Playground用户可以非常容易地学习GraphQL,尝试用GraphQL对后端的区块链进行操作,并且立即就可以在Playground里直接看到通过OCAP在区块链里面所查询到的数据。
此外,我们还提供了一系列的工具,让开发者可以把数据有效地组织成表格或者图标的形式。
后续我们还会在Playground的基础上继续扩展,比如现在我们已经提出了Playbook概念,所谓Playbook就是帮助开发者能够把他用Playground里面所写的代码片段进行分享的工具,有了Playbook之后开发者能够更好地去分享自己的经验,也可以更容易地去学习别人写的比较好的区块链应用的代码。
OCAP在后期还会支持移动的SDK,支持原生的iOS和安卓的开发。为了能够让开发iOS和安卓的移动产品更加容易,开发者完全可以在OCAP Playground里面把所需要用的一些查询进行测试调试,然后最终由Playground直接生产出可以供iOS和安卓使用的代码,这样也进一步降低了移动应用开发者的开发难度。
如何降低区块链开发门槛
过去开发一个区块链需要创建节点、学新的语言,学完之后写一些例子程序可能也不能部署,会经历从入门到放弃这样一个过程。
现在对一个开发者来说用OCAP、OCAP Playground,他需要的就是一个浏览器,马上就可以尝试写代码,并且马上就可以跑起来,可以看到结果。
除了OCAP之外,我们还有一个关键的部件就是Blocklet(基石程序),其最核心的价值是能帮助开发者部署一个完整的链上和链下运算的代码及资源。
一个最简单的Blocklet可能就是一个最基本的OCAP应用,比如一个网页应用,一个React代码开发。你可以通过OCAP对后端的区块链数据进行查询,但你可能还需要一个React代码来把查询的结果渲染成用户比较爱看的东西。
这些东西对于前段开发者很自然,如果把它真正变成应用,还需要知道React代码部署在哪里?
例如,你做了一个应用是查询钱包里有多少钱,通过OCAP协议你可以很容易查到某一个地址里面有多少比特币,但是这个比特币如何换算成现金?
此时我们可能需要通过另外一个API来获得当时美元的价格,这些事情可能需要用到区块链以外的传统世界的API或数据库,解决的部件在我们这边就是Blocklet。
所以,有了Blocklet和OCAP,开发者就可以真正的非常容易的去开发和部署应用。
我们另一个关键的部件Decentralized Pub/Sub Gateway(去中心化订阅网关),它本质上是一个消息服务器,同时它也是一个API网关。消息服务器和网关的作用是什么呢?
我们前面讲到开发Blocklet和OCAP,总体上来说不少都是后端的事情。如果我们要做一个传统的应用,可能跑在Web应用上,可能跑在移动App上,此时就需要另一个方法能跟后端进行通信。一个友好的应用,它的实时性应该是非常强的,也就是数据只要发生了改变,你不需要刷它就直接改变了。
为了解决实时高效率的信息更新,也能够使得一个开发者开发一套应用,同时使用不同的前端,比如IPhone、安卓或者Web等,在这种情况下我们设计了一个关键部件Decentralized Pub/Sub Gateway。
这个部件本身是去中心化的,也就是说在将来矿工可以把它部署在很多的节点上,一方面去中心化的好处是它不是一个中心化的消息系统,所以不太容易单点故障,另一方面它的性能也会更加好,因为这里面是一些消息传送的设计。
区块链3.0标志:云计算和区块链的结合
我认为区块链3.0时代非常重要的标志是云计算和区块链的结合。区块链3.0虽然定义是比较模糊的,但我认为在业内取得最大共识的就是应用,也就是说它上面要能够承载非常多不同的应用。
大家想想,过去承载大量应用的服务就是云计算服务,所以我觉得云计算和区块链的结合是一个必然之路。
只要提到云计算就认为它是中心化,这其实是一种误解。
我此前多次提到一个问题,一个系统究竟是中心化还是去中心化,需要从多个不同的角度来讲:第一是物理层面,系统在物理的网络结构、设备等方面是不是去中心化;第二是治理层面,系统由一家管理还是由多家管理,是一个民主的管理方式还是一个独裁的管理方式;第三是逻辑层面,系统能不能在逻辑上拆成很多不同的子系统,并且每一个不同的子系统都能够相对独立地工作。
如果从物理角度来看,几乎今天所有的云计算服务都是去中心化的。因为,任何一个云计算服务都会在很多不同的地方部署机房、容错系统等,这些系统本身也一定是非常去中心化的,以此确保它的系统能够更加有效率,更加安全的去运转。
在治理上,目前大部分的云计算服务都是高度中心化的,比如阿里云就只归阿里巴巴一家管。
在逻辑上,目前的云计算服务也都是去中心化的,比如阿里巴巴的阿里云里面通常是提供了很多不同种云服务,例如计算服务、虚拟主机服务、云存储服务等,它的每一个服务本身都可以成为一个单独的服务,但是把它们组合在一起也很棒。
一个逻辑上比较中心化的例子就是银行的系统,尽管它里面有若干业务,但是通常来说这些业务跟用户的账户之间有非常强的绑定,你很难把银行系统分拆成很多个系统,每个系统都能单独地跑,所以在逻辑上通常银行的系统是非常典型的中心化设计。
ArcBlock的服务愿景本身只是用来开发软件、贡献技术的,在运营初期我们会自己推一把,但我们希望整个社区能够加入我们,一起来运行。
ArcBlock系统在治理上是一个高度去中心化的设计,为了能够达到治理上的高度去中心化,我们在ArcBlock的设计里面加入了一条ArcBlock链,这条链不同于今天的以太坊这些公链,它的主要作用是一个计费和运营业务的支持。
当ArcBlock这个平台由多方来运行时,我们需要解决几个问题,第一我们希望这些平台不会因为多方运行而各自为政,对最终用户来讲它应该是一个统一的平台;第二既然它不各自为政,这时我们就需要一个公开透明的机制来进行计费,管理好各个参与方。
ArcBlock不但是为区块链而优化的,它自己也通过区块链来提高完善自己,所以ArcBlock本身也是被一个区块链所用的。
既然在ArcBlock上会有很多应用开发,这些应用有可能都需要发行自己的token,所以我们这条主链上还支持能让开发者在我们这个链的基础上发行自己应用token的能力。
我们采用了一个非常独特的设计,在ArcBlock平台上用户发行的token,和我们的ABT主链token完全是对等的,也就是ABT所有的token经济体系都可以让建立在ArcBlock链上的应用直接拿来使用。
这不同于今天以太坊ERC-20的设计,在以太坊里ETH是“一等公民”,ERC-20是“二等公民”、“三等公民”,原因是ERC-20它实际只是一个以太坊的界面。
从某种角度讲,以太坊在运行时,根本不存在ERC-20的“token”,只是一段数据而已。这就是大家看到今天使用ERC-20打一个token这么麻烦,每次打一个token都要往一个智能合约里去打,另外转ETH的gas费远远低于转ERC-20 token的gas费,往往你打一个token,这个token不值钱,而转账gas费要花费不少。
这些东西我认为都是不合理的,花钱的不合理,对用户也非常不友好。
ArcBlock和传统公链有什么区别?
之前社区内讨论一个问题,ArcBlock明明是一个应用开发平台,它又不是一个新的区块链,为什么ArcBlock要有一个主链要上线呢?我看到社区里有个人回了一句话,他说这样理解非常简单:火币、OK、币安他们都是交易所,为什么他们都要有主链上线呢?
其实原理是一样的,交易所主要业务是交易,但是把交易所做好需要一个自己的区块链,有的可能为了自己发币,有的可能有自己的用途,但不管怎么说他们虽然是交易所,但他们有区块链。
总体来说,ArcBlock是一个为开发和部署区块链应用而设计的云计算平台,在ArcBlock链的基础上来完整地进行支持,使得广大的矿工能够跟我们一起进入到一个生态体系里来,打造出一种全新的在区块链驱动之下的,团结一大群开发者和矿工的云计算平台。
看过我们白皮书的人可能知道,我们的白皮书更像一篇论文,但是我们想要做的事情在白皮书里已经写得非常清楚了。
[挖链八点秀] Q&A
链天下主编林燚:将来有没有可能像现在的网站模板那样,实现基于ArcBlock中间层技术的DAPP钱包等应用的开发呢?既然有基于区块链层面的云服务,大数据支持下的人工智能,有没有可能用自然语言就能实现机器语言的编写和设计?
老冒:这我觉得是有相当大可能性的,就像我前面所说的超级钱包这种想法就是由我们社区的朋友提出来的。最近我们有一个合作伙伴也谈到了一个区块链超级浏览器的想法,他们想用ArcBlock这样的技术来实现一个比较通用的区块链浏览器,这样能解决区块链现在浏览器都太简陋的问题。
至于未来和大数据、云计算、人工智能等等这些结合,我觉得都是有可能,但是这些都超越了区块链的范围,但这就意味着应用的开发者可以在这里面做很多的工作。
挖链网Elaine:请问一下老冒怎么看EOS?能算的上区块链3.0吗?
老冒:我觉得区块链3.0这件事情本身定义就是比较模糊的,并没有一个非常明确的概念,但整体上来说3.0应该说最主要是做一个应用的承载。
我始终认为EOS实际上是一个以太坊的追随者,虽然它想把自己粉饰为比较有革新的东西,但本质上EOS并没有提出任何以太坊没有提出的东西,它只是想做一个更好地以太坊而已。
链天下主编林燚:在最后一段中,提到了平台对于开发者的友好。基于区块链社区建设的考虑,咱们的平台是不是也会像比特币那样,即使中本聪不主导,平台照样会自行运转?对于开发者以及社区参与者的激励机制又是怎样构建的呢?
老冒:能像比特币这样是一个去中心化治理,现在毫无疑问每一个区块链都希望自己达到这样一个目标。ArcBlock作为一个云计算平台,要想达到完全去中心化的治理还是有困难的,因为这里面涉及到的问题很多,比特币去中心化只承载了一个简单的业务就是比特币本身,所以相对来讲,比特币的去中心化比较容易实现。而作为一个应用开发平台,它上面的灵活性非常强,所以去中心化的难度是比较大的。
激励机制也是我们ArcBlock链的ABT设计的一个目的,token本身即是一个用来消费ArcBlock链上资源的token,同时它也是一个用于奖励为ArcBlock平台提供云计算资源、软件的矿工的激励体系。
这个激励体系整体上是市场主导的设计,目前这个激励体系如何实现我们还在继续探讨之中,我们还没有做到这一步,我想这也是将来很重要的一个问题。
链天下主编林燚:对于目前层出不穷的公链项目,他们的架构,共识等方面有怎样的评价?
老冒:现在这个阶段是万链奔腾的阶段,更多新的区块链和公链出现。首先我认为将来的世界不会由一两个区块链而统一,将来会需要很多条公链。但是另外一个角度讲,将来会不会出现五花八门、无穷多的链,我认为不会,我认为大部分都会死掉。最终这个世界会被统一在少数的几个区块链公链协议之上,但是这些协议里面会跑出来很多协议出来。
追问:那就是说ARCBlock还是趋向于中心化团队来运作
老冒:ArcBlock在早期,尤其是在业务治理上来说还是比较中心化的。虽然我们的业务在物理上是去中心化的,我们逻辑上也是比较高度去中心化的,但是我们在业务治理的初期是比较中心化的,因为必须由我们来主导,但是我们这个比较中心化它也比AWS这种一家公司来主导又要去中心化的多。
实际上今天来看以太坊,它在治理上也是比较中心化的,因为有以太坊基金会,曾经有人讲,以太坊最大的代码就是法律,实际上以太坊最主要的治理就是谁能够改变以太坊代码。
挖链网唐文斌:ABT跟EOS什么区别,超越EOS吗?
老冒:有挺大的区别。EOS总体上讲是他要做一条新的公链,解决以太坊一系列的问题,本身架构上和以太坊十分接近的,采用DPOS这样的一个算法提高了性能,但DPOS尤其是EOS的DPOS做法是相当中心化的。在治理上,比如最近BM一个人提出要废除宪法这种事情,听起来也是非常不可思议的。
ArcBlock是一个应用开发平台,在链的角度上讲我们可以对接任何其他的链,如果EOS未来有很多用户,ArcBlock也会支持EOS。ArcBlock跟EOS在理念上有相似之处,因为你看EOS白皮书实际上它也是要解决应用的问题,但是从策略和定位上挺不一样。
EOS是想要重新做一条区块链解决现在所有问题,但是本质上来说还是要把所有应用锁定在它一个平台上,而ArcBlock的设计是要做一个公共的中间层应用平台,让开发者不要锁定在一个具体底层区块链上。
挖链网唐文斌:对于近期币价下跌,老冒什么看法,也不是没利好消息吧?应用都落地了,市值管理为什么没动作?
老冒:我们一直有一个观点,所谓市值管理是通过好的产品,让好的产品落地来实现的,而不是通过财务、资金盘的手段。
那些手段说实话是非常不负责任的,作为一个区块链项目,如果你相信的是这个项目本身所带来的长期价值,我觉得最重要的是要看这个产品是不是能落地。
其实很多朋友是非常关心币价的,随着币价起伏,心情也是今天好明天不好,或者今天觉得怀疑人生,明天又觉得特别有信心。
我建议大家要尽量有自己独立思维,想一想自己参与一个项目的目的究竟是什么?如果这个目的是因为你相信这个项目将来会有价值,随着这个项目价值实现你自己获得成长,那么非常好,你就不太需要去关心这个市场的起伏,而是更多的关心这个项目本身的成长,以及看看自己本身能不能投身一起把这个项目做好。
当然如果你就是为了挣钱,那么最近不是币圈大佬公布了他的割韭菜秘籍吗?那你就去被他收割吧。
挖链网唐文斌:冒总,外界都说你是多次创业失败,能说说你之前的经历吗?让后辈少走点弯路。
老冒:对于一个创业者而言,失败是正常的,任何一个创业者都有失败经历,没有失败哪里来的成功呢?正所谓失败是成功之母。说我是多次创业失败者,那绝对是黑我,黑我的人有本事先跟我失败的一样多看看,然后再看看过去做的事情里面取得过什么成就。
我觉得对于创业者来说,创业路上最重要的一点是不要去听别人的,尤其是创业导师的想法。最重要的是要走出一条属于自己的路,因为创业领域里面实际上没有任何导师可言,你也许能从其他人的成功和失败中掌握到一些什么,但是千万不要去听别人说什么。
因为即使是成功的创业者,他所讲的故事可能都是一个局部的真相,那么你从一个局部的真相里面通常是很难总结出一个对自己有启发的东西的。
另外创业导师特别不能信的一个重要原因是,大家可以去看《幸存者偏见》,这里面讲每一个成功的创业者其实他是一个幸存者,有一个故事就是说二战时候美军想研究一下飞机究竟哪个地方需要加固,这时候他们进行统计发现飞机的机翼和机身弹孔特别多,凡是飞回来的飞机机身上都有好多洞,但是尾翼上几乎都没有什么损伤。
这时候军方一开始就想,这就说明我们要加固机身和机翼,尾翼那问题比较小,这时候就有专家迅速指出这个想法是非常错误的,因为这就恰恰说明尾翼这个地方是最脆弱的地方,因为凡是尾翼被打坏了的那些飞机都没能飞回来,所以飞回来的飞机是机身和机翼很多洞,但是真正没飞回来的飞机你都没有看到,这就是所谓的幸存者偏见。
所以,成功创业者给你讲的故事百分之一百都是幸存者偏见,群里有朋友想要创业的话,最重要的是坚持自己的方向,不要听别人的,不要轻易被别人说动。
链天下主编林燚:资金盘掌握项目命脉的当下,如果ABT面临很强的市值压力,会不会引入资金盘?
老冒:不会。原因非常简单,我们这个项目不存在资金盘掌握命脉。我们从ICO开始的发展过程中一直坚持去中心化的理念,我们不存在控盘的资金方。
另外,我们这个产品是有非常明确可以落地的目标,这个产品对整个行业的发展也是很有价值的,因此我认为可能在一段时间内也许我们的市值会受到一定压力,但是有句话说只有潮水退了才知道谁在裸泳,我们相信能够创造出一个真正帮助区块链开发应用。
我们不是一个需要靠资金盘来割韭菜的项目,以及想利用我们ArcBlock收割韭菜的人在我这里也很难做到,不信我们走着瞧。
网友评论