Login
欢迎来到未来世界

您现在的位置是: 首页 > 计算机 > 区块链

区块链

10分钟看懂曾飙涨千倍却暗藏风险的IOTA和它的DAG

区块链 加入收藏
当前大家对于10分钟看懂曾飙涨千倍却暗藏风险的IOTA和它的DAG都是颇为感兴趣的,那么小编也是在网络上收集了一些相关信息以便大家阅读。大白导读:上周六推送“警报!一大波DAG公链正在接近!”,介绍了不用区块来记录数据的一类公链,在用真金白银投资这类项目之前,有必要先花十分钟深入了解。本文作者:汤强,横跨中英文世界的区块链观察家。2017年9月7日,麻省理工学院(MIT)
当前大家对于10分钟看懂曾飙涨千倍却暗藏风险的IOTA和它的DAG都是颇为感兴趣的,那么小编也是在网络上收集了一些相关信息以便大家阅读。

大白导读:上周六推送“警报!一大波DAG公链正在接近!”,介绍了不用区块来记录数据的一类公链,在用真金白银投资这类项目之前,有必要先花十分钟深入了解。

本文作者:汤强,横跨中英文世界的区块链观察家。

2017年9月7日,麻省理工学院(MIT)发表公开信:数字货币IOTA存在严重漏洞,2个月前MIT私信过IOTA团队,希望他们改代码。

但IOTA团队没有理会,最终MIT选择把漏洞公之于众。

这个漏洞究竟是什么?一切,要从IOTA的数据结构DAG说起。

一、什么是DAG?DAG:Directed Acyclic Graph,中文意为“有向无环图”。

有向无环图是一种存储数据的方式。

“有向”指所有数据顺着同一方向存储:“无环”指数据结构间不构成循环。

像条毛线织的围巾,可以一直编下去。

图1 DAG 有向无环图(缠结 Tangle)你可以这样理解:区块链是每个区块记多笔交易,而DAG是每个区块存一笔交易,所以它们的本质相同。

在IOTA白皮书里,把结扎在一起的交易称为缠结(Tangle),如图1。

你可能会奇怪,这些交易为什么要连线、标箭头?因为使用者每发起一笔交易,必须验证之前的两笔交易。

这很像让一个孤儿自己选择养父母。

DAG是孤儿的世界,每笔交易天生是孤儿,但养父母不能随便乱选,他们必须根正苗红,否则孤儿自己就不会被下一代选为父母,不被选择意味着从此消失。

如果一笔交易不被后来的交易所验证,它就会变成真正的孤儿,从此在账本里失去合法性。

缠结图的本质上是订在一起的账本,而交易发起者的验证就是订书钉,可他们用什么方式验证交易?答案是我们熟悉的工作量证明:POW交易发起者自己选择两笔合法交易,花2秒钟找出一个随机数,让“随机数+信息”的哈希值符合系统要求。

验证所需的工作量与前手交易权重成正比,交易权重相当于验证难度,难度越高验证时间越长。

IOTA中,权重是以3为底的指数增长:3的1次方、3的2次方、3的3次方……被验证次数越多的交易权重越大。

所以,如果你担心验证完两笔正确交易却没人来验证你,那这种担心是多余的,因为验证新鲜交易更容易,如果验证靠前的陈旧交易,工作量会指数级地翻上去:本来2秒钟能验证完的交易,现在要花2小时,何必?另外,你可能会问,DAG下为什么不能只验证一笔交易,必须是两笔或两笔以上?因为如果只往前验证一笔,网络会被大算力操控。

算力强者很容易抬高交易权重,拉长尾巴,以堵死后面的验证通路,让随后的诚实交易不得不屈从大算力:可验太多交易又会耗时过长。

所以,验两笔能兼顾安全和效率。

于是,发起者一边提交自己的交易,一边验证别人的交易,以此编织着一个去中心化网络。

注意:这个网络不是缠结图,缠结图里的点是交易记录,而网络指参与交易的所有节点。

可是DAG下会不会发生双重支付呢?会。

二、DAG下如何保证账本安全?假如我转你价值100万元的IOTA,你非常高兴,确认后把100万元货物交给我,但此时我心生歹念。

我靠算力发起攻击,用一笔权重更大的交易验证合法交易之前的交易。

图2 大权重攻击只要超过主体诚实的DAG,随后的交易都会接在我的DAG后面生长,这样我就赖掉之前的交易,白白从你手里拿走100万元的货。

关键问题是,我得汇聚多少算力才能实现双重支付?需要全网34%的算力。

IOTA团队说,网络还没成熟,所以先找个协管员看场子,这名协管员就是一台名叫Coordinator的服务器。

所有交易是否合法,暂时全由这位协管员拍板,拍板后告诉其他节点,该验证哪些交易。

官方说,2018年会撤下协管员,这也意味着,目前IOTA暂时并非一个去中心化的网络。

可如何能确保账本安全,中心化并非是不可行的方案。

影响账本安全的另一个因素是数字签名,因为攻击者无法使用他们没有的私钥签出和你一样的数字签名,而保障这件事的是哈希算法,它具有一个特征:哈希不同文本能得出不同结果。

如果哈希不同文本出现同样的结果,这种情况称为“碰撞”。

MIT报告指出:IOTA使用了自己开发的哈希算法curl,但是curl算法的哈希值极易发生碰撞,于是就能伪造数字签名。

IOTA的DAG是靠后手保护前手,一旦攻击者成功伪造数字签名,后手挑不出伪造者的错,非法交易就能大摇大摆地通过验证,这意味着别人用其他私钥也能撬走你账户里的钱。

现在IOTA有协管员保护,但如果撤下协管员,签名能否会被仿冒,就完全得寄希望于攻击者没有哈希出和你一样的签名。

你可能认为,有协管员的情况下这不会成为一个问题,因为协管员会公正地验证所有交易,至少它能取消不合法交易,但事情并非这么简单。

因为协管员自己也有私钥,一旦泄露,造成的结果将比服务器电源插座被拔还要严重,因为此时持有私钥者具备改动任意交易的技术可能,这就是集中管账的风险。

现在有协管员看家,技术上的确能过滤恶意,可IOTA的最终目标终究是脱离协管员、全网自治,除了面临伪造数字签名的问题,还要面临一道难题:34%攻击。

防止这种攻击的一个办法是招募矿工,但由于IOTA无手续费,所有没有矿工会响应,与此同时,IOTA还面临着拒绝服务攻击的可能,就像不收物业费的小区,靠业主自治很难扫清不法份子,甚至扫不净地上的落叶。

包括IOTA团队在内,暂时没有人给出解决方案。

当然,让人垂泪的棘手问题还不止这些。

三、用户私钥问题本段与DAG无关,但由于采用DAG的加密货币不多,而IOTA又是持有范围较大的币种,所以写下这段,仅作安全提示。

10分钟看懂曾飙涨千倍却暗藏风险的IOTA和它的DAG的信息就聊到这里吧,感谢你花时间阅读本站内容,更多关于10分钟看懂曾飙涨千倍却暗藏风险的IOTA和它的DAG的信息别忘了在本站进行查找喔。
图集详情底部广告位