IOTA特性总结
mask2012 opened this issue · comments
IOTA主要特点
1.地址格式、交易格式、哈希算法均采用三进制算法
反面
实际情况是,目前为止三进制CPU仅仅是在科研、实验室阶段
目前IOTA全节点代码全部由JAVA编写,而且需要大量转换,执行效率低,内存占用较高;
2.交易结构采用Tangle(缠结)形式,每个交易引用两个之前的交易,累积的交易越多,前期的交易就越具有可信度
反面
DAG缺乏矿工这个角色来保护账本,因此账本里交易是否不可逆转的安全性很低,通常认为34%的算力可以有能力影响到账本的安全。
因为IOTA整个网络目前的算力极低(通常在1~2TPS左右,一台较好的电脑即可达到),因此目前的IOTA网络的交易确认并不是利用的缠结内在特性,而是利用了“协调器”,协调器工作时,交易由一个特定的地址发出,该地址发出的交易被全网无条件接受,它被固化在IOTA全节点的代码中
因此IOTA目前阶段是一个中心化系统,整个网络的确认都由协调器负责;此外DAG技术在网络交易传播方面并无优势,所有节点仍然需要通过广播接收到所有交易信息,因此IOTA的无限扩展特性与区块链系统放宽区块大小本质上是一样的
3.快照技术(Snapshot),快照技术可以用于减少硬盘占用,但目前 还未正式启用,目前仅在每次代码大幅度改动(相当于硬分叉)时做快照(即在源代码里固化全网所有地址的币数量);
反面
它丢弃了所有交易历史只保留余额,安全性类似于比特币的SPV节点,整个网络如果利用快照技术的节点太多,会影响整体健壮性
4.交易费为0,这是IOTA的最大优点,由于IOTA不依赖于矿工,也不存在矿工,不需要激励,因此交易手续费可以做到0,但这一点存在较大风险,后续会重点提到;
反面
交易费为0将带来巨大的DoS攻击隐患,任何人都可以在任何时刻发送大量交易来降低整个网络的效率
物联网的数据量是巨大的,没有人愿意无偿去部署一个每天增加几十GB甚至几百GB的全节点,这潜在的会导致IOTA网络极度中心化(如果未来真的应用于物联网的话)
5.采用一次性签名技术,由于一次性签名技术每次签名都会泄露一部分私钥,随着签名次数增长,私钥的安全性成指数降低,因此每个地址只能花费一次(注意,私钥不是IOTA钱包的种子,每一个由种子生成的地址都有独立私钥,一个种子可以生成无限数量的私钥);
反面
由于每笔交易只能花一次,导致一笔交易在被网络确认前不可以发出第二笔交易,假如你有1Ti,发出一笔交易处于Pending状态,除了不停的Re-attach一直等到确认外你没有别的办法,你的资金相当于被锁定了
确认信息由协调器发出,如果协调器一关整个网络立即陷入瘫痪状态,目前IOTA协调器执行效率很低,网络的确认速率大约为0.2TPS,其中金额大于0的有效交易占比大约10%,也就是真实网络的确认率仅为0.02TPS(每秒钟交易数)!这就是为什么最近IOTA网络极为拥堵的原因,这完全配不上IOTA原本宣称的无限扩展能力的说法
6.采用类似于Hashcash的技术,每笔交易都需要做一定的PoW才会被网络认可。
反面
PoW类似于比特币系统的挖矿,而挖矿是可以用特殊硬件加速的,IOTA网络的整体算力正比于当前网络的TPS,即便是普通电脑都可以对网络的安全造成巨大的威胁,如果是高达100TPS、1000TPS的特殊硬件,IOTA网络上的交易将没有任何安全性可言(如果没有“协调器”—“Coordinator”,而是依赖于Tangle自身的话)
即便是一个月前已经被网络确认的交易,理论上也可以被特殊硬件发出的大量交易所生成的Sub-tangle(相当于比特币网络里的双花)所否认,因此Tangle网络里的交易的共识是非常弱的(在没有Coordinator情况下)