IOTA是一个开源的分布式账户,专注于在物联网上的机器之间提供安全的通信和支付。使用有向无环图(DAG)技术代替传统的区块链,无论交易规模大小,确认时间快,系统可以同时处理的交易数量无限,系统可以轻松扩展,IOTA的交易都是免费的。
IOTA背后的分布式账本结构并不是传统区块链中“链式”的结构,而是一个有向无环图(DAG),IOTA称之为Tangle,中文翻译为“缠结”。在这个Tangle中,每一个节点代表的是一个交易。IOTA里没有区块的概念,也没有挖矿和矿工的概念。这可能是IOTA的最吸引人的亮点了,没有挖矿和矿工就代表没有交易费,币量也是恒定的,而且整个网络的吞吐量(Throughput)也能很高。
- 无手续费 IOTA使用了基于DAG(directed acyclic graph有向无环图)的Tangle(缠结)作为基本的数据结构。IOTA在并没有挖矿和矿工的概念,交易的可靠性是通过交易之间的互相验证而达成的:每一笔后发起的交易,都必须随机直接验证两笔主网的交易,并间接验证有向图中可到达的其他交易,然后才能提交并验证自己的交易。任何人都可能会验证你提交的交易,而你也可能会验证任何人提交的交易,每一次交易的验证都让主网更加健壮,大家互帮互助没人需要为交易支付手续费。
- 硬件要求低 由于IOTA的最初目标是用于物联网,而物联网上的异构设备性能差异极大,IOTA特别强调即使在性能低下的智能设备上也能运行IOTA。
- 无需扩容 而IOTA则把每一笔交易都当做一个区块(其实并没有区块这个概念),反而消除了区块大小的限制。
- 极高的交易量:平行验证 IOTA的DAG数据结构使得多笔交易可以被多个不同的验证者平行验证,解决了BTC/ETH在高并发下网络拥堵的问题。
- 抵抗量子 IOTA使用基于Winternitz签名的Curl算法,而Curl是量子安全的。
- 无需万维网,万物互联 IOTA并不依赖于万维网,想象一下,你家的智能晾衣架需要上网么?除了万维网,IOTA可以在蓝牙、zwave、ZigBee或者Lora的环境下运行。
- 区块链的入口 IOTA甚至算不上是区块链,而只能算作区块链的一个扩展。IOTA的也并不立志于取代BTC/ETH的地位,而是采取合作的态度,希望作为其他电子货币的一个扩展而存在。
在Tangle这个由交易组成的有向无环图里,一个网络节点要发起一笔新的交易时,需要在Tangle中找2笔其他交易去验证,并且将自己新发起的交易指向这两笔交易,整个Tangle就是这样一点一点扩大出去的。正因为这样的设计,整个网络中验证交易的责任从传统的矿工转移到了每个网络的使用者身上——你想要发起一笔交易,就必须帮着一起验证网络中的其他交易。
上图这个例子是截取了Tangle中的一部分(Tangle扩展的方向是从左到右,越往右的交易越新),交易A指向交易B和D,那么A就是直接验证了B和D(A directly verified B and D);A虽然没有直接指向F,但是A到F之间有一条通路(path),那么我们可以说A间接验证了F(A indirectly verified F)。上图中A和C称为2个tip,tip是指还没有任何其他交易直接或者间接指向他们。
一个很明显的目标是,要尽量让新出生的tip能尽快被未来出生的tip确认。
那么整个Trangle可能被攻击的点在于:恶意节点发起很多transaction阻塞网络,或者进一步通过更改整个DAG的形状而达成一些攻击。
上图中,方块右下角的数字被称为权重(weight),这个weight跟PoW所付出的计算量相关。IOTA在验证出块的时候需要做一个PoW计算。方块左上角的数字被称为累计权重(cumulative weight)。
每个交易还有一个分数(score),等于这个交易自己的weight加上所有这个交易直接或者间接验证了的交易的weight的综合。
cumulative weight是一个可变值,从发出交易之后这个值会一直增加,score是一个不可变的值,交易发出之后,它的score就定了。
IOTA官方推荐用一种马尔可夫蒙特卡洛(MCMC)随机游走的方法去选择2个tips,这样能保证整个Tangle良好的发展。这个MCMC的过程是这样的:
- 1.挑选yieldcumulative weight区间,比如270-300之间
- 2.挑选Tangle中N个cumulative weight在这个区间内的交易节点(particles)。这些cumulative weight落在区间内的节点在有向无环图里可以想象成纵向上的一条slice,你可以想象这些particles都处于一个差不多的垂直面上,理论上他们距离整个Tangle最右边边缘的距离也差不多相当。
- 3.这N个节点往右随机游走,两个相邻节点A和B之间的cumulative weight相差越小,那么A游走到B的机率也越大。
- 这N个particles中最先完成游走并到达的2个tips,这2个tips就是你的交易需要去验证的2个交易。
整个系统当然希望新的交易能验证那些tips,而不是去验证那些老的交易。IOTA客户端发起交易的时候,只会选择那些score大于某个特定值的交易去验证,这个特定值与当前tips的数量正相关。tips数量多,这个特定值就大,就越能防止节点去验证老的交易,把注意力放在验证新的交易上。
新的交易如何才算成功确认呢?Finality(最终确认性)。如果我们说某一个交易或者转账在某一个分布式的账本上被“最终确认”,那么这个交易无论发生什么,也无法被回滚和撤销。
其实并不存在“最终确认”这种说法,比如比特币,未来比特币再次分叉了,你的交易可能就不在最长链里。只是一个概率问题,通俗来讲就是被确认的“信心”,在IOTA里,这个“信心”值是可能变高也可能变低的。
信心值 = 当前所有tips中,有多少tips存在一条能联通到你的交易的路径 = 当前有多少tips确认了你的交易
这里可以看出,交易确认时间的长短完全跟确认信心挂钩,只要10%的确认信心的话,一笔交易被对方接受的速度会块很多。比如比特币,只要一个交易确认的话,速度就快很多。
交易确认的信心值可以被攻击者改变,比如攻击者创造新的tips就不确认你的交易,那么你的信心值就越来越低,这结果就类似于区块链分叉了。当然IOTA没有区块链这个说法。
为了防止这种恐怖的事情发生,IOTA团队目前的解决办法是在客户端里写死一个网络节点的地址,这个节点叫coordinator,这个节点每分钟发一次交易,这个交易叫做milestone,直接武断说这个milestone间接确认的交易都是100%的状态。其实就是在所有节点向前走的时候,一个中心组织带路,不要被作恶者带歪了。这个非常好理解,但是问题是中心化的组织在不断带路,跟有一个中央银行一样,本质上没有区别。
IOTA站出来说,这个coordinator协调者的角色只是暂时的,初期出来带带路,等IOTA整体网络的负载上去之后,就会移除coordinator。但如何在去掉coordinator之后,让这个队伍不被作恶者带沟里去,有些交易确认信心降低到类似分叉的程度,那些作恶的交易被确认非常高的信心,IOTA需要在共识机制上解决这个根本问题。
IOTA目前有的一些解释:IOTA整个网络的算力大致等于整个网络的交易吞吐量(Throughput),也就是说加入节点越多,形成新的tips就会越多,主要诚实节点足够多,大家都好好干好自己的事情,不去作恶,那么整个系统是很稳定的。白皮书说,只要作恶节点不掌握1/3以上的算力,那么attack成功的概率会很低。这个说法真的不行啊,才1/3,真的只能寄希望整个网络庞大到任何一个组织都没有能力集合起作恶节点超过整个网络1/3算力。
-
实现物联网资产的证券化(Asset-Backed Securitization,简称ABS) 资产证券化的基础是存在能够产生稳定可预测现金流的基础资产。有了IOTA的不可伪造的DAG数据,就能为资产提供一个可预测的收益,有助于实现对资产的资金流动性的提高。
-
打通SCM(供应链管理,Supply Chain Management)过程中的孤岛 随着全球化分工的日益深化,现代企业的供应链不断延长,出现碎片化、复杂化、地理分散化等特点,给供应链管理带来了很大的挑战。
IOTA能围绕核心企业搭建囊括制造商、供应商、分销商、零售商、物流公司、、终端用户等在内的信任链条,将资金流、信息流、货物流都记录在DAG里,不仅不可篡改,还可简化协同工作。
-
强化RFID/NFC等技术的溯源、追踪和存证的能力 在防伪溯源这个领域,区块链应用的标准做法是将每一个商品的ID注册到链上,使其拥有一个唯一的数字身份,再通过共同维护的账本来记录这个数字身份的所有信息,达到验证效果。用户还可以得到包括产地、材料质地、设计理念、品牌故事在内的丰富信息。
-
推动物联网上下游的价值流动
由物联网中的传感器网络产生的信息本身就具备价值特性,执行机构也能用行为产生价值,这些价值在设备间的流动可以利用区块链的货币特性,催生出具备自主资源产生能力的设备,它们不仅可以为机器服务,更能为人服务。
比如一个家庭机器人,在自己家周围构建了SLAM地图,然后别的机器人到家里来的时候,需要一些地图服务,这时候,机器人之间就会基于IOTA将数据进行交易。这样也会激励更多的机器人去绘制更多的地图,提供一个分布式的地图存储,到哪里都可以随意享用地图服务,当然机器人自己也要出售自己构建的地图服务来维持收支平衡。
物联网行业的确需要专门的“区块链”技术,而且是“去区块链”的技术,也就是既没有区块,又没有链的分布式账本技术。
IOTA的优点:零交易费用,确认速度块,网络越大越安全且交易确认速度越快。
IOTA是一批黑马,因为其Tangle结构,三元逻辑算法,零交易费用,可扩展性,跟物联网紧密结合,本人长期看好IOTA。