※ 引述《MRjk ()》之铭言:
: 做为一个和您一开始就有同样问题的人 说真的我还是没办法被说服
: 或许您能用比较相近的语言在帮我解释一次
: 我看了您在FB的讨论
: 您觉得最大的收获是tangle网络在拓朴的两端可以容纳两笔互为冲突的交易(双花)
: 但我觉得这改变并不会影响我们原先讨论的本质
: 因为当网络拓朴的两端合并以后 势必会取权重的一笔生存 另一笔则被孤立
: 这确实跟Bitcoin的主链不同
: 但ETH即有这uncle block(叔块)的概念
: uncle block仍然是主链的一部分 但uncle block里的交易是不被承认的
: 先复习一下原先的题目
===================================
: =================================
: "在IOTA网络中 没有coordinator的状态下
: 恶意攻击者从一个IoT装置所发出的交易A (经过PoW验证了前两笔交易)
? ? ??????
: 如何能不被恶意攻击者手上的另一个超强硬件所建构出来的双花交易B(也经过了PoW验证
????????
: 了前两笔交易 且还附加了更多交易在其后增加权重)盖过去?"
: =================================
==================================
1. IoT 装置。
大家都觉得所有事情都要在 IoT 装置上跑才是正解。但是 IOTA 不想这样。
(应该说,在 JINN 完成之前,不想要这样)
回头参考这篇文章:https://goo.gl/pckfc2
整件事情,IoT devices 需要亲身参与的部分只有:
签名
其他的事情:建立 bundle, 找 tips, 算 PoW。““通通可以外包””
2. 发出的交易A
建立好 transaction bundle 后,IoT devices 还是要透过 full-node 来 broadcast 他的 transaction。
3. 经过 PoW 验证
PoW 在 IOTA 里面,就是一个 transation (不是一笔 transaction) 要去计算 nonce 而已。
算出特定 nonce 之后,可以让 transaction hash 后面出现多少 9 来符合全网需要的 min weight magnitude.
而 PoW 这件事情只能在 transaction 所有 slot 都填完之后才能够做。
4. 超强硬件
这里就是 IOTA 的算力比拼,也是 IOTA 野心所在。
4.1 超强硬件的能力?
我不知道你所谓的超强硬件强到多少,根据这边的实验:
https://github.com/chenweiii/dcurl
拿 GPU 通算 8 个 PoW 还要 33 秒左右。
4.2 IOTA 的算力比拼
IOTA 的做法下,一个被 confirmed 的交易,在 tangle 中还会持续的被其他
交易给 indirect reference,这里是重点,因为你会认为一个被 confirmed
的交易就这样结束了,感觉他的 weight 就不会再动。实际上是会一直加大
加大上去的。
那攻击者的交易呢?如果全网的普通节点多数存在,当他们看到攻击交易的时候,
就会因为他与帐本不符合,因此不会在 tips selection (MCMC) 的时候选用他,
变成攻击者的交易权重,只能够自己增加,而得不到其他全网算力的支持。
全网算力支持 v.s. 攻击者的超强硬件
这里就是 IOTA 对一个想要超前的 double spending 做的算力比拼。
4.3 IOTA 的野心
回到原标题 “IOTA 如何凑足算力”。
这才是 IOTA 面临的问题,4.2 的说法,很明显就需要持续的算力提供,
持续的 (in)direct 指向被 double spending 的交易,要不然就会被攻击者追过去,对吧?
所以这专案才会推啥 data marketplace,推跟 Bosch,fujitsu 这种公司合作。
透过这种需要常常发送 tx 的东西,来增加 IOTA 的 transaction per second,进而保护整体网络。
你会 argue 外部成本太高,怎么可能为了 IOTA 让 IoT devices 都外接一个 full-node,
或是为了 IOTA 大量部署 full-node。
所以这专案还想做硬件,JINN 这个三进位处理器还有在开发。恩...
: 这题以ETH来说明 就会变成
: 恶意攻击者发送了一个交易A 被主链X区块所确认
: 但攻击者构建了一个双花交易B 用更高的算力包装成X'->Y'->Z'等3个区块
: 原先的X区块变成Y'的uncle block, 资料仍在链上 但A交易是无效的 大家只会承认B
: 但BTC/ETH等为什么不会需要Cordinator来对抗这种51%攻击
: 因为block chain的奖励机制让大家会让主链上的算力高到攻击者很难独自去发起
: 回归到IOTA的问题上来 纵使IOTA网络能让两种双花交易存在拓朴的两端
: 但一当他们接轨之后 权重的选择下还是只会留下一边
对,留下一边。可是对 node 来说有先后之分啊。
假设 A 交易已经在多数普通节点成立,让这些节点的帐本状态改变,收到 B 的时候就被当作 invalid
反之,A, B 交易都还没有成立,B 交易透过 heavy weight 取得共识,而且没有破坏帐本规则的话,
普通节点就会接受 B 交易,改变帐本状态,在看到 A 交易的时候,就会把 A 当作 invalid
最后,B交易先成立,那帐本状态改变,收到 A 就会变成 invalid
: 权重的本质还是POW (我知道是很多交易互相累积啦 不过还是POW)
权重的本质不是 PoW,倒不如说是 PoW 的累积。
: 所以上述问题变成了 只靠诚实的IOT装置
: 所累积的POW是不足以让合流后的权重高于另一边刻意所构筑的
: 无论IOTA再流行 全球IoT装置都加入恐怕也很难保证安全
: (原因前面讨论文章有讲过 贫弱的硬件 只计算交易时少少的运算时间...)
没有要让 IoT 装置自己算的意思。
我用我的 i7-7700 跑 pure-python PoW implemention,15 weight 要跑 10分钟吧。
放到 IoT devices......恩.......有人提到 JINN 吗XD
: 当然您说的(2)POW改交由代理节点运算 或许可以拉近上面的鸿沟
: 但这样整个网络交易本体就变成是代理节点了而非是IOT装置
: IOTA主打的IoT交易特性就不见了
: (感觉就像是味增汤都不放味增与豆腐改放菜头排骨酥用肉燥提味)
: 既然都必须连上代理节点了 那代理节点要run区块链还是tangle网络差别就不大了吧?
野心!数量!IoT!
工厂或是公司或是想要应用 IOTA 技术的人,都势必要架起 full-node 来让
自己的 IoT devices 使用这些技术 (PoE, data transfer...etc)
在目标放在全球 IoT devices 的情况下,就能够获得一定数量的 full-node 来确保帐本,
加上 IoT devices 透过 full-node 送很多的 tx,
如果节点塞车,势必就要引入 swarm node 或是更多的 full-node
透过这种推广方式来保证 IOTA 的安全性。
: ※ 引述《kugwa (苦瓜)》之铭言:
: : 认栽了
: : 真的是跟区块链完全不同的解法
: : 有点疯狂 以至于我之前完全没有往那个方向思考
: : 感谢好多人不厌其烦地提出和我认知完全冲突的观念
: : 太多人就不一一点名了
: : 反正就是之前我一直战的那些人
: : 之前的文我都留着
: : 就让大家笑笑吧
: : 好吧我承认IOTA的解法应该是神技
: : 为什么说是应该呢
: : 因为我还没完全搞懂!
: : 总之一切都在这里了
: : https://www.facebook.com/groups/897485720426082/permalink/926697757504878/