圈里的人已经习惯用区块链来代指分布式账本技术(DLT),也就是我们熟知的去中心化全家桶:去中心化网络,去中心化交易所,去中心化游戏等。实际上,既然去中心化体系可以有各显神通的共识算法,那它也可以有不一样的数据结构。在这一语境下,区块链就只是构成DLT的其中一种数据结构,它如同共识算法中的POW,因最先被采用,而广为人知。今天,我们想介绍DLT可采用的另一种数据结构,DAG,它有个中文名,叫“有向无环图”。2 t' F% N% l0 }1 Y
9 {) G K: P2 `, y
0 _7 S, J! r! @) `) P4 { o& c' R6 J: a( r
什么是DAG3 Z( b! x6 ~9 Q. h
0 B5 G4 g5 c! n) E" K: ?5 P. @
% b+ W, m9 s+ U x) E4 N4 T我们通过一些图直观地感受一下什么是DAG。$ I# e# N) A# g% ?0 k
* z/ y9 x. b" ?5 K& w
1 X* e$ I2 I9 P" _! T( g
C; ^+ i# T' Q- n# P
& I" l9 I+ ~4 }3 r d' W" [8 @, G# C7 @4 {8 I6 \& S8 W" n
+ ?- I. a7 `( N) R# R
) j) ]# V7 ?. L$ M7 A图1
4 L/ h8 p& W D8 w- p1 s, V8 w5 w0 @6 Q' R; k0 s
; G) u9 a7 ?3 p* Q: h
先看一种最简单的情况,只有两个单元(unit)的时候。这时,X 要么指向Y,Y要么指向X,这解释了什么是“有向”,即单元是有指向性的,先有X再有Y,先有鸡再有蛋。这时候,读者可能要问了,那这个不就是区块链吗,创始区块开始,一直连下去,直到最后确认块。4 f3 R) _6 h( v7 _" |8 U
+ _( D8 B& q6 t( Z; N- }
7 Y- Y6 s Z- K+ C- Z此时,我们祭出图2,上方的是区块链,下方是DAG,可以看出,DAG是允许单元间的多重连接的:单元1可以连接到单元2,也可以连接到单元3;单元3可以被单元1连接,也可以被单元2连接。
' I, f3 b' k9 y y1 E
8 k3 v: W* C# O' n
' _% a: B" D# A! q! i$ Y& K4 A& T* @
+ Z' @! c7 ^: y2 U0 W0 A7 v
5 c, e+ c* Z5 ~/ }. {- b
4 F D+ q# {7 U7 a! E7 _. V
图2( Y6 v: y0 E' R. Q D" L B s
那么什么是无环呢,子单元不能连回它的父单元,祖父单元,曾祖单元,以此类推。简单来说,就是单元1,连接到单元2,再连接到单元3,单元3不能连回单元1了。就像数数一样,你能从一数到一百,但不能从一百数回到一。你得保证单元是世代传承的,不能出现“返祖现象”,这就叫无环。 U$ c& P8 F" \4 D7 G8 U
, l. f6 |. J. u# X! M% p% C) Q$ V- U- C* w) P4 |0 t3 e
不难理解,记账是需要有向无环的。第一,记账是按时间顺序来的,先有交易X,再有交易Y。第二,帐要无限往下记下去,不是记着记着,就又开始记历史上的第一笔交易了。
2 j- |' y; T$ v9 M' h6 N5 ~+ T3 `/ r" B+ l* e8 ^
% |4 F, u0 g, h' ~" _/ b p
相比区块链,DAG有什么优势
6 R! i; ]: T4 r7 N2 X1 u
' ]# V3 Y0 x; ?9 I
* S% D& P2 S* R1 B! W* i高扩展性6 l# Y/ \5 A! O# M6 W
# C" c: B8 Z9 o+ @8 ^
* Q8 O; i8 A) \+ g9 U) D" F扩展性是软件系统的能计算处理多大信息量的衡量指标。相比区块链,DAG这种数据结构具有更高的扩展性。DAG允许单元间的多重连接,那么同一时间,就可以有多个单元被建立并发布到网络中。相反,区块链在一个固定的出块时间中,只能有一个区块被增添到网络中。这就好比多线程和单线程,而多线程的扩展性自然是单线程没有办法比的。实际上,利用P2P网络进行单元增添的DAG,反而会因网络参与者的增加,加快单元的增添速度,从而使系统具备更高的处理速度。这就好比,用Bittorrent下载一段视频,下载同一部视频的人越多,你的下载速度就越快。正是这一特性,使得DAG的扩展性并不亚于当前的中心化信息系统。
( i( p7 y/ u# s8 R/ J7 J A' [: V* G5 Y/ N9 j
: ^4 P* z) l; o2 F# [更去中心化1 r# H' X8 k! i2 U
& b2 ^1 D2 d- c/ I" A, m
3 |; m& H( [( d, i- w% x那读者朋友可能就会说了,区块链也是利用P2P网络出块的。这点没错,可是区块链在通过共识算法决定谁是下一个出块者后,会将所有交易交给下一出块者进行打包。而打包速度,是受制于出块者的中心化服务器速度的。DAG则因为任何人都可以增添单元进入网络,省去了选举一个中心化服务器进行打包出块这一步骤。因此,DAG也更加去中心化。
. f! ^/ a) K2 `* b" P2 A t: h* e* d) Y1 [$ j
4 T0 n/ \! m: n9 ~更具可靠性( j, o; K1 y5 Z# _+ O8 m
% H3 [$ F Q2 Z2 h
% P; U+ C* q/ t5 w6 k/ y单元间的多重连接,意味着每个单元将被它的多个子单元和多个父单元多重确认。而一个单元被确认越多次,它所包含的数据就越可靠,被恶意篡改的几率越小。区块链则只有后块确认前块这一次确认过程。
: z0 `8 z. e$ n, o9 j3 |# ~
" V2 ` O, y4 n- e; \& t5 `7 Z0 v9 d* F7 L- \7 y2 y. S
当前有什么靠谱DAG项目
" w- s6 u0 f! c* o1 L' ^
9 O9 Q" P6 F4 X& }4 v. b+ N( @7 m7 a5 V" t
IOTA( Z+ k& y- E* H! N! g( }2 t3 v
4 I3 t% E/ K h4 R0 T0 @$ D% Z% x, i
IOTA是第一个提出用DAG搭建去中心化网络的项目。因为有“协调者”节点的参与,IOTA并不是彻底去中心化的。不过,它作为这个新领域的先行者,依然值得关注。
8 u4 Q: @, B% r* N
7 D4 ]7 E' k' B$ o6 n1 r4 v' }( H a
Byteball
9 U7 e0 a. x7 w2 j; q1 Q! q# W9 K3 P# o. @* C* G
1 f/ b8 j9 F8 e5 c中文名,字节雪球。它跟IOTA类似,也有中心化节点用来保证网络的安全性。不过,它支持增添私有或匿名单元,也支持智能合约。值得一提的是,字节雪球的白皮书也很硬核,很适合想对DAG进行深入了解的投资者阅读。0 E- S0 c$ @9 Z, G# x7 g
$ Y4 D) Q0 M5 b- H* c
1 ~0 e6 t1 V. B; o1 m3 W" `3 M
HLC(HalalChain)
( G: U) }; x* j
& L9 c& D g) V% o W1 e O) Z+ w2 q( C+ F! R( w! k1 z- @
HLC是全球第一条专注服务穆斯林国家及地区的公有链,应用于伊斯兰金融产品及服务、清真产品溯源、天课捐赠、产权与遗产登记、文化教育等领域。基于新型分布式账本DAG(有向无环)为底层技术,在保证安全性和去中心化的前提下实现高频并发交易。先进技术与独特应用场景相结合,以此构建一个跨穆斯林国家的经济生态系统。4 S, t) W5 A: @' ]7 u% X% A! ]- E
(作者:EVOLAB) |