鉴于有不少小伙伴反映,觉得区块链技术圈乱象横生,鱼龙混杂,导致大家很难去辨识哪些是真正的技术。甚至有些人,打着说技术的名号,其实自己本身都没弄懂弄明白,只是懂个皮毛,就开始拿着各种技术专有名词去唬人。这样的现象,导致想好好学习技术知识的小伙伴们甚至会被混淆和误导,学到和接收到的是错误的信息。小编对于存在的这样的乱象也深感痛心,作为一支来自与清华姚班的公链团队,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最新状态同步。如果你偷懒不同步,那你的交易可能就因为违反了一些规则被无效掉了。为了重新发起这笔交易,你只好再做一顿饭。

在比特币中,矿工负责做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官方交流群

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

  1. Conflux 吐槽君:Hashgraph 是一个真正的企业级去中心化平台吗?

    亲爱的好朋友们: 上期小C吐了一下 IOTA.说实话,刚开始小C还有些忐忑,毕竟是小C出道的第一篇文章,文章内容也可能会引起一些激烈的辩论.结果,有非常多的朋友给了我点赞关注加鸡腿,这让小C非常受宠若 ...

  2. IOTA,物联网区块链?

    任何时候,看到一个新的去中心化平台,第一个问题应该是: 它能解决什么问题? 比特币在过去六年的崛起证明了区块链技术具有现实世界的价值. 然而,这种技术也有一些缺点,使它不能被用作全球通用的加密货币平台 ...

  3. 黑群晖vmm专业版_群晖的ABB应用不错,但必须吐槽群晖 VMM功能,让你看看就是不让你好好用!!!...

    吐槽君今天参加了Synology 2019 新品发布会,J.V.P.XS等系列都有更新,还新增了UC系列,据说很牛X. 但吐槽君家庭和企业都用不到UC,就自动过滤了. 除了新品硬件发布,今天最大的干货 ...

  4. 网景R6400做无线中继服务器,不是推荐,是吐槽!网件路由器 R6400真好,好的连个简单的活你都干不好!...

    吐槽君家里还有个NETGEAR/网件 R6400路由器,号称千兆802.11ac 路由器,照理说应该不差吧. 美国博通800MHz双核处理器,千兆网口,802.11ac无线网络,各种配置都不差吧? 吐 ...

  5. 4G、5G难配物联网 hold不住也得死撑

    物联网是决定未来经济的关键技术.无所不在的万物互联终将成为现实.然而,无所不在的物联网覆盖,并没有那么容易实现. ZigBee/6LoWPAN或IEEE 802.11ah等物联网技术,仅适于短距离物联 ...

  6. 基于ShineBlink物联网开发板和机智云平台开发的“针对短期内宠物无人照顾的智能宠物屋”系统

    正式介绍作品前先说明一下,我是湖南文理学院计算机与电气工程学院的一名大三学生,我叫陈海涛.作品全部内容均为个人创意.个人设计并手工制作,后期会考虑写论文投期刊,So!!严禁抄袭!抄袭必究! 该作品是用 ...

  7. 最常用的 12 个物联网协议和标准

    物联网的数量和覆盖范围正在迅速扩大,据研究报告,2020年物联网连接数首次超过非物联网在线连接数.物联网协议的可用性和扩展,包括 5G 和低功耗广域网,推动并支持了大部分增长. 为什么物联网协议很重要 ...

  8. 版是什么_晴天保保超越版好不好,有什么升级?

    (图片来源:Pixabay) 首发 | 公众号「 吐逗保 」 文 | 逗逗酱 (,,・∀・)ノ゛Hello,大噶好哇~ 给孩子买重疾险,逗逗酱一直以来推荐给大家最多的就是"晴天保保" ...

  9. 产品经理装逼词汇大全

    BRD文档(商业需求文档) 定义:BRD 是英文"Business Requirement Document"的缩写,根据英文直译过来就是"商业需求文档"的意思 ...

  10. 街灯变成了平台,世界将会怎样

    远远的街灯明了, 好像闪着无数的明星. 天上的明星现了, 好像点着无数的街灯. --节选自<天上的街市> 街灯几乎城区最密集的电力基础设施,随着智能城市的兴起,智能街灯开始逐步被采用,如果 ...

最新文章

  1. 用户组管理之删除分组表数据
  2. IntelliJ IDEA的Maven项目在修改时报java.lang.OutOfMemoryError: PermGen space异常
  3. 一周一论文(翻译)——[VLDB 18] Chi:分布式流处理系统下可扩展的、可编程的控制计划模块
  4. Ardino基础教程 20_红外遥控
  5. 深入理解.net服务器控件
  6. Node.js 安装及配置
  7. ES6-11 Symbol、iterator、forOf、typeArray
  8. X-Scan描述及简单教程
  9. WordPress中使主题支持小工具以及添加插件启用函数
  10. AI5天训练-视觉生产技术探究和应用
  11. MongoDB学习笔记—02 MongoDB入门
  12. 跨语言调用模块.TXT
  13. URDGN:Ultra-resolve Face Images by Discriminative Generative Networks
  14. 每日一问 --信源编码的过程?
  15. Androidx介绍及迁移
  16. MyBatis级联一对一与一对多
  17. tsLint环境配置及用法示例
  18. python 判断是否是元音字母
  19. 【docker lnmp】 2、容器mysql 连接问题 getaddrinfo failed
  20. 大数据论文_03_BigTable(个人总结)

热门文章

  1. centos7安装docker笔记
  2. __str__和__repr__
  3. 转载:HTML5及移动端BUG
  4. mysql 双主复制 centos7
  5. javase二维数组笔记
  6. react native 第三方组件react-native-swiper 轮播组件
  7. 2010年的20款游戏
  8. 在ASP.NET中运用JavaScript重定向页面
  9. Django 安装使用
  10. javascript 计算后 无聊的小数点处理