周政军:区块链中侧链和分片解决不了的扩容问题(附TrustNote DAG问答)

摘要: TrustNote创始人周政军开篇就用梅特卡夫定律、马太效应分析互联网生态的价值,类比区块链生态,并以互联网生态的价值公式V=K*P*(N2/R2)评估区块链生态价值。 在周政军看来,从互联网的出现、发展到BAT的出现,互联网的价值除了和节点的平方成正比以外,还和节点相互之间相互建立的连接成反比。

TrustNote创始人周政军开篇就用梅特卡夫定律、马太效应分析互联网生态的价值,类比区块链生态,并以互联网生态的价值公式V=K*P*(N2/R2)评估区块链生态价值。


在周政军看来,从互联网的出现、发展到BAT的出现,互联网的价值除了和节点的平方成正比以外,还和节点相互之间相互建立的连接成反比。在方程中,N代表网络里的用户数,这个网络是个概括性的网络,可能是物联网,也可能是社交网络;R代表两个用户之间建立的连接成本; P代表市场份额;K代表每个节点的变现能力。对于区块链应用,要在今天的网络里输出价值,给社会带来真正的贡献,必须回顾这个公式。


除此,周政军还高屋建瓴地谈到了为什么要用扩容,为什么要选择DAG,钱包的建设应该注意哪些问题,智能合约在设计中又应考虑到哪些问题。洋洋洒洒近万字的分享,却逻辑清楚,层次分明,对于技术人员来说,是一篇不可多得的学习样本。



周政军(Jeff Zhou)简介:


周政军(Jeff Zhou),TrustNote基金会创始人,区块链软件和芯片研发专家。20年以上研发经验,在数字货币、大数据平台、物联网平台和操作系统核心等领域均有世界领先的技术成果和丰富的产品技术实战经验,并拥有近10项相关领域发明专利。Jeff Zhou曾领导开发了世界首款比特币莱特币双挖矿机;打造出基于Hyperledger Fabric的IoT区块链平台;其研发的手机浏览器,后被奇虎360收购并成为奇虎360手机浏览器的核心。


以下为周政军分享实录:


很荣幸能和朋友们以及开发们一起分享DAG的分布式帐本技术。


先简单介绍一下我自己,我是软件研发背景出身,2000年开始参与创办过一家芯片创业公司叫做中兴微电子,后来这个公司在2005年到美国纳斯达克上市了,是咱们大陆第一家能够上市的芯片设计公司,我在这个公司创始期间一直是它的软件和算法的负责人。


之后,短暂在国外生活了四年多,回国之后参与一个创业项目——手机浏览器项目,这个项目后来被奇虎360收购了,是当前奇虎手机浏览器的前身。


2013年我开始进入区块链行业,2013年8月份,第一次看了中本聪的白皮书,作为一个当时已经从事过十几年软件研发人员,我马上感觉到这将会是一场改变世界的革命。


中本聪给我们提出来了一个新的方向——用软件这个工具来实现信任,通过这个工具还可以构建完全由软件技术搭建起来的信任社会。


那个时候我开始在区块链行业做比特币和莱特币双挖的矿机软件,2014、2015年又转到区块链软件。目前的TrustNote项目是从2017年二月份开始组建筹备的,软件设计比这个更早开始了。接下来,我就给大家讲一下DAG分布式账本的技术。



价值公式


回顾一下,在互联网领域一个网络想让它真正阐释对社会的价值,是有一个公式的,这个公式是3COM的创始人最早提出来的价值公式,一个网络的价值是和网络节点数的平方成正比。之后随着这个互联网行业的发展和BAT级别公司出现之后,腾讯创始人又补充了一下这个公式,互联网网络的价值除了和节点的平方成正比之外,还和节点相互之间建立连接的成本的平方呈反比,我们这个方程里面有一个N方,有一个R方,N方代表着这个网络里面的节点数,这个网络我们是一个比较概括性的网络,有可能是一个物联网,也有可能是一个社交网络,如果在社交网络这个N就是用户数,就是使用社交网络工具的用户数量。R是两个用户之间建立交流和连接的成本。另外两个参数,P代表着市场的份额。K是代表着在每一个节点或者每一个用户能够带来的价值,用商业的话来说叫做客单价。


如果我们想在区块链上构建一个可以信任的网络,如果想把这个网络和价值做到最大,我们需要这个公式,需要把N做大,R做小,这样网络才能够真正放大,才能够真正构建一个有用的信任网络系统。

    

基于这个考虑,在当下区块链的项目里,我们要看的是区块链钱包用户数和使用客户端进行交易的数量,如果用户数和交易数上不来,即使我们能够实现非常有吸引力的应用场景,甚至颠覆性的功能,但是因为使用的人数和使用成本非常高,使得网络价值也不会长大。


现在我们又把价值公式提出来,并以此作为TrustNote项目最初的设计原则。想要打造一个成功的区块链网络的话,需要关注解决的问题是,要把N的平方做大,这个叫做行业可拓展性问题。要把R做小,即在区块链里面每一笔交易的交易费低,交易确认速度快,还有一个降低R的设计考虑,即在当下的区块链项目、软件的客户端还是不太容易安装到更多的手机或者更小的设备里,TrustNote的钱包轻便易安装,软件尽量能够实现占有资源更少一些,能够被安装到更多类型设备上。在P这个点上,虽然现在有很多很新奇的应用方向,如果这个应用方向使用的人数不大,就很难建立一个规模很大的区块链网络,所以我们尽量选在当下的技术成熟度所能够支撑的应用方向。如果想要让应用产生更大的价值,我们尽量找对当下与大家生活更紧密或者大家更想做的应用方向,这是我们现在根据梅特卡夫定律方程式做的一些分析。TrustNote这个项目最开始做公有链的方向,就是按照这个梅特卡夫定律来分析和确定我们这个市场以及研发的方向。



如何扩容?


回到DAG,为什么选择DAG?最主要的问题是可拓展性问题。最近研究发现不仅仅有可拓展性的问题,DAG还有一些其他的作用和功能,能够更好地和区块链或者说叫做分布式共享账本融合。


有一个关键的环节叫做挖矿环节,挖矿环节目前基本上是堵塞式的,矿工做了这个网络里非常多的重要事情。为什么说它做了一个非常多的事情,因为它做了三个关键性的动作,要做交易的检查,通过挖矿的环节选一个可信的记账源;拿到可信记账源权利之后检查基本可靠性同时还要检查这个帐户UTXO模型关系。


总结一下,在挖矿节点里面,矿工同时做三个关键动作后,导致的效果就是整个网络在间隔区间发生的交易都是同步阻塞式的,所有交易都等在那里。


区块链虽然有很多分布式的节点,但它是同步写入的数据库。由于它这样的特征,所以分布式的账本,它的可拓展性通过区块时间和区块尺寸是可以算出来的。


当下很多知名的项目,比如说比特币出块时间是十分钟,比方说以太坊,比方说EOS。EOS说我现在要想办法优化共识算法,尽量缩短出块时间,这是他想做的事情。但是我们会发现在这样一个架构里面因为还是同步写入的架构,这个架构没有发生变化,即使缩短了出块时间,也只能降到某一个数值便不能再降了。在你说定的出块时间内,所能容纳的交易数量也是可以算出来的。所以不管项目的白皮书里面怎么样描述架构,如果还是这样的基本架构不变,它的扩展性也是有限的。


扩容这件事有多重要?区块链行业现在发生一些非常知名的新闻,非常有争议的话题已经表现的非常之强烈和明显了。比特币目前能做的事情很有限,只能增大区块的尺寸,这就涉及到修改共识算法,所以大家没有敢动这个事情。


以太坊撸猫会导致这个拥堵。所以拥堵是以太坊网络面临的很重要的问题。因为堵,使矿工具备了有很大的议价权,想让你的交易更快需要支付更多交易费用,导致比特币以及以太坊的交易费用比较高。有一些人觉得不是特别高,但是如果和互联网行业里面的每一个交易成本,我们叫做维护一个活跃用户的成本比较来算的话,还是蛮高的。转帐一次意味着一美元,那天只有一笔交易也要有一个一美元的支出,这基本上是不可想象的费用。所以就限制了以太以及其他区块链项目将来被大规模使用。


可拓展性问题是当下区块链产品技术上面临最主要的问题,而且也是整个行业面临的最主要问题,如果这个问题解决掉了,才能够解决区块链被广泛应用的问题。如果不解决,区块链还只能是大家在学术或者是研究室里面探讨。


可是,目前,已经不具备可拓展性了,为什么?有几个指标是永远不会长大的。


为了解决这个问题,目前能够看到的行业方案一个是做侧链,侧链就是说会根据交易的双方或者多方之间的预设信任关系简化他们之间的共识模型,可以让他们直接建立一个支付通道,这就是侧链的整个思路。


分片也是大家可以想到的扩容方向,既然全球公用一个完整的区块链网络,限于区块尺寸和区块时间,能否把网络也分散开,尤其是当全球都参与节点数够多的时候,跨洲际的英特尔网可能会有很多的交易延迟,所我们是否可以在各个节点的本地建一些小的区块链网络,把这个账本存下来,再通过分布式的算法把小的计算网络互相寻找到,融合成一个逻辑上的完整区块链,这是分片的思路。这样的好处是分片和分片之间有一种并行的能力,在每一个分片内部是独立的,就是现在分片方案。


我们目前看一下这个侧链的进展。一个是比特币的,还有一个是以太的,目前这两个项目方案进展都不是很理想,尤其是前期启动了一次,效果不好。


还有为了提高并发量,建立一个单独的通道,既起到了一个简化共识的作用,同时还可以保护一定的隐私,目前的情况是我们之前研发人员用过的HyperLedger等等,以及其他人员也有这些方面的训练。侧链需要编程很多前期预配置,预设定,看起来可以按照你的需求构建一个侧链,但事实上侧链的过程中需要很多有依赖关系的设定,这样从架构上也是不可拓展的,这也是为什么导致现在侧链方案一般进展不是很顺利的原因。


分片也是这样的类型特征,虽然要分成几个子区块链,子链的网络再并行进来,如何分解整个网络的子链也是预设定的,就是设定一个规则做分片。



为什么要用DAG?


另外一个说法DAG是具备自适应能力和动态的编程能力的侧链/分片技术。DAG每一个树的分支构建,由每一个钱包自主并发做父亲节点的选择,钱包和钱包之间具备一定自适应能力,可以自主的构建某些侧链或者分片。回头说一下DAG,Directed Acyclic Graph。它有几个关键点,DAG 是无区块的,使用交易为单位记账,记账颗粒度更细。另外,每一个交易在初期发起的时候有自主权,按照一个规则来选择它的上一个交易作为父亲交易,或者叫做爸爸算法以及最优爸爸算法。这样有一个父亲和儿子的关系的构建,刚好儿子有一个要求就是说必须也用爸爸的哈希值,放到他的单元里面,有点像儿子必须带着父亲的基因往下传递,这样的话这个关系拓展下来就会形成一个有向无环图。每一个钱包发自己的交易都是并行的。


TrustNote设计里有一个概念,这张图不属于某一个节点,而是每一个节点要保存一份本地数据结构的图,如果它发生了一笔交易马上会修改自己保存的图。所有节点并行的修改。


同时我改了手里面的图之后,马上把图的修改部分发给伙伴节点,广播出去。这样节点自行选择父亲,选父亲的时候就要验父亲的有效性。


如果它所引用的父亲之前没有任何一个儿子,那这个父亲实际上是没有被验证过的交易。如果有一个交易已经被验证过了的话,这个交易就会确定一个可验证的状态,这样的话交易由钱包之间并行做验证,这个和比特币有非常大的区别。


在比特币里,没有被旷工放到区块里面的交易都是是无效的,但是DAG里面不一样,每一个钱包是自发按照引用关系来验证之前的交易。


这个里面概括的是,每个钱包实际上是自行确定引用关系,自行验证父亲,这样的话会自然构成一个图形的结构,叫做DAG。这个DAG刚好也是钱包跟钱包的验证所建立的信任网络,其他节点验父亲的时候,等于是给它做了一定的信任背书。


为了防止有人做假帐或者双花,在DAG数据结构之上TrustNote还要做一个排序。根据前面的父子引用关系,实际上已经可以排出半序;我们还要想办法给每一个交易都标定出全序。在排全序的过程中,我们选用算法和共识机制确定DAG图的主干,有了这个主干,没有在这个主干的节点会依据主干的索引规则生成一个完整的排序,当你把这个DAG排出全序来的时候,相当于你手里面拿到的一个逻辑上完整的数据结构,这是DAG最关键数据结构的想法。


当你能够排出一个完整、有顺序的数据结构的时候,可以防止双花了。这张图我们展示的,第八号交易和第十号的交易,当这个第十号交易发生和第八号交易发生的时候,目前这两个交易还没有完全最终确认,但是已经被初始确认了,这个钱包和它的交互钱包都已经能够看到了有交易发生,主链随着这个交易生长也会生长,当生长到这些位置的时候,这个交易会被这个节点做校验,就成为被确认了。因为它先确认了它,后面假如说它们是出自同一个UTXO的交易,则后一个交易被标定为是无效的,这是基本逻辑。



DAG的好处和坏处


DAG的好处和坏处,好处是什么呢?因为记账单位不按区块来记,按交易来记,有交易以后马上可以记,不需要等一个完整区块,这个和比特币有区别,比特币你发生交易也不行,需要等,你要和这十分钟所有交易都要攒在一起完成一个区块写入账本。


最初第一次记帐和校验的时候由各个钱包以P2P的方式验它的相关交易,所以是并行的做验证,刚好符合了P2P网络的潜力,P2P网络就是说尽量马上做决定谁可以加入到这个网络里,而且每个网络一加进来之后,因为网络的节点加入可以增加他的验证交易能力,这叫做可拓展性。随着钱包数量增多,交易数量增多提高了这个并发能力,刚好满足了可拓展性。


交易是由你邻近,互相之间可以看得到的节点去做验证。就是说你选父亲,你一定是选你账本里面已经记录的别人的交易数据,然后你自己去选择,这样的话根据这个网络的远近做非常自然的验证。


假设美国有一群人按照某一个树的分支验证,中国有一群人按照我们的分支做验证,两个人想要达到共识可能比较晚,因为有一个洲际的互联网。很有意思,如果当时间够长,他们两个分支相互当中有某一个节点,可以帮助已经分开了的DAG做互相验证又合并过来了,非常自由有机组成sharding的模式,这个还有分片的思路,也是它的好处。


坏处,这也是为什么当下的DAG,目前其他还有几个项目都用DAG,但是大家对他的安全性有担忧。DAG里面,因为把验证权利交给钱包自己做,当这个世界上没有发生新的交易的时候,倒数第一个交易应该是持续等待被其他节点验证的状态,这需要有一个共识算法的选择问题,但是又不可能指定某些人一定是可信的,这是目前DAG分析到的问题。


通过工作量证明的算法去竞争选择公证节点。挖矿有一个好处,在竞争选择上对未来发生的事情是相对比较公平的,我们再稍微解释一下,POS是什么?就是说我要依据现在钱包里有多少钱来做竞标。工作量证明不是,工作量证明是要依据某一个时间段里面你做到了什么样,所以他有一个时间要素的问题。如果你用工作量证明虽然导致可能挖矿中心化,但是始终有可能或者有机会会影响到接下来的共识结果。


拜占廷则更多像选举性的,就是说谁掌握这个网络节点最多,就会影响大,但是这件事情中本聪本身有一些文章分析,听起来像是一个大多数选择更公平,但是实际上在区块链网络发展过程中,因为每一个节点的成本可能不会太高,这样的话会有一些现实世界当中的有实力的人会很容易控制更多的节点,反过来讲,如果用工作量来证明,他比较难控制更多的工作量,这是他的一个差异。因为工作量是成本绑定的,节点数实际上并不一定是成本绑定,因为你掌握一个投票权的话,实际上每一个节点你是可以用低的成本收买过来,但是很难用低成本收买工作量,这是我们用工作量证明可信节点的确认,或者我们叫做公证节点。


即便被确定为公证节点,也不见得一定是可信的,我们还要通过给公证节点的奖励激励机制,才能够鼓励他做可信的事情,但是实际上不一定可信。同时,因为我们做的工作量证明的过程当中,他只是用来确定这个网络哪些节点可以发出公证交易,并不是确定他具备记账权,所以我们可以把这个共识分为两层,可以单独用一个前置的时间段去选公证节点,上一个轮次的公证节点可以完成这个主链的确定,形成了双层共识机式,一层是确定谁是公证节点,另外公证节点选择完了之后公证节点要和所有的钱包一起协同,用一个共识机制去完成整个网络的共识。


我们选择了公证节点以后,公证节点有权利发出公证交易。他发的这个交易能够验证那些还没有被确认的交易,这样会更加有效率。我们发的这个公证交易最好是工作量奖励交易,他说我现在为了获得奖励就要按照某一个权利约定的时间节点就要发一个公证交易,刚好这个公证交易可以验证上一笔交易,它的公证轮次以及公证交易的时间间隔,就可以确定最坏的情况下某一笔交易最晚被确认的时间,推动这个网络继续往前生长。按照一个约定时间的间隔,周期性的发这个交易,推动DAG的生长。


这是刚刚讲为什么我们选择用DAG,另外DAG才是未来很有可能会解决分布式记帐系统里面扩容问题的,我们也讲了扩容问题非常之迫切,基本上是现在行业里面面临最大的问题。



钱包的建设


为了降低用户使用成本,还要建钱包的多种类型的安全协议。现在的情况是这样,网络前期供应链里面,因为随着它的发展,早期还对移动钱包和微节点没有考虑太多,我们最近发现的问题是这样,因为现在大量用户还在用移动端来做币的转帐,如果大量用户用移动端的话,移动端非常重要。


如果将来有IOT, IOT都带有一个钱包的话,那个小的也有一个客户端的软件,这两个资源非常有限的设备里面,最后可以让他支持区块链,这样的话需要为这两类设备专门做一些考量,设计一个协议,这个协议使得手机里面不需要存完整的帐本,手机面临最大的问题,还不是计算问题,最主要是手机很难存一个完整账本,因为现在完整账本都很大。


要保证有一种协议是没有完整账本,但是同时又能够有安全性的保证,去验证他所发生的交易。比特币这些方面做的蛮好的,比特币提出了一个协议,比特币很遗憾的是块链式的数据结构,即便用手机也无法体验很好,要等很长时间。


我们希望在TrustNote移动端中交易可以很快的完成,尤其是我们菜市场买菜或者做一些需要交互性的转帐。大家都用Imtoken手机客户端转帐,在Imtoken转帐实际并没有直接到以太坊的里面,而是转到节点上然后再去做,这是大家为什么有时候感觉出来,如果Imtoken发一个公告说我的云服务暂停一下,可能在这段时间没有办法做这个转帐了,所以这个也是不理想的。虽然不会偷走你的钱,但是他会阻挡你交易的进行。


以太里面需要轻钱包的协议,和比特币的这个类似。比特币的这个已经可以达到我不存全账本,但是还可以验自己的交易,同时不需要特别依赖某一个中心化的服务,以太目前还不是特别好。


以太是近期刚刚发的一个LES的协议,但是目前用的人不太多。这是当下区块链在手机端面临的形势。EOS,因为它的主链没有完全正式发布。


我们现在需要提早为这个事情思考,TrustNote早期,就有可以支持全帐本的节点,也有支持移动端的可以相对比较安全的轻节点。如果你想要设计一个架构是能够支持某一个节点不保存全帐本的话,最好可以再进一步?是不是可以再让一些更小的节点参与进来,既不需要存账本,甚至一些计算也不需要做,这样可以集成在单片机里,也可以参与到分布式账本的动作和协议上。实际上在解决这个问题时,资源不够的情况下只能找代理,所谓多节点就是想办法让代理协议可以防范中间人攻击,能够保证他是数据可校验的,是安全的。所以我们专门设计这个微钱包的协议,微钱包协议实际上是把物联网的消息和动作,和区块链里面智能合约和记账的动作通过一个安全协议做加密和保证。可以委托超级节点来做物联世界的校验还有物联网数据的读写。


如果把微节点和钱包轻节点加上以后,因为我们刚刚讲我们有一个双层共识,有一个叫做超级节点,还有一个全帐本节点叫做全节点,这样的话我们TrustNote网络将变成四种节点类型的P2P的网络。各自要完成自己角色的动作,看看有没有什么差异。这是当下最适合的,并不会因为没有完全对等,使得网络的分布式或者去中心化特性下降。为什么呢?因为我只要约定超级节点不是被设定或者不是相对不公平的方式选举出来的,这样超级节点相互之间构成的网络也是一个分布式的网络,有他自己的安全和校验。


这个和EOS中大家抢超级节点是有差别的。未来TrustNote挖矿版本上线的话,如果你想做超级节点很简单,你只需要锁定一定的押金就可以参与挖矿,无所谓什么选举和投票。同时有大量PC端可以做全帐本的存储,称为全节点。全节点不参与公证但是有全账本,使得附近的手机节点可以共享存储的账本,相互之间会用SPV类似的协议做数据的传输和校验。同时这个微节点在需要通信的时候可以和超级节点做交互。不只是存储,有一部分计算是由超级节点来帮他代理完成。这样给人感受就是说,超级节点的角色是除了做工作量证明,还要做一个公证节点,同时还要存全帐本。后续超级节点会增加更多的功能。如果让所有节点可以支持一个及时通讯的消息协议,我们可以让超级节点或者全节点增加消息转发能力,还是一个私有交易的转发。


还有可能,假如说我们想要的交易,本来我们现在交易已经达到了秒级,如果还要更快共识过程当中的已经初步确认的状态,这个时间想要更短我们可以让超级节点做更多的功能,超级节点可以做没有确认之间的信用背书,只要第一个确认就认为这个钱可以入帐。超级节点帮他做担保,同时超级节点通过担保和后期的校验没有付款的剔除掉或者弥补掉。我们相当于构成了多种角色同时又具备很好的拓展性的分布式的P2P的网络。



智能合约的设计


智能合约设计里面的考虑,先回顾一下,现在区块链项目里面智能合约是怎么样设计和思考的。

    

前面这个是一个联盟链,虽然是联盟链,但是我放在一起考虑至少在合约部分还是相似的,所以都可以做一个比较。FABRIC,预先约定了节点的权限和角色,可以单独孤立出来某一些节点做合约的背书。他提出了一个架构,是有一个docker容器,可以在这这个Docker某一个运行时的环境还加上某一个语言的SDK,可以限定将来的逻辑机的动作和执行,于是就提出了这样的一个架构。它的特征是什么?可以用多种语言来实现这个合约。同时它也不限定你用什么机器,无非限定了你必须用Docker,实际上你用另外一个虚拟环境替代docker也是可以。


Ethereum的特点是什么,把逻辑机执行动作定位为中间层的语言,根据这个中间层语言又定义了一个solidity语言。如果是全节点都具备这个能力,以太通过虚拟机实现的约定,加上语言的约定确定合约系统的。当在以太这个环境里大家写合约的时候发生了很多安全问题,有一些人做思考,是不是以太的机器定义或者语言定义还不够好,使得大家没有办法在合约签订早期就确定这个合约执行是安全,因为这个solidity是没有变量类型的语言。开发一种语言,可以通过语言限定以及工具帮助合约的开发者,有更加安全的合约实现,签协议的时候可以保证它是安全的,Rchain是这样的。


比特币严格算起来,也是有一定的合约能力,只不过是一个脚本,而且是功能有限的。有人根据比特币开发了一个语言,它的目的就是说我还可以以比特币的账本结构为基础,修改它的UTXO的模型变量,实现一个系统。好处就是说,我比比特币更灵活可拓展,同时又没有以太坊的安全问题。这是我们现在简单做了一个回顾。我们TrustNote的将来合约系统会有自己的一些考虑。


首先我们提出了不要过分强调虚拟机。


虚拟机是什么,有一个计算上的考虑,虚拟机更像是提供一个计算能力和计算环境。但是合约机不是,合约机的这个规范定义我们只是约定他能够执行的动作和运算的能力,这样的话合约机规范里面将来都只发布合约指令和宏指令。


另外,合约机里面目前考虑的是,我约定它只能支持声明式的合约指令,如果我只有这个指令我就知道它将来做什么运算,要达到这样的目的。


所以有一个术语叫做形式化可验证的合约约定。这样的话,既然约定了这个合约机,这个合约机目前没有计算资源配给他,如果想实现这个合约机,可以通过各种虚拟机,加上这个虚拟机里面所包含的环境以及语言来支持合约机。这样有一些好处,把虚拟机和合约机做分离,同时又让开发语言和合约机有一个分离,好处就是程序员不需要学习新的编程语言,可以复用之前相对已经用的比较熟练的编程语言,同时也可以选择用性能非常好的虚拟机。TrustNote的合约系统目前正在准备发布。


简单介绍规划,因为我们集中精力做比特币帐户模型的数据管理或者通证类的数据管理,甚至我们认为其他领域的区块链的应用方向都不是特别现实的,实际上比特币或者以太甚至于分布式帐本真正有效实现的方案,就是通证类的应用。所以我们后续会建一个通证类的云服务平台,主要是覆盖相关应用场景。这个通证可以应用在各种领域,可以运用在物联网,可以运用在社交,可以运用在游戏。


下一步等到我们微节点协议成熟上线以后,可以达到一种效果,各种微小的设备都可以有一个小的钱包在里面。同时,还会考虑去中心化交易的功能,当下我们钱包上线,已经实现去中心化交易的能力,但是想要做成去中心化交易完整的功能,还是比较复杂,最近正在酝酿怎么样做去中心化交易所。我们重点会把这个钱包应用性和可获得的特点做好,后续为了增加更安全的特点,有一些人在转帐支付的时候需要很多软钱包以及硬件钱包,我们还会专门给这个供应链做硬件的钱包。


提问:TrustNote技术有一个优势,是一个高流量、高并发处理交易的优势。当时在EOS系统刚出来时,特别关注这个优势,TrustNote这个项目跟EOS相比呢?

Jeff Zhou:EOS与以太坊相比,在账本数据结构上,我没有发现有什么太大的变化,它的共识算法现在用的DPOS用20几个验证节点做DPOS就比其他项目快一些,但还是一个区块链式的架构。它的设计逻辑是通过尽量加快共识的速度,加大区块能加大并发量。这个思路是错的,区块时间和区块尺寸是有限的,共识速度,速度再快,上一代的区块链并发量也上不来。为什么?是架构的问题,还不是共识时间消耗的问题,DAG架构把同步改成异步才能真正解决问题。EOS的定位主打区块链DApp的操作系统,而区块链是一个去中心化账本技术,不是一个云计算技术。如果有一些项目大肆宣讲用区块链去搞OS或做去中心化计算的计费,要小心,因为在账本架构里套用计算架构,以我目前的经验来看,我认为更多是把一些不成熟的东西拿出来推广。反过来讲,如果底层账本速度上不来,在上面构建再多的云计算能力,也是没有意义的。任何一次写入数据库的操作,都得排队堵死。上面功能做得再漂亮,也不可用。底层去中心化应用,最基础的去中心化数据库,并发能力上不来,搞上面那些应用,写再多逻辑、概念、应用场景,都是理想,和现实还是有很大距离的。

提问:DAG全账本溯源怎么用?

Jeff Zhou:先有半序,半序是钱包完成的,全序是超级节点完成的。就像原来是一个渔网,现在人为拿一个铅笔去画,规定这条路是正道,其他路全部是歪门邪道。这并不表示它会变成强节点,因为这几个节点也是Transaction,超级节点也会发一些自己私人的转帐交易。比如,澳大利亚有一些太平绅士,他自己也要吃喝、交易,老百姓都知道这个人的交易更加诚信一些,所以MainChain自己私人也要转帐吃饭的,只不过因为大家觉得这个人是太平绅士,所以交易容易被大家标定为诚信的。

提问:如果说以太坊是区块链2.0版本或第二代的话,能够肯定明确给我们一个信心说DAG是第三代吗?DAG核心解决的是拥堵的问题?

Jeff Zhou:BlockChain3.0这种提法完全是为了传播营销,我刚才讲DAG那么费劲,还有很多人比较难理解。但说它是3.0,我认为不是,我认为DAG还只是账本技术上的革新而已。解决拥堵问题是3.0里最关键的要素之一,因为这是区块链里目前的痛点问题。除了可用性以外,我认为还有几个痛点问题,比如去中心化存储。光能记账也不行,在平常做应用,比如视频、图片,如果把这种数据也放到账本里,就天下大乱了,因为那个分布式账本的存储都是很贵的,每一个字节都要同步校验的,要再研究出新的架构实现大数据的存储。说白一点,放弃一些共识的要求,但同时保证对数据的溯源能力和校验能力去做去中心化存储。另外一个痛点,是区块链的即时通讯,我指的是消息协议,其实我们已经有点雏形了。我有点赞同以太以前画的一张图,未来应该是账本+即时消息+去中心化存储,才能构建一个DApp的支撑,我觉得那个完成了才能叫3.0。现在的情况是后面两个得依赖账本并发量支撑能力才可以实现。比如即时通讯消息,咱俩一聊,让你等2秒钟都觉得难受,会觉得受不了了。我这边现在问你一个问题,你那边得赶快给我回。但问题来了,你现在说所有的区块链项目发消息,没有任何一个项目有能力说发一条消息1秒钟、2秒钟就能到。怎么办?区块链3.0的实现,我认为还为时尚远,但高可用去中心化账本技术肯定是未来3.0的关键,先把账本部分做好,这是我现在的一个想法。

提问:我作为投资人,不懂技术,相信你们技术肯定是非常优秀的,也是非常信得过的,但是对于币值管理、市场公关TrustNote团队是怎样计划的?

Jeff Zhou:TrustNote类比是秀才,炒币的是强盗,我们一直像一个秀才一样肯定也不行,但是秀才想要变成强盗,也不符合我们价值观,所以我们会找保镖。TrustNote可能也会找币值管理的合作伙伴,但是也会去挑,不会挑强盗,但是会挑保镖。目前要是问我什么想法,我就是这个想法。

提问:关于钱包,可以绑定支付条件,生成智能合约。绑定哪些支付条件?

Jeff Zhou:比如时间条件、多签名,可以看一下Byteball里也有一些Oracle的数据源,汇率,人民币兑美元变成6.4了,也可以自己设,比如钱包里币量低于多少,那个人得给我打点钱了。比如学生跟父母要钱的时候,父母加一个合约,那个钱必须得花到只剩下10元才可以给你打钱。所以极轻、极速以后才能极趣。极轻,我们有很多想法,现在区块链的客户端软件易用性很差,可用性是并发承载能力,易用性是现在要转一笔钱,用以太官方的钱包,我自己觉得无法忍受了,放一段时间要同步一下账本,网速慢的话,要同步五六个小时,七八个小时,其实全是工程师写的软件。我们现在相当于把互联网行业的产品经理一些思路挪到区块链行业。

提问:目前区块链行业主要瓶颈是高并发问题,大家所能接触到的三个解决方案,亦来云、EOS、HPE等,您怎么看?

Jeff Zhou:亦来云目前还没有成熟软件发布,所以谈不上并发量,就看它什么时候把钱包软件开发出来,大家可以用一用。

EOS团队的创始人是以前BitShare的创始人,EOS归根到底还是一个区块链的结构。只要是区块链结构,目前我没想出来方案提高并发,因为就是同步写入,把同步的事情不放弃,永远也并发不了。   

提问:亦来云、EOS都出了新的解决方案,自带侧链,是不是对这个问题的解决更有帮助?

Jeff Zhou:侧链技术是做不成高并发,如果真做成高并发量了,就变成DAG了。不要说EOS和亦来云,就连比特币、RootStock等,做一两年,把钱包发出来,让大家看高转账并发是否顺畅,大家自然就知道了,软件构造给人用的。至于HPB,不管软硬件,计算机架构里首先是逻辑架构,架构是基本基础,现在有好几个环节,是架构上有问题,如果架构解决了,另外其他环节的问题才会暴露出来,比如全球的节点相互之间在交换数据时的网络带宽,以太网做快速计算时间也会有瓶颈,DAG里验证数多了,需要做大量运算。就是说,如果架构和算法上没有平滑扩展能力,想通过硬件去并发量提上来,那个也是不准确的说法。区块链是账本技术,都是小模块,哈希运算、发包流量等,硬件只能干一些小的环节的事情。

从技术角度来看,DAG区块链技术是不同于区块链的一种分布式账本技术,是数字资产界的一次较大的创新。随着以太坊去中心化的概念提出,很多人开始把以太坊称作区块链2.0,而比特币被列为区块链1.0,至于“DAG”技术,是区块链未来3.0的关键元素。基于DAG技术的TrustNote,或将成为2018年区块链行业一匹黑马!

提问:这个钱包是支持哪些币种?

Jeff Zhou:现在支持TrustNote,下一步会支持ETH、BTC、DASH。产品上增加“多币种钱包”功能、“币币交换”、“聊天发币引擎”。

提问:TrustNote的智能合约支持哪些?

Jeff Zhou:在合约规划上,我们参考了开源项目,并且做了很多修改。TrustNote会掌握好一个平衡,不追求像以太那么完备,既浪费资源,又有安全隐患。但也不可能像Byteball这么简单,TrustNote会在描述语言里做一些创新。

提问:关于挖矿,是不是对验证做激励?

Jeff Zhou:对,TrustNote验证也不是没有时间限制的,会按照当时SuperNote筛选,MainChain节点数量有限,用不着那么长时间,在网络架构里,共识节点全部是很弱小的。跟比特币不一样,比特币是记账节点基本像是一个收费站,我们SuperNote加上共识挖矿的节点,更像是一个检察院,你们先干你们的事,然后我去查一查哪些是不合规。比特币是设一个收费站,所有的汽车来了都堵在这儿,再一个一个过。

提问:会不会节点费越来越贵?

Jeff Zhou:现在交易费的定义是按照交易消耗存储的字节数来定的,有一个好处,会把交易费和一个现实当中使用的自然资源量锚定,既不会出现特别离谱的低价,也不会出现特别离谱的高价。换一个角度看,比特币那种一个人花了很多钱就可以快速通过是不合理的?我认为这相当于“大款可以加塞”,比特币就是这样。那么,什么是合理的?就是按照耗费别人的云存储量计费,其实区块链是一个去中心化,很多节点存在账本上,耗费了多少字节存储资源,应该交多少就交多少。

提问:TrustNote并发能达到多少?

Jeff Zhou:理论上是无限的,比如有1万个钱包,每秒过万次非常容易。因为只要任何一个钱包在做一个Transaction,就是一个钱包,而且每个钱包可以做独立的记账,就是这么一个关系。其实在P2P节点里,比如我们四个人是邻居,要做一次交易,如果别人出现交易,我的邻居会把它的交易发给我,我马上就会构建一个我手里的有向无环图版本,那个人手里有一个账本,他构建他的有向无环图版本,这两个版本稍微有点差别,但P2P数据同步时,这两个版本虽然不一样,但各自不冲突。因为我找的是我的分叉,你找的是你的分叉。两个要是不分叉,跑到一个上面,说明两个交易有相关性,互相之间自己就验了,是这么一个逻辑关系。就是交易数越多越快。

提问:TrustNote今后的发展只限于钱包?

Jeff Zhou:在区块链行业里,区块链实质就是钱包。既然是一个完全去中心化的软件体系,压根不存在一个云环境,就是钱包构成了一个网络。

提问:TrustNote是否收费?

Jeff Zhou:区块链交易不收费这件事情是bug,不是优势。免费交易导致区块链出现大量垃圾交易,且容易引起DDoS攻击。IOTA在钱包里做高强度PoW,等于把DAG的优势抛弃掉了,是不科学的。DAG是要让大多数钱包飞快地往前跑,不要让它做无关工作,PoW就是工作量证明,但是这时候Work只是为了double spending检测用的。如果每个钱包都去做PoW,意味着大家为网络上只有0.1%概率发生的double spending,浪费全网节点做PoW,是浪费资源的。

区块链技术正处在蓬勃发展期,各种技术不断与区块链融合,各类场景也在探索如何利用区块链的技术特性,其应用方向已从数据防篡改和价值交换扩展到数字通证和社交等领域。DAG区块链技术有潜力为各行业的经济活动和价值交易带来全新的技术革新与升级,弥补不同交易主体之间的信任鸿沟,通过时间戳、不可逆性、可追溯性等特点,从而降低交易成本。实现具有更强表达力的智能合约,更快的交易确认,更广泛的应用场景,更强的安全性和隐私保护,我想这是我们接下来一起努力的方向。


你可能感兴趣的:(新闻及其他,DAG)