区块链开启了分布式记账的探索之路,熟悉数据结构的小伙伴都知道,简单理解区块链就是个链表结构,那么有没有其他的数据结构也适合记账?比如说 — 图。
图结构记账先放一放,先从物联网说起。
物联网(IOT,Internet of things),顾名思义,就是把物连在一起的形成网,当然使用的是网络,不是真的用线。物联网经常和5G人工智能大数据区块链卟啦卟啦...等等耳朵听出老茧的名词一起出现,但一时可能想不到和记账有啥关系,物和物也有交易吗,听起来有点刺激。
我们来看这样一个栗子,自动售货机大家都用过,刚开始就是个单机,客户投币买商品,售货员定期进货补货,顺便把里面的钱拿走。但毕竟咱是网络时代,不联网都不好意思叫“机器”,于是把售货机和其他机这些“物”连在一起,形成了——物联网。当然物联网可以连上TA的大哥互联网,这样可以远程查看售货机状态,有没有故障,是不是该补货了,可口和百事哪个卖的好等等,美滋滋。但是售货机状态还是要人监控,坏了打电话报修,没货了要进货还要找人搬,耗时耗力,还得花钱,能不能让监控者放开那个售货机,让TA自己来?答案是肯定的,但是机器自己没钱进货(维修),不过区块链运用之前。
试想一下,给售货机安排个电子钱包,售货机自动检测状态,缺货了自己买,坏了自己发信号找人修,问题都找直接关联者,关联者可以是人,也可以是物联网上另一个物,因为硬气了,毕竟电子钱包里有钱,这就是 M2M(Machine to Machine)金融。有了金融活动自然就需要记账,终于进入正题,介绍物联网的按“图”索骥记账法。
这里提及的是IOTA使用的基于DAG的Tangle结构,下面逐一解释这些名词。
2015年,David Sonstebo,Sergey Ivancheglo,Dominik Schiener 和 dr. Serguei Popov 共同创立了IOTA,本质是一种开放源代码 Github 的分布式账本。
IOTA有一个本地代币 MIOTA,但是也可以使用其他加密货币来衡量价值。IOTA主要提供物联网上各机器之间通信与交易,由于并没有利用传统区块链方式记账,没有挖矿,也就不会创造额外的加密货币,这也消除了非自愿的通胀,其使用了基于DAG(有向无环图)的技术,该技术称为Tangle(纠缠)。
DAG(Directed Acyclic Graph,有向无环图),就是上文提及的“图”方案记账法的基础。有向无环图,顾名思义,这是个图的结构,图节点之间的联系有方向,从任一个节点出发按照联系的方向走是走不回来的,即无法形成环。基于DAG的区块链项目很多,比如 Byteball、NANO(XRB)、ITC、TrustNote、Mixin、HashGraph和Algorand等等,而IOTA使用的Tangle结构不仅颇有代表性,还具备一定优势。
下面简单阐述Tangle(纠缠)结构怎样实现交易。
Tangle是一个有向图,图结构中每个节点代表一个交易数据,别称为site, 每个site包含交易发件人,收件人,金额等信息。每个site被确认后将连接到至少2个其他的site,这些连接被称为edge,edge用来验证交易。也就是说刚加入的site并不会自动验证,由谁来验证呢,由后加入的site,即想把自己的site提交给该tangle就得验证系统随机选出的两个site作为入场券,还是比较合理的。
如下图所示,我们的交易site(粉色方格)想加入到该tangle中,系统算法会随机选择2个site,这两个site可称为tip(绿色方格)。如果选择的tip之一不是有效交易则忽略,然后随机选择一个新的tip。如果一切都检查正确,我们的交易site就会附加到2个tips,并要求验证tips。验证通过后我们的site将连接到tangle,并等待以完全相同的方式被新加入的site验证。
当然这里指示粗略描述加入tangle的过程,tip的选择,如何验证tip,tip未通过验证,怎样避免双花等诸多细节由于涉及专业领域并未提及,有兴趣的小伙伴可以阅读 Tangle白皮书。
区块链的核心就是群策群力的共识机制,上文也阐述了一个新交易site想加入tangle要验证两个site(tip),但是你一人验证结果不能服众,万一验错了呢,那就大家一起来,然后把这个site被验证通过的次数累加转换作为该site的——权重。很显然,权重越大代表tangle中对该site的验证通过率越高,一般情况下也越可信。权重机制还有效解决了双重支付产生的分叉,即A发起两个site分别向B和C转账,但是A的资金只够发起一笔交易,于是确认哪笔就成了问题。在设置了权重之后,通过在Tangle游走会发现一个分支将比另一个分支权重大,而较轻权重的分支将被放弃。
每个site都会有初始的自权重,可以是1、3、6、9等(3的n次幂),如下图所示,假设每个site的初始权重为1,site中心较大数字就是累计权重,一般较早的site具有较高的累积权重,因为已经被多次验证。
所谓的区块链的不可能三角包括去中心化、效率和安全性。在一个区块链系统中,三个元素此消彼长,不能同时满足最高要求,好的区块链系统会在其中找到一个何时的平衡点。
作为一个基于DAG的记账结构,Tangle有其高效易扩展等诸多优势,这些会在下文与传统区块链对比提及,但是也有许多问题,如果只简单按照上述方案安全性上会有很大隐患。
由于DAG结构允许多重并行交易,理论上来说,如果用戶要掌握足够的散列能力(Hashing Power)就可能实现双重支付(Double Spending)和网络分支,该隐患被称为“影子链”攻击。尤其在Tangle网络初期,site的正确性有位重要,所以IOTA退而求其次,选择降低一部分去中心话的程度以弥补其安全性问题,采用了一个临时的中心化Coordinator机制。
该方案使用一个IOTA基金会控制的节点,也就是调节者(Coordinator),其每两分钟会发出一个不包含任何价值的交易site,称之为里程碑(milestone),所有被里程碑的交易都是被确认的,反之就是未被确认。虽然可以部分解决“影子链”的影响,但也提高了IOTA基金会的中心化优先权。
对DAG安全问题感兴趣的小伙伴可以参考 IOTA Vulnerability: Large Weight Attack Performed in a Network 这篇论文。
最后,来看看与传统区块链相比,Tangle有哪些优缺点。
基于DAG结构的记账模式Tangle有其效率高易扩展的优势,在M2M等物联网领域颇具潜力。与此同时,DAG仍然存在一些缺陷和问题,并不能取代传统区块链的地位。
时至今日,区块链的概念早已不是连接区块的链那么简单,而是数字激励下的分布式 do whatever you like,早点投身其中,下一个爆款模式由你设计!