一、名词自解
物联网
万物互联,感知世界的触角。
区块链
狭义:区块的哈希链,分布式(日志)数据库。
广义:数字激励下的分布式 Do whatever you want。
比特币
区块链数字奖励,价值 56,450.00$/每枚 (2021.10.11) 的数字货币。
双花
即双重支付, 声称同时向两个账户转账,但账户自身并没有足够余额。
IOTA
一种开放 源代码的分布式账本,提供物联网上各机器之间通信与交易,无矿工,易扩展,效率高。
DAG
Directed Acyclic Graph,有向无环图,图节点间有向连接,从任一个节点出发无法形成环路。
Tangle
IOTA基于 DAG的图记账结构,该图结构中每个节点代表一个交易数据。
二、IOTA 与 Tangle
区块链开启了分布式记账,其可简单理解为链表结构,链表结构显然无法满足万物互联的IOT设备,自然就想到另一种数据结构 — 图。
2.1 M2M 金融
IOT设备为何需要记账?
来看这样一个栗子,自动售货机大家都用过,客户投币买商品,售货员定期进货补货,顺便把里面的钱拿走。在网络时代,售货机和其他“物”连在一起,形成物联网,这样可以远程查看售货机状态,有没有故障,是不是该补货了,可口和百事哪个卖的好等等。
但是售货机状态还是要人监控,坏了打电话报修,没货了要进货还要找人搬,耗时耗力,还得花钱,能不能让监控者放开那个售货机,让TA自己来?答案是肯定的,但是机器自己没钱进货(维修)。
如果给售货机安排个电子钱包,售货机自动检测状态,缺货了自己买,坏了自己发信号找人修,问题都找直接关联者,关联者可以是人,也可以是物联网上另一个物,这就是最简单的 M2M(Machine to Machine) 金融。
有需求就有实现,IOTA开发了一种基于 DAG图结构的记账方式 —— Tangle(纠缠 )。
2.2 Tangle 结构
下文简单介绍 Tangle的 新节点加入和引入的节点 权重机制,旨在为后文阐述 攻击方式做铺垫,对 Tangle细节感兴趣的小伙伴可以自行阅读 Tangle白皮书。
新节点加入
Tangle是一个有向图,图结构中每个节点代表一个交易数据,别称为 site , 每个 site 包含交易发件人,收件人,金额等信息。每个 site 被确认后将连接到至少2个其他的 site ,这些连接被称为 edge ,edge 用来验证交易。也就是说刚加入的 site 并不会自动验证,而是由后加入的 site 验证。
如下图所示,交易 site(粉色方格 ) 想加入该 tangle ,系统算法会随机选择2个 site ,这两个 site 可称为 tip(绿色方格 )。如果选择的 tip 之一不是有效交易则忽略,然后随机选择一个新的 tip 。如果一切都检查正确,我们的交易 site 就会附加到2个tips ,并要求验证 tips 。验证通过后我们的 site 将连接到 tangle ,并等待以完全相同的方式被新加入的 site 验证。
权重信任
区块链的核心就是群策群力的共识机制,上文也阐述了一个新交易 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 具有较高的累积权重,因为已经被多次验证,但这也为下文将提到的 Large Weight Attack留下隐患。
三、IOTA 安全
3.1 影子链攻击
除了一些哈希算法,实现漏洞等传统安全隐患,IOTA的基础 DAG结构本身就存在一些问题,最明显的是其允许多重并行交易的特征,导致攻击者可能暗中生成一条影子链,并且时不时地将影子链跟主链进行对接以逃避检测算法。
在解决影子链攻击问题上,IOTA使用 MCMC( Markov Chain Monte Carlo ) 算法进行顶点排除。即随机选取一部分 site,从它们开始随机游走,直到达到某个边缘 site,最后统计每个边缘 site 到达的概率。然而 IOTA并 没有在白皮书中给出这个方法的 量化或 数学证明。
3.2 Tangle Large Weight Attack
上文提到,Tangle引入 site 权重的概念来达成全网交易共识,一般权重越大代表交易越可靠。那么如果攻击者增加虚假 site 的权重,这笔虚假交易加入 tangle 确认的主网成为可能。
Large Weight Attack 是什么?
Large Weight Attack 即 权重攻击,(个人感觉 Large 翻译成大厚重都很奇怪,就省略了),顾名思义,就是攻击者通过提高虚假 site ( 比如 双花) 的权重,使其因为权重值大而被确认。
Large Weight Attack 的流程?
理论上 权重攻击的流程并不复杂:
攻击者首先构造合法的交易 site ,并等待该 site 得到确认。
攻击者构造虚假交易 site,比如 双花, 产生一个新的分支。
攻击者通过创建大量的交易 site 确认上一步骤的 双花交易 site 正确,以增加 site 的权重,由此新分支的权重也得以增加。
由于权重较高,Tangle 网络选择包含 双花的分支确认加入,抛弃其他分支。
篇幅有限,对更多细节感兴趣的小伙伴可以参考 IOTA Vulnerability: Large Weight Attack Performed in a Network这篇论文。
临时措施 — Coordinator
该方案使用一个 IOTA基金会控制的节点,也就是 调节者(Coordinator ),其每两分钟会发出一个不包含任何价值的交易 site,称之为 里程碑(milestone ),所有被里程碑的交易都是被确认的,反之就是未被确认。
虽然可以部分解决 权重攻击的影响,但也提高了IOTA基金会的中心化优先权。IOTA声称将在不久的将来会彻底摈弃 Coordinator,将采用什么替代方式让我们拭目以待。
3.3 不可能三角
三角具有稳定性,当我们谈论网络安全时需要 CIA三角的平衡,而在区块链就够中也有可扩展性(Scalability)、去中心化(Decentralization)、安全性(Security)的平衡,一般这三者中只能选择其中两个。就如在 Tangle 结构中通过引入 调节者( Coordinator ) 方案,增加安全性的同时降低了去中心化程度。
结语
区块链与物联网的结合迎来新的机遇,并不仅限于追踪、组网,在更广阔的领域也大有可为,与此同时,初始阶段的诸多安全问题也带来了新的挑战。
随着2021年 元宇宙的火爆,人类加快向数字世界迁徙的脚步,网络安全,或者说赛博空间安全从最早的关乎资源、关乎资产到真正的关乎生命。当我们还感叹攻击医疗设备已经完成从网络到个体的破坏,侵入元宇宙的 雪崩病毒可能已在酝酿。守护安全之路任重道远,希望同仁共勉。