Conflux吐槽君:IOTA物联网电磁炉-让PoW的耗电没有遗憾

鉴于有很多小伙伴反映,以为区块链技术圈乱象横生,鱼龙混杂,致使你们很难去辨识哪些是真正的技术。甚至有些人,打着说技术的名号,其实本身自己都没弄懂弄明白,只是懂个皮毛,就开始拿着各类技术专有名词去唬人。这样的现象,致使想好好学习技术知识的小伙伴们甚至会被混淆和误导,学到和接收到的是错误的信息。小编对于存在的这样的乱象也深感痛心,做为一支来自与清华姚班的公链团队,Conflux的小伙伴们,决定来帮助真正想学习技术的你们!推出《吐槽君小C》专栏,小C会用最直接,最犀利的言语来道出区块链项目技术的优点劣势,真正讲清楚技术,讲清楚技术之间的区别,让你们对技术和整个行业有更深入的了解认知,本文就是Conflux吐槽君第一期~

一个荒唐的故事

几年前,打车平台激烈大战的时候,有这样一家创业公司横空出世,号称实现了零打车费,从根本上解决了人们出行中的痛点。而实现的方式是,让用户本身买辆车,而后本身给本身当司机。让服务需求方本身给本身提供服务,从而节省了服务费。这一想法让投资人很是惊讶,而后将创业者打出门去。安全

上面这个故事是小C我编的。但在区块链这个圈子里,却真的有这样一个公链项目,凭借着区块链的技术认知门槛,编概念讲故事,号称解决了区块链+物联网的痛点。这个项目在区块链泡沫最高的时候,一度登上了市值榜TOP10。这就是小C今天的要和你们讲的项目:IOTA。微信

IOTA是个啥?

首先,IOTA是一个使用DAG帐本结构的区块链系统。(注:DAG,Directed Acyclic Graph,中文全称“有向无环图”,所谓DAG结构,就是让每一个区块或交易引用多个区块或交易做为父亲。这样全部的区块或交易之间的父子关系构成一个有向图。每一个区块或交易必须引用比本身早的交易,所以,这些区块或交易的父子关系不可能出现循环。所以,这个结构被称为有向无环图) 它的帐本数据结构叫作Tangle,翻译成中文就是“纠缠,混乱”的意思。没错,这个名字很是贴切。由于小C从研究IOTA的第一天开始,就被IOTA技术上各类奇葩不靠谱的方案绕晕了。网络

IOTA的项目愿景很是美好:它经过无区块链,无交易费,无限可扩展,解决了物联网场景中各类痛点。这简直是从新定义了区块链啊。可是,若是深扒IOTA的技术原理,你会发现IOTA实现方案很是不靠谱。有多不靠谱呢?比对着excel喊“二百五,求和”还不靠谱。数据结构

IOTA到底怎么不靠谱

小C先来讲说这个无限可扩展。在IOTA原始的设定中,全部的交易构成一个 DAG。任何人(或物联网设备)想发起交易,只须要引用其余两个交易就能够了。没有矿工,没有区块,没有矿工赚交易费,你发交易的速度有多快,IOTA的TPS就有多高。只要好人的交易总数足够多,它就是安全的。性能

这简直太awesome了,攻击一个区块链系统历来没有像攻击IOTA那样简单。不须要屯币,不须要买矿机,我只要搞一台电脑不停地,每分每秒不停地发交易,让个人交易占据全网的50%以上,我就攻击成功了。学习

IOTA 大概也意识到了这个问题(被你们抨击到不得不意识到这个问题)。因而IOTA后面改了,说每笔交易必须算一个 PoW,来防止女巫攻击带来的双花问题的。纳尼?说好的无限可扩展呢?区块链

有了PoW的IOTA真是妙趣横生啊。要知道,IOTA应用场景是物联网设备,物联网设备跑PoW真是天才的想法啊。所谓的物联网设备,就包括如今最火的智能家居,好比智能插座,智能音箱,智能冰箱等。那什么样的物联网设备能够把PoW的优点发挥到淋漓尽致呢?机智的小编我,立刻想到了物联网智能电磁炉!我简直火烧眉毛想买一个 IOTA 物联网智能电磁炉,每次打开电磁炉的时候,它就开始进行PoW运算,发出的热量也能够加热食品。当你的晚饭作好了,一笔 IOTA交易也就发出去了。优化

不只如此,这个IOTA电磁炉还能提升烹饪的安全系数。它经过占满你家网络的带宽,让你上不了网,杜绝你在烹饪的时候由于刷微信刷微博把房子点着。由于在IOTA中,发送每笔交易时,须要选择两笔交易做为父亲。这个要求看似简单,但你须要保证:这两笔交易的历史中没有非法交易,没有冲突的交易。这须要同步大量的历史,验证历史交易的正确性,处理冲突交易,而且保持与IOTA的DAG最新状态同步。若是你偷懒不一样步,那你的交易可能就由于违反了一些规则被无效掉了。为了从新发起这笔交易,你只好再作一顿饭。spa

在比特币中,矿工负责作PoW运算,负责同步、验证网络交易,并处理冲突,用户向矿工付交易费。IOTA从新定义了区块链,消灭了交易费,取而代之的是这些事情都得用户本身来作。当比特币的用户坐在餐桌上吃烤鸭的时候,IOTA的用户还蹲在后厨亲自养鸭子。小C认为,IOTA所谓的无交易费,本质上就是用从商品经济回到天然经济,这是倒退,不是创新。翻译

固然,因为这个实在太不合理,因而IOTA的社区就有了弥补的方案。有一个叫 IOTA PoWer的服务,它容许用户付一笔钱,将本身的交易PoW计算等任务外包。但是小C我仔细一想,这不就是用户发出一笔交易,而后付钱让矿工给我打包进区块吗?这个区块很特别,只能放一笔交易而已。因而可知,IOTA所谓的无区块链,不过是自欺欺人的宣传点罢了。

对于上面荒诞的故事,IOTA的拥护者可能会不服,他们认为IOTA的PoW与比特币的PoW目的是不同的,IOTA的PoW只是为了减小网络中的垃圾交易,不会给用户形成负担。那就让小C来带着你们,具体算一算IOTA 中PoW 的难度怎么设比较合理。

首先,咱们要算一下IOTA网络最高能跑到多少个TPS?若是IOTA每秒产生10000笔交易,网络带宽的局限性致使IOTA没法保证DAG帐本在全网的同步。若是帐本始终没法及时同步,那么不一样的节点就可能在不一样的分叉上越走越远,今后分道扬镳,共识再也不。因此 IOTA的网络中,每秒 10000 笔交易,不能再多了。

而后,咱们要算一下IOTA的全网算力达到多少 TH/s 才算安全?全网算力达到多少 TH/s,一个普通的家用电脑,才能在一顿饭的时间里(1小时)发出一笔交易?一个Intel Core 2 Duo的算力大概是2.5MHash/s, 1小时内能够尝试9G次Hash尝试。9G次Hash尝试发出一笔交易,目前 IOTA主网的吞吐率只有5TPS,若是坏人有>45GHash/s的算力,那么他们就能够每秒产生>5笔交易,就能够在交易数量上占据主导,从而进行51%算力攻击。即便达到了10000 TPS,90THash/s依然能够进行51%算力攻击。 90THash/s是个什么概念呢?一个蚂蚁S9矿机的算力是13.5THash/s,七台蚂蚁矿机的算力就能够超过 90THash/s。

哪怕普通用户算1小时才能发起一笔交易,七台S9蚂蚁矿机就能完成对IOTA的双花攻击。IOTA面临着一个选择:去让用户忍受更长的等待时间,仍是让攻破IOTA的门槛更低?

IOTA选哪一个?IOTA哪一个都不选,IOTA选择中心化!

为了解决上述矛盾,IOTA网络中要额外使用一个中心化的Coordinator来按期的验证DAG和交易。这使得IOTA实际上变成了一个中心化的系统。IOTA声称,将来会取消这个中心化的 Coordinator。然而,基于上面的计算,即便网络带宽增长100倍,即便用户愿意忍受1小时才能发一笔交易,700台S9矿机依然能对IOTA发起双花攻击。与之相对应的是,比特币的全网算力大约是(50 EHash/s),至关于4000000台S9矿机。

给IOTA的建议

小C认为,摆在IOTA面前两条路,要么在中心化的道路上继续走下去,要么积极推广PoW外包方案。让专门的矿工来处理交易打包、PoW挖矿等事宜,让用户为矿工付费。摒弃“无交易费、无区块链、无限扩展”等这些不负责任的言辞

可是即便IOTA“改过自新”,接受了小C的建议,IOTA本质上仍是一个1个区块只能包1笔交易的区块DAG。它违背了系统设计中最最通用的一个常识性的优化思想--batching,就是批量处理。这意味着元数据带来的开销会显著增长,同时会带来不少系统实现上的性能挑战。好比,当区块链系统的吞吐率达到每秒几千笔交易的时候,网络带宽一般会成为瓶颈。而交易就是区块链网络中主要须要传输的数据。若是每笔交易都附带许多DAG相关的元数据(例如对其它DAG结点的引用),那么对网络带宽的压力就会大大增长。另外,维护交易粒度的DAG也会大大增长本地计算的复杂度。IOTA的DAG中须要对每一个交易结点维护一个累计权重,也就是全部直接或间接引用了该交易的交易个数。当一个新的交易被加入到DAG的尾部,全部它可以直接或间接引用到的交易的累计权重都要须要更新,这个复杂度是和交易的个数成正比的 。假设系统的吞吐率是1000TPS,那么系统从刚开始运行到1小时后,DAG中的交易个数就会达到360万。一天以后就会达到8600万。以后每笔新加入的交易都会带来接近1亿次的权重更新,并且这个复杂度会愈来愈大。

小C有话说

咱们须要认清几个事实。吞吐率有限,是由于网络带宽有限。PoW的难度高,是为了不垂手可得地被 51% 攻击。交易费的存在,让专职矿工来解决普通用户的需求。一个区块容纳多个交易的设计,提升了运行的效率。若是看不到这些背后的原理,却盲目地去掉限速,去掉交易费,去掉区块,而后用一个漏洞百出的底层技术,去设计产品方案,去讲一个所谓天方夜谭的故事,这样只会断送这个项目的将来。

(注:若是代币是增发的,通胀本质上就是持币者向矿工付服务费。)


欢迎关注咱们的微信公众号:Conflux中文社区(Conflux-Chain)

添加微信群管理员 Confluxgroup 回复“加群”加入 Conflux官方交流群

相关文章
相关标签/搜索