※ 引述《grapherd (NULL)》之铭言:
:
: ※ 引述《MRjk ()》之铭言:
: : 首先非常感谢您提供的几个连结
: : 其实我之前也就已有加入"IOTA 爱好者中文社群"的FB社团
: : 刚也再重新看过每一篇您所指引的连结
: : 我觉得首先让我们讨论单纯一点 抛弃掉3进位 hash function等其他问题
: : 回归到这讨论串最一开始原po的问题
: : "在IOTA网络中 没有coordinator的状态下
: : 恶意攻击者从一个IoT装置所发出的交易A (经过PoW验证了前两笔交易)
: : 如何能不被恶意攻击者手上的另一个超强硬件所建构出来的双花交易B(也经过了PoW验证
: : 了前两笔交易 且还附加了更多交易在其后增加权重)盖过去?"
:
: 你的问题......感觉问错了?
:
: 你所给的题目定义的状况下,这个超强硬件所构建出来的双花交易B
:
: 才是整体网络所同意的交易啊。
:
:
:
: 当下当然两笔双花出来的时候会是双花,
:
: (Bitcoin 也会有类似的状况,假设一次出两块,里面包含双花交易的话)
:
: 但是等时间过去,
:
: 其他的节点经过 MCMC 在挑选 tips 的时候,
:
: 就会
:
: 这时后,A交易就会被当作是 invalid 或是 double spending
:
: 孤立在那边啊。
同个系统状态本来就不会双花的两笔交易同时存在
但是设想
A已经被大家承认很久很久了
A交易的卖方也交货了
这时突然给你来个 B把A给超越
大家一致宣告A交易不算数
那A交易的卖方不就很干 拿到的钱没了 货也大概拿不回来
这也是比特币的交易被收进block之后 最好等6个confirmations再当真的原因
因为这时候被翻盘的机率就小很多很多了
: 这也不会啊,当 A 交易已经被认同,节点内部的帐册就会被改动了。后来出现的 B 交易只会被当作 invalid (假设 double spending,或是透支账本) ,或是另外一笔新的交易 (假设创新交易)。
“当 A 交易已经被认同”
你要怎么规定 什么情况下去认同?
IOTA这种靠Coordinator发出Milestone的可不算哦
因为这是靠Coordinator一人决定的
为什么怎样才算认同这件事很重要呢
因为 让整个网络所有人都认同A交易 这件事本来就超级难
只要有那么一瞬间 有一部分的人认同A 有一部份的人还没认同A
然后这时候有人把B广播出来
认同A的那一票人直接拒绝B
而刚刚还没认同A的人把B收下来 最后还好死不死去认同B
(可能B被一部分的人串的比较长)
这时网络就整个意见分歧了 而且再也无法转回意见一致
导致这种灾难的关键原因 就是你说的那种认同
你那种认同会强硬的认定某个交易是合法的
然后贸然排除跟他产生双花的其他交易
结果就是有机会发生我上面说的情况 全网失去共识
这也是我觉得区块链是神解的原因
他处理互相冲突的区块(e.g. 一个区块含有A 另一个区块含有B)的做法也差不多
就是不会排除任意一方 然后大家讲好最长链的交易才算数
但由于有激励机制 最长链受到算力保护
使得交易被撤销的机会小很多
一般人看起来
区块链可能就只是实现了一直以来难以达成的分布式网络中的信任的一项技术而已
但是他诞生的背后
其实有非常非常多复杂的情况
都被开发团队考虑过了
可能是之前没想到的漏洞 任何攻击手段 任何可能导致的问题 之类的
这些情况被开发团队反复想到烂掉
想破头才出现了最终版本
也就是比特币
所以我觉得区块链的厉害之处
大概只有亲自仔细咀嚼过各种课题:
“区块链的这个部份为什么要用这种作法?”
“如果不这样做的话会怎么样吗?”
才能更了解想出这东西的人到底有多天才