以太坊的dag
1. HLC为什么要用DAG作为底层技术相比其他以太坊和比特币底层技术,其优势是什么
因为DAG在去中心化和可扩展性等方面可以找到一个好的平衡呀,这也遵循了传统的区块链价值观。
2. 什么是DAG,DAG有发展前途吗
DAG(Directed acyclic graph),有向无环图,是计算机领域一个常用的数据结构,因为独特的拓扑结构所带来的一些特性,经常被用到处理动态规划,导航中寻求最短路径,数据压缩等场景中。从15年开始,区块链概念被单拎出来,这之前区块链还只是比特币技术里的一个数据结构,中本聪白皮书里把block和chain连一起的时候也只是a chain of blocks 。随着以太坊去中心化计算机的概念提出来,很多人开始把以太坊称作区块链2.0,而比特币被归到了区块链1.0。至于区块链3.0,市场上为了抢夺区块链3.0的冠名权打的不可开交,没准会是DAG。
3. 以太坊和以太经典的区别
关于区块链的可变性。
ETH,假如大部分人同意修改链条也就是可变性,那么就可以修改区块链记录和合约。
ETC,区块链记录和合约不可修改,也就是不可篡改性。
下面是关于两种方法的利弊。
可变性的好处是人们可以适时地改变以做出正确的决定,因此,修改规范比找漏洞更实用。
不可修改性是人们不管当时有多聪明,但也不可能会不出错,因此,应对此方案出现问题的时候,最好是通过现有的法律框架来寻找和解决漏洞。
关于发展的不同
ETH,不管是有意安排或者从诞生就如此,区块链核心决策都是在社区的参与下由以太坊基金会制定并大部分由它开发。
ETC,区块链的决策主要是通过三个松散的,有协作关系的团队在社区参与下得到反馈而决定的。
在任何情况下,任何人都可以为两种区块链提出改进建议,这正是开源之好处,也是很常见的,你会发现,这两条链的开发人员通过Github和Reddit来相互沟通,我希望为了实现共同目标,提高沟通和交流的频率。
关于兼容性
目前,这两种区块链都相互兼容,ETH写的合约,或应用程序,可以在ETC上应用,反之亦然。
ETH,专注于eWASM,致力于为越来越多的开发者提供平台,而对于合约安全性的问题是次要的,例如:Viper。
ETC,专注于让开发者创造出更安全的合约,例如:Viper,IOHK研究,代价是消耗潜在的开发者人数。
很明显,这两条链都可以互相接纳,不管它们的意愿是否相同,我的看法是,开发人员的数量并不一定与产品的质量挂钩。
关于交易速度
ETH,平均25秒,升级之后会缩短。
ETC,平均14秒,升级之后维持在10-14秒,根据ECIP-1010 和 ECIP-1036协议。
关于区块容量
ETH,随着ETH日交易量逐渐达到5百万,区块容量日渐饱和,这种情况跟最近比特币的交易费用问题类似,这个问题可以通过对区块扩容得到解决,通过增加默认的燃料限制。
ETC,目前区块容量还有很大空间,随着越来越多的人接受ETC,区块容量也会随着增加,跟ETH一样。
关于社区
ETH,主要在Reddit上讨论
ETC,主要在Slack上讨论
关于货币政策
ETH,计划供应稳步增长,导致ETH区块链在生命周期里平均有3%的通货膨胀。
ETC,2025年之前,通货膨胀达到3%,届时总供应量将达到2亿ETC,之后会通货紧缩。
关于交易量的地区分布
ETH,中国占20%,南韩25%,美国25%。
ETC,中国占50%,南韩25%,美国10%。
关于证券
ETH,目前投资者没有交易证券的选择权,最近ETH的一个ETF,交易型开放式指数基金,产品被监管层否定了。
ETC,拥有ETC交易信托基金,该基金允许投资者拥有ETC,而不用拥有这个资产本身。
4. 以太坊的核心概念
基于比特币网络的核心思想,以太坊项目提出了许多创新的技术概念,包括智能合约,基于账户的交易,以太币和燃料等。
5. 为什么要用DAG作为底层技术相比别的以太坊和比特币底层技术,其优势是什么
DAG区块链与传统区块链工作机制不同之处在于,后者需要矿工完成工作量证明(PoW)来执行每一笔交易,而DAG区块链能摆脱区块链的限制来完成这样的操作。相反的是,在DAG区块链中一笔交易接着另外一笔,这意味着一笔交易能够对下一笔交易提供证明,由此一直排序下去。这些交易之间的连接就是DAG,就像区块通过哈希值来向整条区块链提供它们的名字一样。
在传统块链式区块链中,每笔交易要花费不少时间,而对于DAG区块链来说,交易时间将变得微不足道
6. 什么是DAG区块链技术
DAG全称是“有向无环图”,没有区块概念,不是把所有数据打包成区块,再用区块链接区块,而是每个用户都可以提交一个数据单元,这个数据单元里可以有很多东西,比如交易、消息等等。数据单元间通过引用关系链接起来,从而形成具有半序关系的DAG(有向无环图)。DAG的特点是把数据单元的写入操作异步化,大量的钱包客户端可以自主异步地把交易数据写入DAG,从而可以支持极大的并发量和极高的速度。同时,使用DAG技术的TrustNote还支持声明式智能合约,声明式的智能合约要表达的意思是可以直接按照用户想要的结果去写、去描述,以很简单的语言,让大家都能看懂的语言去描述他要干的事情。
截止到2017年年底,“高流量应用”越来越多,除了主流电商平台外,还有直播平台、P2P理财、今日头条、陌陌等崭露头角,如果“高流量应用”与DAG区块链技术结合,将会给行业带来哪些变革呢?除区块链自身的特点去中心化、分布式账本、不可篡改之外,DAG区块链技术不但可以支持高并发,结合双层共识机制,使用工作量证明共识算法,还能够防止“双花”问题。
那么,DAG如何支持高并发的呢?第一,数据不像比特币和以太坊一样强同步,而是弱同步,允许节点在同一时刻数据不一样,数据可以有一些微小的差别。第二,可以通过数据单元之间的引用来完成交易的确认,就是后面发生的单元去引用前面的单元,这样不需要我们把数据传给矿工,整个过程都是由自己去完成的,这个过程很快。DAG是解决高并发比较优美的方法,比起之前的闪电网络,还有其他一些方面,DAG有其先天优势。
再来看看DAG是如何防止“双花”?在有向图里如果能选出一个MainChain,这个时候会发现所有图里面的节点都可以用一种方法来给它做排序,把这个序号连接起来在一排,这张图将会变成跟区块链一样的序列结构,就是排完序的节点,而且每个节点是一个交易,而不是一个区块。所以,确定了主链,通过主链,可以形成全序。最后达到的结局就是在某一个逻辑状态里,交易还是被排序了,这是DAG最关键核心的部分。
“高流量应用”是随着节点数和交易数的增加平滑扩展,当这个节点数超过1亿或交易数超过并发100万时,DAG的特性刚好是交易越多越快,节点越多越快。
7. 有谁知道能解释一下有向无环图(DAG)么怎么用程序做出来,及怎么应用到经济学实证上
我们说区块链目前还不成熟,有各种各样的问题,比如说处理速度慢、手续费高昂、存在安全隐患等等,这些都是用户最直观的体验,体验不是太好。区块链还有一个问题,那就是高并发问题。
高并发问题是怎么回事呢,我们简单说一下。高并发是计算机领域的问题,简单来讲,高并发问题就是系统无法顺利同时运行多个任务。
很多任务同时运行,一大堆用户涌进来,系统承受不住这么多的任务,会出现高并发问题,你的系统就卡住了,就好比春运时候,12306系统总是卡住,有可能就是高并发问题造成的。
传统互联网尚且存在高并发问题,区块链网络自然也存在这个问题,毕竟区块链的成熟程度比起传统互联网,还有很大的差距。但是,如果没有安全、可靠和高效的公链,整个区块链产业的发展都将受到严重制约,应用落地也是空谈。
在这种背景下,DAG 技术就被提出来了,DAG 的全称是“Directed Acyclic Graph”,中文翻译为“有向无环图”。
DAG有向无环图是怎么回事呢,它到底能起到什么作用呢?我们下面解释一下。
一、DAG:一个新型的数据结构
DAG,中文名字叫“有向无环图”,从字面意思看,“有向"就是说它是有方向的,
“无环”就是说它是没有环路的、不能形成闭环的。所以,DAG其实是一种新型的数据结构,这个数据结构是有方向的,同时又是不能形成闭环的。
传统区块来讲,我们总是以“区块”为单位,一个区块里往往包含了多笔交易信息。而在DAG中,没有区块的概念,而是以“单元”为单位,每个单元记录的是单个用户的交易,组成的单元不是区块,而是一笔笔的交易,这样一来,可以省去打包出块的时间。
简单来说,区块链和DAG有向无环图最大的区别就是:区块链是一个接一个的区块来存储和验证交易的分布式账本,而DAG则是把每笔交易都看成一个区块,每一笔交易都可以链接到多个先前的交易来进行验证。
二、DAG 的工作原理
传统区块链上,就拿比特币来讲,它是单链式的结构,区块与区块之间按照时间戳的先后顺序排列开来(如图一),数据记录在一条主链上。用不太恰当的比喻来讲,这个
“单链式”结构是一条一字排列的链。
区块链只有一条单链,打包出块就无法并发执行。新的区块会加入到原先的最长链之上,所有节点都以最长链为准,继续按照时间戳的顺序无限蔓延下去。而对于DAG来讲,每个新加入的单元,不仅只加入到最长链的一个单元,还要加入到之前所有的单元(如图二)。
举个例子:假设我发布了一个新的交易,此时DAG结构已经有2个有效的交易单元,那么我的交易单元会主动同时链接到前面的2个之中,去验证并确认,直到链接到创世单元,而且,上一个单元的哈希会包含到自己的单元里面。
换句话说,你要想进行一笔交易,就必须要验证前面的交易,具体验证几个交易,根据不同的规则来进行。这种验证手段,使得DAG可以异步并发的写入很多交易,并最终构成一种拓扑的树状结构,极大地提高扩展性。
依据DAG有向无环图,每一笔交易都直接参与了维护全网。当交易发起后,直接广播全网,跳过矿工打包区块阶段,这样就省去了打包交易出块的时间,提升了区块链处理交易的效率。
随着时间递增,所有交易的区块链相互连接,形成图状结构,如果要更改数据,那就不仅仅是几个区块的问题了,而是整个区块图的数据更改。DAG这个模式相比来说,要进行的复杂度更高,更难以被更改。
总结一下,DAG作为一种新型的去中心化数据结构,它属于广义区块链的一种,具备去中心化的属性,但是二者的不同之处在于:
区块链组成单元是Block(区块),DAG组成单元是TX(交易)。
区块链是单线程,DAG是多线程。
区块链所有交易记录记在同一个区块中,DAG每笔交易单独记录在每笔交易中。
区块链需要矿工,DAG不需要矿工。
三、 DAG 的代表:IOTA
DAG当前的代表项目,最知名的无疑就是 IOTA。可以说,正是因为IOTA这个币种在 2017年下半年冲进市值排行第四位,才使人们真正认识到了它的底层技术:DAG有向无环图。
IOTA在DAG有向无环图的基础上提出了“缠结”概念,在IOTA里面,没有区块的概念,共识的最小单位是交易。每一个交易都会引用过去的两条交易记录哈希,这样前一交易会证明过去两条交易的合法性,间接证明之前所有交易的合法性。这样一来, 就不再需要传统区块链中的矿工这样少量节点来验证交易、打包区块,从而提升效率,节省交易费用。
四、 DAG 的现状
尽管理论上来讲,DAG有向无环图能够弥补传统区块链的一些弊端,但是目前并不成熟,应用到数字货币领域的时间也比较短,还比较年轻 。
它没有像比特币那般经过长达10年的时间来验证整个系统的安全性,也没有像以太坊那般实现了广泛的应用场景。不过,现在有些声音提出要采用“传统区块链+DAG”的数据结构,但是还没有非常突出的案例,这里就不多说了。
总结一下,本节我们介绍了区块链的衍生技术:DAG有向无环图,这是一种全新的数据结构,可以对区块链处理交易的效率、并发力达到显著的提升。