IOTA 小白攻略

IOTA 不是传统的区块链结构,而是 DAG(Directed Acyclic Graph,有向无环图)结构。本文以最浅显的语言来解释 IOTA 原理。

IOTA 基本特点

  • 为物联网(Internet of Thing, IoT)设计
  • 交易无需手续费
  • 抗量子
  • 三元逻辑系统(传统电路都是二元逻辑电路)
  • 总量: (3^{33}-1)/2=2,779,530,283,277,761

Tangle

IOTA 的 DAG 结构被称为 Tangle,看起来就像下图

Directed Acyclic Graph (from http://ericsink.com/)

图中的每个点都是一个交易。IOTA 中不再有区块的概念,共识的最小单位是交易。不像比特币只有一条链,这是一个网状结构,会不断往外扩散。

DAG 结构非常适合高并发且小数据交易的 IoT 场景。

交易

在 IOTA 里发起一笔交易,是怎么样的流程呢?答:你需要先找到网络里的两笔交易,验证它们的合法性,然后做一点小小的 PoW(就是付出一些计算),把自己的交易与它们绑定,再广播到网络。

你的交易会被后来的交易以相同的方式验证。如果验证你交易的其他交易越多,则你的交易的确定性越高。当达到一个阈值时,就认为这个交易被确定了(这和比特币 6 个区块确定交易状态的思想一致)

IOTA 把算力作为交易的一部分。只要你想加入这个网络,那必须先成为矿工,做出一点 PoW 贡献。如果想不做贡献吃白食?,不好意思,我们不认可你广播的交易。由于人人都做了 PoW,因此才能做到零交易费。

那坏人故意让非法交易通过验证怎么办?网络里会充满着大量非法交易吗?IOTA 的思想是这样的,节点会计算每个交易的权重值,选择权重高的交易来进行验证,这会有助于增加自己的交易被后来交易验证的可能性。如果你绑定非法交易,那后来的交易则不会选择你的交易来验证。时间一长,这个交易就被网络抛弃了,不再是网络的一部分。

三元逻辑

IOTA 整个网络都用三进制来描述

  • Trit:类比 bit,可能的值有 1 0 -1
  • Tryte:类比 byte,1 个 tryte 由 3 个 trit 组成,能表示 27 个值,用 'a, A-Z' 来表示这些值。

比如 IOTA 的 Seed 是 81 Tryte,Address 是 90 Tryte,都以三进制来描述。

IOTA 使用的哈希函数名为 Curl,是一个三进制算法,由 Keccak (SHA-3) 的发明者设计。Curl 被设计用于 IoT 设备,是世界上第一个三进制哈希算法。

IOTA 团队认为,三进制架构的电路功耗低,适合 IoT 设备,但他们似乎忽视了传统计算机都是基于二进制电路的。如果传统计算机要运行三进制算法,得怎么做?需要先模拟一个三进制电路,然后进行相应的计算。中间加了一层,这效率肯定下降,属于吃力不讨好。

IOTA 基金正在研发 IoT 异步三态处理器 JINN,用于集成到 IoT 设备里。可能这也是团队的商业规划之一(处理器+网络仅此一家,IoT 行业就尽在我等手中了)

抗量子

IOTA 使用的签名算法是 Winternitz one-time signature (W-OTS) ,这是一种后量子签名算法,可以抵御量子攻击。

就如同其名,W-OTS 算法是 one-time 的,即签过一次名后就不能重复使用,否则会有丢钱的风险。你可以一个地址多次打钱,但取一次钱(取钱需要签名)后就不能用了,得换新地址。

W-OTS 的一个缺点是签名长度特别大,这也是抗量子签名普遍的缺点。IOTA 的单个交易编码后有 2673 trytes(大约为 281.96 bytes),但签名占了 81%(2187 trytes)。对于 IoT 设备,这可能是一个很大的挑战。

专栏作者:fjchen

个人简介:我共发表了 1 篇文章,总计被阅读了7,269 次,共获得了 26 个赞。

作者邮箱 作者主页 Ta的文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注