圈里的人已经习惯用区块链来代指分布式账本技术(DLT),也就是我们熟知的去中心化全家桶:去中心化网络,去中心化交易所,去中心化游戏等。实际上,既然去中心化体系可以有各显神通的共识算法,那它也可以有不一样的数据结构。在这一语境下,区块链就只是构成DLT的其中一种数据结构,它如同共识算法中的POW,因最先被采用,而广为人知。今天,我们想介绍DLT可采用的另一种数据结构,DAG,它有个中文名,叫“有向无环图”。
3 a1 o- \. f' ?4 |
' ~0 f0 _2 y7 @8 g2 e l/ S
O! F. C0 Q( O* y2 c, O9 \8 `; I* Y- w* e1 c7 ^
什么是DAG; r7 D; S& J: f$ }5 B* O
; }6 t" ?5 d( G7 L0 a
5 F5 W7 ]' W4 a4 S我们通过一些图直观地感受一下什么是DAG。# ~& a7 d, T4 c: @
2 }5 j' p3 `3 \$ X- J7 |
) \0 U; w$ T! N! u( a
! i6 E- g( W8 E; J9 ~* a
& S. {, C/ [0 ]6 q! O9 H I$ D; b4 S) n9 T( O
! r+ g& J) k1 W" ?3 H7 a5 }7 C# F3 s$ e4 N6 i7 [9 m
图1
3 x- K& X% F2 L
& e3 Y& k6 ]3 E( f+ L# {7 V. g5 @9 I: z' {
先看一种最简单的情况,只有两个单元(unit)的时候。这时,X 要么指向Y,Y要么指向X,这解释了什么是“有向”,即单元是有指向性的,先有X再有Y,先有鸡再有蛋。这时候,读者可能要问了,那这个不就是区块链吗,创始区块开始,一直连下去,直到最后确认块。
( e6 s4 d3 |# p4 ?% s0 R
& _; B# i; [+ z5 M
, ~ a* ^! ]% E& s) R此时,我们祭出图2,上方的是区块链,下方是DAG,可以看出,DAG是允许单元间的多重连接的:单元1可以连接到单元2,也可以连接到单元3;单元3可以被单元1连接,也可以被单元2连接。
7 j/ p% q) J/ ]$ X0 ` o$ T
/ M7 h! @; D5 _1 |& Y+ j( e8 F& I
) F7 u) M) W! d8 u. B
! V* Y2 b* C/ E0 [' }9 z
/ C* C! N* |! g& S! R
8 X& X4 q$ J- j! }) @图2
7 S4 v ~# T5 D0 r! {3 ]/ W那么什么是无环呢,子单元不能连回它的父单元,祖父单元,曾祖单元,以此类推。简单来说,就是单元1,连接到单元2,再连接到单元3,单元3不能连回单元1了。就像数数一样,你能从一数到一百,但不能从一百数回到一。你得保证单元是世代传承的,不能出现“返祖现象”,这就叫无环。
* h3 s8 Y* H {$ G2 H* ?
# {0 E0 a8 A! t' p2 d
. [$ |- a' [$ b6 x0 i6 R不难理解,记账是需要有向无环的。第一,记账是按时间顺序来的,先有交易X,再有交易Y。第二,帐要无限往下记下去,不是记着记着,就又开始记历史上的第一笔交易了。5 w% L5 F6 k5 @5 R9 L
/ R, v3 \7 N6 e6 u
" L) m' J! f( `7 x- d2 t* `相比区块链,DAG有什么优势: a0 V5 n; J- A8 |
* J0 ]" S/ I8 p. g
6 U# v! Y6 e4 u- y* b高扩展性4 Y! u1 ]* r6 F4 o" K, n8 p% }
) ~/ [1 K d- c) q W3 B, D8 I5 E7 B9 b2 _% r' t3 p
扩展性是软件系统的能计算处理多大信息量的衡量指标。相比区块链,DAG这种数据结构具有更高的扩展性。DAG允许单元间的多重连接,那么同一时间,就可以有多个单元被建立并发布到网络中。相反,区块链在一个固定的出块时间中,只能有一个区块被增添到网络中。这就好比多线程和单线程,而多线程的扩展性自然是单线程没有办法比的。实际上,利用P2P网络进行单元增添的DAG,反而会因网络参与者的增加,加快单元的增添速度,从而使系统具备更高的处理速度。这就好比,用Bittorrent下载一段视频,下载同一部视频的人越多,你的下载速度就越快。正是这一特性,使得DAG的扩展性并不亚于当前的中心化信息系统。
# B7 z W9 j; Q9 W* q) [0 L' O2 t2 y$ U+ e
' M5 Z7 U/ f$ x2 l$ T
更去中心化
$ X ~( W( t1 s, Z7 f; E0 e
' v6 l& ?+ e) T3 C$ l
& p( s7 v% {6 A8 [7 F% D* n那读者朋友可能就会说了,区块链也是利用P2P网络出块的。这点没错,可是区块链在通过共识算法决定谁是下一个出块者后,会将所有交易交给下一出块者进行打包。而打包速度,是受制于出块者的中心化服务器速度的。DAG则因为任何人都可以增添单元进入网络,省去了选举一个中心化服务器进行打包出块这一步骤。因此,DAG也更加去中心化。, E7 O' ?/ J% U9 U4 D( I1 n
. Q' a! K- L! l5 Z+ q# c1 }) E7 j) z0 J% E6 U- l* _
更具可靠性! N( L# |8 ?3 l/ a5 P3 f2 q3 ?6 u1 `
& E& [* w$ P9 j4 V/ Z( ~& q* L$ ]/ I! y9 S6 F6 t
单元间的多重连接,意味着每个单元将被它的多个子单元和多个父单元多重确认。而一个单元被确认越多次,它所包含的数据就越可靠,被恶意篡改的几率越小。区块链则只有后块确认前块这一次确认过程。
* Z; T# { Y# `% ]
* G& n4 W* c E6 m4 y$ I& U3 N5 b: U5 m( K7 a
当前有什么靠谱DAG项目
. j$ n1 M4 h! {6 v- ]- K3 p+ |) w( G' l [7 P1 M8 O; A+ H
' c! z0 N4 o8 }
IOTA8 q; N/ t' @- [; V+ @' ?6 X
1 n+ }3 e, d4 l4 S0 `+ ?
$ t# {/ |0 c7 q6 |( h; j
IOTA是第一个提出用DAG搭建去中心化网络的项目。因为有“协调者”节点的参与,IOTA并不是彻底去中心化的。不过,它作为这个新领域的先行者,依然值得关注。" X/ |- @/ b) F* u
' s. b1 V4 W/ [ f8 s1 P. g2 ?$ j V" I2 l/ Q& a
Byteball
9 p2 s+ m! L- G; k* @ o6 B7 ?1 D$ X/ s3 I8 x9 t
- W% M2 z/ l( ?1 W" N( b/ f# o7 j! m8 U中文名,字节雪球。它跟IOTA类似,也有中心化节点用来保证网络的安全性。不过,它支持增添私有或匿名单元,也支持智能合约。值得一提的是,字节雪球的白皮书也很硬核,很适合想对DAG进行深入了解的投资者阅读。* c: _- e3 F7 c/ m" X" E/ v( t; p
1 p J( }: ?3 N& k* Y' P
8 H$ l3 o6 V) P4 |" F1 i# H
HLC(HalalChain)! s& ?/ v. v! E. K. ^
1 k1 p3 I) Z+ X1 c Z$ T5 t
t& Z" }- e8 ]0 E3 P9 C$ u
HLC是全球第一条专注服务穆斯林国家及地区的公有链,应用于伊斯兰金融产品及服务、清真产品溯源、天课捐赠、产权与遗产登记、文化教育等领域。基于新型分布式账本DAG(有向无环)为底层技术,在保证安全性和去中心化的前提下实现高频并发交易。先进技术与独特应用场景相结合,以此构建一个跨穆斯林国家的经济生态系统。+ r: o/ r+ J- N* C' G
(作者:EVOLAB) |