圈里的人已经习惯用区块链来代指分布式账本技术(DLT),也就是我们熟知的去中心化全家桶:去中心化网络,去中心化交易所,去中心化游戏等。实际上,既然去中心化体系可以有各显神通的共识算法,那它也可以有不一样的数据结构。在这一语境下,区块链就只是构成DLT的其中一种数据结构,它如同共识算法中的POW,因最先被采用,而广为人知。今天,我们想介绍DLT可采用的另一种数据结构,DAG,它有个中文名,叫“有向无环图”。
0 R- @1 i4 a& g$ Q Q* v2 V
+ X7 J) Z8 D- {# N2 y+ ^, C( x. J5 t9 j5 a3 j
3 i. w0 Y- J! l: A, w( e- m! P4 S什么是DAG: v- d# t" R$ S; Q( b0 f. m5 s
7 d3 V- P$ V2 Y4 q
X1 y3 l7 R; o我们通过一些图直观地感受一下什么是DAG。( t) w: \# L& j
0 i/ M D7 \! z
8 x+ A( G$ m0 h& x4 c" F; ]
) A& X1 j$ P1 l7 x+ H! r
# C( n( f! h0 v$ f* g
3 k7 a/ q8 S8 x
; M: A o/ [" m5 E. p" z0 O
" f' K+ s5 i5 y$ H6 O; }$ f. }图1
5 O4 p9 c7 w5 W
+ F3 ]1 i/ b8 i8 Z: c# ~; Y& P4 `2 Y
先看一种最简单的情况,只有两个单元(unit)的时候。这时,X 要么指向Y,Y要么指向X,这解释了什么是“有向”,即单元是有指向性的,先有X再有Y,先有鸡再有蛋。这时候,读者可能要问了,那这个不就是区块链吗,创始区块开始,一直连下去,直到最后确认块。
* k8 |: m2 a& N, n% F+ P' }* j* j" C. z8 H4 Z& Q' L( N0 T
( s- y7 ]' T: y; E2 d- K0 T
此时,我们祭出图2,上方的是区块链,下方是DAG,可以看出,DAG是允许单元间的多重连接的:单元1可以连接到单元2,也可以连接到单元3;单元3可以被单元1连接,也可以被单元2连接。 @9 u4 @! P U2 v9 ]7 Y- s
9 ~, M) T+ l3 e# {
1 G R3 \: J) n5 Y
E( {" D) h8 T
8 e, w( h, Y& y$ X m6 F5 x! ^% |/ t
图2
) O$ R2 s# R! l' W4 p& y那么什么是无环呢,子单元不能连回它的父单元,祖父单元,曾祖单元,以此类推。简单来说,就是单元1,连接到单元2,再连接到单元3,单元3不能连回单元1了。就像数数一样,你能从一数到一百,但不能从一百数回到一。你得保证单元是世代传承的,不能出现“返祖现象”,这就叫无环。. p$ b0 Q, t3 {9 ?. O, V
2 o5 q9 R: |1 H" ?* \( [- N# I4 s+ y' Q
不难理解,记账是需要有向无环的。第一,记账是按时间顺序来的,先有交易X,再有交易Y。第二,帐要无限往下记下去,不是记着记着,就又开始记历史上的第一笔交易了。8 O. \7 K5 `# ]
: k$ D4 y* l5 e, Y; d9 S
. r$ Z& Z0 h" K% ^/ }) A相比区块链,DAG有什么优势; f. |, v3 m) j+ t; A3 I
% m6 K/ T+ c; j4 Q0 x1 u& }/ @' ?* u( z6 Z( I3 d+ p$ p6 X
高扩展性
/ W9 C& N, Q% k( [2 g
! n* _, U' U7 G" J
, S0 i, j# l7 z( |: ?+ G# J扩展性是软件系统的能计算处理多大信息量的衡量指标。相比区块链,DAG这种数据结构具有更高的扩展性。DAG允许单元间的多重连接,那么同一时间,就可以有多个单元被建立并发布到网络中。相反,区块链在一个固定的出块时间中,只能有一个区块被增添到网络中。这就好比多线程和单线程,而多线程的扩展性自然是单线程没有办法比的。实际上,利用P2P网络进行单元增添的DAG,反而会因网络参与者的增加,加快单元的增添速度,从而使系统具备更高的处理速度。这就好比,用Bittorrent下载一段视频,下载同一部视频的人越多,你的下载速度就越快。正是这一特性,使得DAG的扩展性并不亚于当前的中心化信息系统。
" {* q( c; H6 _4 q" u. r: y' C) h$ b6 u0 T0 z$ o; C
0 D B- X2 b0 V9 ]% d! ]8 U& t
更去中心化
5 @7 `* U. M7 B( F
+ `5 X( o7 ?. t# Q1 r' ~* f; [6 j" g" b* z. W- P+ \
那读者朋友可能就会说了,区块链也是利用P2P网络出块的。这点没错,可是区块链在通过共识算法决定谁是下一个出块者后,会将所有交易交给下一出块者进行打包。而打包速度,是受制于出块者的中心化服务器速度的。DAG则因为任何人都可以增添单元进入网络,省去了选举一个中心化服务器进行打包出块这一步骤。因此,DAG也更加去中心化。7 W3 y' |" P8 |
- ^* C5 k" k5 D# {/ ~3 C- |; s* A( A2 L' O6 L5 ]
更具可靠性3 `8 `7 Z- W8 P' s3 s) O8 F
: R9 J) L z6 E3 M
8 ~2 i0 P1 w. w& `3 k单元间的多重连接,意味着每个单元将被它的多个子单元和多个父单元多重确认。而一个单元被确认越多次,它所包含的数据就越可靠,被恶意篡改的几率越小。区块链则只有后块确认前块这一次确认过程。! ]; s) r, y3 _- M6 \2 p
, x* _; i( D5 K& Y* P) ^
. o6 ]% m0 Z$ f4 L$ f当前有什么靠谱DAG项目: l& k, E- ~1 q; R9 C8 ]
. s6 n4 O% s: G8 V; }0 v
! y) ]' {% Y- j4 {/ E- l& bIOTA
' D9 `" ]4 Y Q% E! v% Y6 Q) N: u1 ^/ ]0 n4 S- M
6 V) {% [! n( Z& }1 O
IOTA是第一个提出用DAG搭建去中心化网络的项目。因为有“协调者”节点的参与,IOTA并不是彻底去中心化的。不过,它作为这个新领域的先行者,依然值得关注。
: @; L, x u/ M0 @% {
' }9 k9 G# B# @! i# J- c1 ^9 q, C9 ]
Byteball
9 u6 F! V9 _% }% k6 j/ Q7 }
1 k8 p, Q7 g+ V$ \# k/ J* t0 u& x+ Z8 T$ Y2 a4 B3 X9 b- I
中文名,字节雪球。它跟IOTA类似,也有中心化节点用来保证网络的安全性。不过,它支持增添私有或匿名单元,也支持智能合约。值得一提的是,字节雪球的白皮书也很硬核,很适合想对DAG进行深入了解的投资者阅读。$ S+ x' U$ p7 S+ T' B. p
2 i4 i" b& g1 t' j6 o
" m3 J2 |; L3 @: ^4 z' N& XHLC(HalalChain)- l5 G: G; G# k# f
$ z4 n/ V6 V+ F1 J- }7 P# \
R6 R6 L. ]# K5 P6 B& q9 `" W( {HLC是全球第一条专注服务穆斯林国家及地区的公有链,应用于伊斯兰金融产品及服务、清真产品溯源、天课捐赠、产权与遗产登记、文化教育等领域。基于新型分布式账本DAG(有向无环)为底层技术,在保证安全性和去中心化的前提下实现高频并发交易。先进技术与独特应用场景相结合,以此构建一个跨穆斯林国家的经济生态系统。+ l$ |$ j# `) S, E+ u2 J6 m5 {
(作者:EVOLAB) |