圈里的人已经习惯用区块链来代指分布式账本技术(DLT),也就是我们熟知的去中心化全家桶:去中心化网络,去中心化交易所,去中心化游戏等。实际上,既然去中心化体系可以有各显神通的共识算法,那它也可以有不一样的数据结构。在这一语境下,区块链就只是构成DLT的其中一种数据结构,它如同共识算法中的POW,因最先被采用,而广为人知。今天,我们想介绍DLT可采用的另一种数据结构,DAG,它有个中文名,叫“有向无环图”。
q8 H& h$ S' p; W- y
$ Z: o' h+ H; g1 l+ R1 M" u- t% y3 p
# u# Y9 {) k8 M8 a5 W3 l1 f$ A- H, y0 j什么是DAG
0 N; R* o7 B8 C5 j8 S4 f3 C* J* f J1 e, h; E. h4 L
$ k+ v& E9 l# ]3 ~我们通过一些图直观地感受一下什么是DAG。
) J+ u3 ]1 r J8 p# a8 e6 F
, I$ M' s# H, z3 f6 i( X+ e x
( e+ I1 F' f G) m: [* j! {
' R7 F' a3 B, u$ B! c: X
) S/ s& s' n$ I9 w5 X
8 W; j1 L) F5 ^# P; w( E u- B) ^% Z# |
b/ q% o" i: n- P7 l$ l, w2 J
图14 h* z1 s+ E2 l& L8 _9 z n6 G
% c: F+ `+ ?# U. J7 @* z( t
e! Q0 x# s2 @- f- e先看一种最简单的情况,只有两个单元(unit)的时候。这时,X 要么指向Y,Y要么指向X,这解释了什么是“有向”,即单元是有指向性的,先有X再有Y,先有鸡再有蛋。这时候,读者可能要问了,那这个不就是区块链吗,创始区块开始,一直连下去,直到最后确认块。3 Z; q* q$ _) H8 K; j3 c! V
2 F2 Z: s9 X# J+ _4 l* ?! v) C- W ~$ G5 d+ o
此时,我们祭出图2,上方的是区块链,下方是DAG,可以看出,DAG是允许单元间的多重连接的:单元1可以连接到单元2,也可以连接到单元3;单元3可以被单元1连接,也可以被单元2连接。
* `# Q1 K" r+ L! W, w; [- g" l$ A% Q9 {8 p: d, }, M7 B
/ v/ V) r% V; s8 }* ?
3 l% J4 s ]5 J& ?8 [. `& O- x6 I7 x7 J0 [! B1 |% @0 u9 F( L
3 I& y5 [- y1 ^# r: z! |图22 ?1 f, w. Z5 L& k# b
那么什么是无环呢,子单元不能连回它的父单元,祖父单元,曾祖单元,以此类推。简单来说,就是单元1,连接到单元2,再连接到单元3,单元3不能连回单元1了。就像数数一样,你能从一数到一百,但不能从一百数回到一。你得保证单元是世代传承的,不能出现“返祖现象”,这就叫无环。
. z9 i% ~ q' T5 M# H A
) A: z1 `* s( I% a
! k( Q9 U& z9 w" a+ c3 a7 q不难理解,记账是需要有向无环的。第一,记账是按时间顺序来的,先有交易X,再有交易Y。第二,帐要无限往下记下去,不是记着记着,就又开始记历史上的第一笔交易了。
f7 B. W' }9 p$ x6 Q5 M3 s, O# d
( Z! S% ^/ P* ]3 y0 i$ D+ c
6 t- ^; L8 B, B* a) g相比区块链,DAG有什么优势+ {! A+ p; r$ k9 v, H; ?$ B
# f; R2 e& o' G- E+ n. ~: e; j% }! g" W% }( X
高扩展性) e# L8 P9 ]: l+ h8 p H( V4 ]
7 {7 d/ d b3 Y* j1 ~5 o# L2 ]; h5 x8 G( E, |
扩展性是软件系统的能计算处理多大信息量的衡量指标。相比区块链,DAG这种数据结构具有更高的扩展性。DAG允许单元间的多重连接,那么同一时间,就可以有多个单元被建立并发布到网络中。相反,区块链在一个固定的出块时间中,只能有一个区块被增添到网络中。这就好比多线程和单线程,而多线程的扩展性自然是单线程没有办法比的。实际上,利用P2P网络进行单元增添的DAG,反而会因网络参与者的增加,加快单元的增添速度,从而使系统具备更高的处理速度。这就好比,用Bittorrent下载一段视频,下载同一部视频的人越多,你的下载速度就越快。正是这一特性,使得DAG的扩展性并不亚于当前的中心化信息系统。
! G* r( I/ U! n: t; t A0 Q& F! Z0 } Q; u! U% a, i
4 w% G0 D# w2 ?# s: s9 b s
更去中心化
4 w% @, G" q9 [) a0 ~9 s) V: N S% f. Y, d6 P- Y- T8 {2 n" N; k* l/ x$ n
' q" x8 X& l1 ?+ `那读者朋友可能就会说了,区块链也是利用P2P网络出块的。这点没错,可是区块链在通过共识算法决定谁是下一个出块者后,会将所有交易交给下一出块者进行打包。而打包速度,是受制于出块者的中心化服务器速度的。DAG则因为任何人都可以增添单元进入网络,省去了选举一个中心化服务器进行打包出块这一步骤。因此,DAG也更加去中心化。; E! c- F3 W2 n8 Z
8 g. S2 }$ x: r; Q9 u& f+ Z
3 R- B/ @; U" {
更具可靠性6 M% W5 ^$ h6 J8 r8 e6 F
+ K$ K5 z1 a8 M {. J8 ^ [- Q; @; `
& @6 D5 `) C( k7 X& [
单元间的多重连接,意味着每个单元将被它的多个子单元和多个父单元多重确认。而一个单元被确认越多次,它所包含的数据就越可靠,被恶意篡改的几率越小。区块链则只有后块确认前块这一次确认过程。
; V& ?! E" m% F! {4 ~9 U1 o
5 P" ?1 J+ z# J/ F
& i9 y' ~+ n/ i5 Y/ A, w当前有什么靠谱DAG项目
8 j$ Z4 s2 v" z0 N* Q- R& u& P/ |: q
9 S0 B8 P, G4 ?2 x0 w
3 c \6 Z( p" A# Y7 lIOTA% M: Z8 Q( _! @# v- q
5 Y4 V9 x9 b1 v7 }7 i/ a
0 A7 E2 U& c0 z9 t* D: m( `( ^
IOTA是第一个提出用DAG搭建去中心化网络的项目。因为有“协调者”节点的参与,IOTA并不是彻底去中心化的。不过,它作为这个新领域的先行者,依然值得关注。
, b |3 W# s p s! Z: ]% T' H* K% } a. a7 n6 v* f: ~0 n2 e
2 g) A; B# n$ u. _4 d/ K" Y
Byteball. S9 l. Q. ?4 N. p
5 S. J: G0 d' E3 x9 O2 l# D7 H( U+ y* M' [
中文名,字节雪球。它跟IOTA类似,也有中心化节点用来保证网络的安全性。不过,它支持增添私有或匿名单元,也支持智能合约。值得一提的是,字节雪球的白皮书也很硬核,很适合想对DAG进行深入了解的投资者阅读。9 [5 y' I6 r& w/ g$ @
+ h! L" S4 W" D! I, k
4 x' @( ~9 d4 V6 BHLC(HalalChain)+ y9 p% v' _! W. i4 @. H' ^3 l
! Z* `1 R5 G2 r2 R) V; C; D, F
" @) J& |# j2 |9 o; Q+ |HLC是全球第一条专注服务穆斯林国家及地区的公有链,应用于伊斯兰金融产品及服务、清真产品溯源、天课捐赠、产权与遗产登记、文化教育等领域。基于新型分布式账本DAG(有向无环)为底层技术,在保证安全性和去中心化的前提下实现高频并发交易。先进技术与独特应用场景相结合,以此构建一个跨穆斯林国家的经济生态系统。2 l0 S& t7 A: O
(作者:EVOLAB) |