【钛坦白】Onchain CEO达鸿飞:为什么说不开源的区块链都是耍流氓?
摘要: 把源代码交付给合作伙伴,跟真正的开源是两回事。完整的开源才是区块链的最佳选择
在钛媒体Pro专业用户和付费用户专享的“钛坦白”在线课堂第38期,我们再次请来三位钛客,分享区块链技术落地中的挑战与革新。本期钛客之一、Onchain CEO达鸿飞,也是小蚁区块链项目的创始人,比特币运动早期参与者,数字货币社区的活跃分子。
本文节选自达鸿飞在钛坦白的分享。如果您还不是钛媒体Pro用户,希望查看钛坦白所有干货,进入钛坦白九个专业群交流,并查看更丰富的专业数据和信息,可点击:http://www.tmtpost.com/pro 注册。
以下根据达鸿飞在钛坦白的分享实录整理:
大家晚上好,非常荣幸能够跟大家来做这个交流。我是达鸿飞,我实际上有两个身份,一个是分布科技公司的CEO,另外是一个叫做小蚁的公有区块链项目的创始人。
什么是Onchain呢?就是当一笔交易在链上发生的时候,我们说这笔交易是on chain的,中文可以理解为“链上”。当区块链这两年很火了之后,我们就发现了原来的传统业务,都可以用区块链的方式来更高、更可信地实现。那么在这个时候,我们就可以把它叫做一个move onchain这样的一个新的运动或者是一种新的趋势。
我们公司的标语——“数据可信,价值自由”,实际上是分两步实现的,我们利用区块链技术和其他的一些最新的金融、监管、法律科技技术,让互联网上在计算机里面存储的数据变得更可信。然后有了可信的数据作为介质之后,很多原来不能流转、难以得到互信的价值就能够自由的流转,创造更多的价值。
Onchain是什么?
我分三个点来说:
第一,我们给自己的定位是,一个世界级的区块链核心技术的企业。那这里边有几个关键的词,一个是世界级,为什么这么说呢?因为我们横向比较了我们和其他的一些项目,比如像IBM的fabric,比如像以太坊这样的项目之后,我们认为我们的技术能力是跟他们在同一个水平,甚至在某一个领域是有超越的。
第二,我们是做底层最核心技术的企业,而不是去做中间层或者是上层应用的企业。我们的团队由两部分人组成,一部分是所谓的技术极客,是来自于原来我们开发小蚁的两位创始人,一个是我,一个是张铮文。
三个联合创始人,李俊来自于中国金融期货交易所,有十多年的金融IT的经验,也是复旦、曼彻斯特这几个大学的计算机学士、通讯专业硕士以及MBA。李彦博是从美国高通离职回来的,在高通的时候负责做底层协议的开发,同时他还是一个应用密码学的专家,在美国的时候,就在斯坦福的一个很著名的密码学学者下面做应用密码学的学习。杨文涛,在北大的时候是他们学院的院学生会主席,北大毕业后在美国又读了金融的硕士,后来在摩根斯坦利工作,去年我们在纽约见面深聊了之后他毅然放弃了摩根斯坦利的工作,回来成为了我们的联合创始人。
除了这几个联合创始人之外,我们也有从各个地方过来的,比如有从IBM过来做fabric的开发者,有从Oracle过来原来做数据库相关的开发者,也有一些从招商银行、或者是道富银行这些金融相关机构过来的同业者。
第三,我们的战略很清晰,有两个标签,一个是“自主代码”,也就是我们所有的底层技术、底层架构,都是自主来完成的,而不是参考或者复制其他区块链的代码,同时正因为我们做了自主这件事情,我们就很有底气地走这样一个“开源”的路线。第二个标签是“开源”。
为何说不开源就是耍流氓?
为什么区块链需要开源呢?实际上这个道理很简单,《经济学人》杂志把区块链比作是信任的机器,如果说给你的这台机器是一个黑盒子,你不知道它为什么能够创造、传递信任的,你要做的就相当于要把信任托付给制造这个黑盒子制造的厂商,所以我们认为作为一个区块链,它本质的内在的核心的要求就是它是公开的、透明的。打个比方的话,你是愿意相信一个透明的厨房,可以看里面的人是怎么准备你的食物呢?还是完全不透明、那个门是封锁着的,闲人免进的厨房呢?我相信大部分人都会选择第一种。
另外我还想说的是,开源和交付源代码,这是两件不同的事情。比如说有一些区块链的公司,他会在开发一些项目之后,把源代码交付给他的合作伙伴或者说客户,但是这跟真正的开源是完全两回事。开源相当于你把整个食物制作过程让社区,让外部的第三方都可以参与进来,可以参与审计,参与评测。而交付源代码,更像我给你一个食物的标签,告诉你我这个食物是由什么成份组成的,但是你并没有参与食物的制作过程中去,这两者之间的安全性、可靠性、参与度有显著的差异。所以我们认为,完整的开源是最佳的方式。
此外我们认为,区块链技术是未来金融以及其他一些可信互联网一个基础设施级别的底层技术,中国需要一个有自主知识产权的中国团队,制造出有完整的路线控制能力的一个基础性区块链。所以我们就做了一个叫做DNA的分布式网络架构。它本身不是一个实际运行的区块链,你可以把它理解成一个区块链的模板。使用这个模板之后,你就可以很容易的去搭建起联盟链、私有链,可以高度进行定制化。
上面这张图就是DNA的架构图,技术细节我就不讲了,可以看看它的一些特点。下面的蓝色的部分叫核心层,是一些区块链基础的模块,中间绿色的部分是一个服务层,提供一些像身份认证、隐私保护、权限管理这些服务,很有特点的是在最右边有一个竖着橙色的部分,这是跨链交互的层。我们在跨链交互这块已经申请了一个专利,这个专利很有意思,它不仅仅能够实现跨链的资产交换,还能够实现跨链的智能合约,也就是说一个智能合约可以在多个链上按照一定的顺序来进行执行。
小蚁对于区块链的定义
我听了钛坦白前面的一些钛客的分享,每个人对区块链都有不同的定义,在小蚁这边我们的CTO对区块链有一个非常技术的定义——区块链是一种去中心化的分布式的状态机。什么是状态机呢?实际上它就是记录状态的一个机器。
在上面这个图里面我们看到有ABC三个状态,三个圆圈实际上就是从A状态切换到B状态再切换到C状态,为什么会切换呢?因为他们中间发生了一笔交易,TX1就是交易1或者叫事务1,事件的发生会切换到一个新的状态里面去。状态机是实际存在的。
我们可以看见左边这张图,我们可以把它叫中心化的状态机,有一个中心来控制一个帐本,这个帐本如果是纸质的话我们就把它叫帐本,在用计算机系统记录的我们把它叫做状态机。每一次进行状态切换的时候,就要修改这个帐本,右边这个图就是一个分布式的状态机,通过一些分布式一致性的算法,我们可以保证在没有一个中心的情况下,大家点对点的来对状态进行切换,并且能够统一的一致性地切换到一个新的状态里面去,这些切换的依据就是发生了一些大家都认可的交易。
有哪些比较著名的状态机呢?实际上我们认为有三个阶段是比较重要的。第一个是比特币,它是一个电子现金的系统;第二个是以太坊,它在比特币的基础上,做出了一个可以运行任意的智能合约、逻辑的平台;我们认为小蚁也是一个重要的里程碑,我们在任意智能合约的基础上,进行了扩展,我们是一个智能资产的平台。至于和以太坊的区别在哪里,我在后面会提到。
区块链的演进
- 电子现金
我从比特币讲起。比特币是2008年的时候一个自称叫中本聪的人,他写了一篇论文,在2008年就公布了论文,2009年1月份公布了比特币的程序,在比特币程序创始块里面他还记录了一句话,这句话是摘抄于当时的一份《泰晤士报》上的一个新闻,这个标题是跟当时金融危机相关的,所以他一方面表示证明了他的创始块是在当时那个时间之后才建立的,一方面也宣告了自己对于传统金融体系的不信任和对他愿意进行一些改造的想法。
比特币有一些特点,它是去中心化发行的,它利用工作证明的机制,利用总量有限的这种限制,来实现去中心化的发行。然后它是通过点对点的支付来实现在没有中介的情况下,防止一个钱被花两次,因为信息是可以被多次复制的,但是在比特币的系统里面,你可以复制那个信息,但是你不能复制这个价值。它在技术实现上有一个模型,用了这个模型之后,就可以对所有的交易进行并行的验证,它跟我们传统理解的帐户模型是不同的模型,它在里面并不是记录每个人帐户下面有多少钱,而是把每一次你收到前那笔交易都单独地做记录。
由于你的每一个交易都是一个单独记录,当你花费这些交易,花费收到的钱的时候,彼此之间可以来进行并行验证的,它就能够实现到一个非常好的并发性能。在比特币之后,就催生了很多各种各样的数字货币或者说区块链的产生,比特币,然后什么莱特币、狗狗币,也有一些比较有创新意义的,比如说像域名币,它是用数字货币的系统——区块链来记录域名登记转让的事情。比如像比特股它用来实现去中心化的交易所,就是价值稳定的虚拟资产这样一种区块链。再然后就出现了像以太坊这样新型智能合约的区块链平台。
我想关注区块链的人,可能多多少少都听说过以太坊创始人Vitalik,这是Vitalik在看到了各种各样的数字、或者各种各样的链之后,就催生了一个想法。他说他其实可以做一个底层的通用的平台,这个平台提供区块链的一些底层设施。至于上面的这个业务逻辑,比如你是要做银行的汇兑要做一个博彩,这属于业务逻辑,我可以把它抽象出来,然后你们上层的开发者去独立的进行开发,有了这个想法之后,他就发布了白皮书。在2014年的7月份也进行了众筹,当时是获得了大约3万的比特币,按照当时的市值来计算的话,大约1400万美金的开发经费。
- 智能合约
讲到这里,我们就要讲一讲什么是智能合约了,按照智能合约这个词的提出者Nick Szabo密码学家来说,他的定义是,智能合约能指能够自动执行合约条款的计算机程序,也就是说它不是一般的计算机程序,它要能执行合约上的这些条款。在合约上面这个制定,传统的合约,通常有三个步骤,第一步是协商,我们要把条件谈好,第二个是记录,我们要把它记在纸上签个字,第三步是执行,根据事件的发生,我们要对这个事情进行执行,实际上在计算机程序来自动执行条约的时候,这三个步骤也是非常类似的。
首先我们也还是要通过一些协商来对一个条约的条件进行约定,约定之后,这个记录的步骤我们就把这个合约记录在区块链上,因为区块链可以理解为一个不可篡改的数据库,它就跟你打印出来签名的效果非常类似了。在执行的时候就不是由我们人为的来控制执行,而是由区块链上的执行环境来对这个智能合约里边一些用代码写出来的条件控制、逻辑控制的语句进行判定,并且生成一个结果,对这个结果进行完整的执行,比如可能是A向B要支付的某一个金额的金钱。
智能合约这个词的创造实际上已经很早了。1994年,当时Nick Szabo还举了一个例子,认为自动贩卖机就是一种智能合约的一个例子,因为在贩卖机上是有一个合约的,这个合约告诉你,你现在投入硬币,投三块钱就可以买一瓶可乐。但是这个自动贩卖机往往工作得并不良好,有时候你塞了钱它也不出可乐,这都是有可能的,为什么呢?是因为它不是一个良好的执行环境,非常容易受到各种各样外部条件的影响。但是有了区块链之后,区块链就为智能合约提供了非常可靠的执行环境,因为大家的数据都是完全一致并且可信的,执行的这个标准也是通过一个统一的执行环境来生成的,最后大家会对执行的结果进行共识。
- 智能资产
以太坊有三个特点:
一,它是分层很抽象的设计,在区块链的底层就干底层的事情,比如共识协议,网络协议,把所有的这些应用都放在应用层来完成;
二,它是图灵完备的一套系统,实际上在比特币里面也有一套类似于智能合约的东西叫脚本系统,但是脚本系统是受到阉割的,很多循环类的这些逻辑控制、流程控制它都是没有的。但是在智能合约里面它提供了各种各样的、循环的这些功能,所以它可以理论上表达任意的逻辑;
三,它提供了一种持久化的存储,你可以任意的存储一些信息,可以用来做数据的一些存证也可以用来做数字资产的分配,而且不仅仅是内置的数字资产。
刚才的论述看起来以太坊似乎是一个非常完美的一套东西,但是实际上并不是如此。它非常的抽象,可以实现任意的逻辑,所以它非常像我们图下面左边的这个蝙蝠侠的战车。如果你们点开来仔细看的话,会发现这个战车是用乐高积木搭的,所以以太坊非常像一个乐高积木,它可以搭载任意的东西,并且都可以拼造出来。但是它在工程级的使用上,其实是有很多的限制。
那么我们真正需要的是什么呢?是一个工程上可用的像右边这样的一个又酷,同时又有很好性能的真正蝙蝠侠的战车。
我们小蚁就是要做真正的可用的工程上像蝙蝠侠战车的一个项目,小蚁会着重两件事情,一个叫做数字资产,一个叫做智能合约,当数字资产跟智能合约放在一起的时候,我们可以说,我们小蚁的这个目标是叫做智能资产。
到底有哪些东西是数字资产呢?分三类,一种是原生的数字资产,就是像比特币、以太币,这些内置的随系统诞生而诞生的货币;第二类是通过一些合同关系来产生的,比如一些股权,发票,叫做凭证的资产;第三个是基于身份的,就是两个人之间比如说债权关系、存款的关系。
我们可以把这些资产数字化放到链上去,随系统产生自然不用说,如果基于凭证的,我们就可以把这些凭证用电子合同的方式,把它move onchain。如果基于身份的存储关系,我们可以通过数字身份的这个方式,来把它放到链上面去。
小蚁的技术特点
我为什么说小蚁是一个工程级的项目,小蚁现在有一套全新的智能合约体系,目前所有的智能合约只有以太坊一个可供的选择。在小蚁这边,我们做了一个全新的技术路线,在这个技术路线上面有两大模块组成,一个是开发工具,一个是虚拟机或者叫执行环境。
在开发工具这块,我们跟以太坊有一个巨大的不同,如果你使用以太坊的智能合约体系的话,你需要学习一些新的语言,比如Solidity这一类新的语言,以太坊自己开发设计的一些语言,而且这些语言是跟他的以太坊本身高度耦合的。我们不一样,我们用了一些我们自己开发了编译器,比如说你原来是java的开发者,你是c#的开发者你都可以直接用你原来的语言,比如java、c#来写智能合约,通过我们开发的定制的编译器可以把它编译成智能合约,在链上可以执行的智能合约,也省去了一个学习的过程。像Solidity的开发者和以太坊的开发者全球可能就几千个,但是会java会c#的开发者在全球可能是百万级的,这就会形成一个巨大的生态。
这点跟以太坊也是有巨大的不同的,以太坊会把所有数据访问的这些服务,以及一些资源控制,比如计算燃料这些属性全部放到它的EDM以太坊虚拟机里面。实际上我们认为这是一个比较糟糕的设计,所以我们把这两件事情完全解耦了,执行引擎就是独立的执行引擎,可以说跟区块链都没有关系,就是一个独立的虚拟机,然后把这些和具体的链相关的这些东西,我们都把他封装成一个互操作的服务,这样实现了一个更好的灰度的一个设计,而且性能会显得更好。这张图就是用小蚁的智能合约体系来开发智能合约的图,你看这是一个往区块链里面写“hello world”的一段简短的代码。
未来我们会支持多种语言,目前正在支持的两个语言,一个是.net,一个是java。.net整个的框架基本上已经开发完成了,java的开发在.net完成之后,可以立刻开始进行。其他像C++、C#、python、JavaScript这些我们都有计划进行完整的支持,所以你可以看得到,整个智能合约体系,是能够无缝的对接现有的开发者社区的。
我很爱打一个比方,就是说,以太坊的智能合约体系非常像一个专有的协议,所以它会很像苹果Lightning的那个接口,很多人使用,但是往往是专有的一套体系,我们的这个智能合约的体系,很像USB Type-C这样新型的接口,这个接口现在用的人还不多,但是有一个很明显的趋势,在越来越多尤其是新的设备上都会来支持USB Type-C这样的接口,所以我们认为我们会有一个非常完整、强大的生态社区。
如果说开发者想要在小蚁上做开发的话,可以调用各种各样的API,有JSON- RPC可以支持http或https,如果是写在网页上的html5也可以用Websocket接口,另外的话已经支持了各种语言的SDK,有Typescript其实就是一种类型比较严格的JavaScript。
未来学家威廉·吉布森有句名言“the future is already here,it's just not evenly distritubed”,翻译成中文的时候很多人简单的翻译成“未来已来只是尚未流行”,真正的原文意思应该是“未来已经来临,只是分布尚未均匀”,我们公司叫分布科技正是受这句话的影响。我们希望分布科技能够做到让未来的科技分布的更均匀,更快。
(本文独家首发钛媒体,根据Onchain CEO达鸿飞在钛坦白上的分享整理)
……………………………………………………
钛坦白第38期,今晚7点分享、交流继续~
报名听课、交流:
钛坦白目前有医疗健康、人工智能、文娱社交、VR/AR、区块链、支付创新、体育、云计算、SaaS等九个专业群。
1、钛媒体Pro专业版用户,可以点击链接http://www.tmtpost.com/pro ,登录账号,进入“在线课堂”,在线免费、任意选择自己要进入的群,按提示操作;
2、非钛媒体Pro专业版用户,可以添加微信号taitanbai0,在通过好友后,发99元红包给小钛,你将有权利从九个群中任选一个群进入,长期听课、交流。请告诉小钛你要进入哪一个群,然后等待小钛拉你入群~
推荐钛客、赞助、合作:
请与钛坦白负责人佳音联系,邮箱jiayinge@tmtpost.com
把别人代码拿过去直接改改就说是自己的是不是更加耍流氓?