Re: [閒聊] IOTA真的能實現足夠的算力嗎

看板 DigiCurrency
作者 kugwa (kugwa)
時間 2018-01-17 22:40:59
留言 83則留言 (6推 0噓 77→)

: : ※ 引述《kugwa (kugwa)》之銘言: : : : : 同個系統狀態本來就不會雙花的兩筆交易同時存在 : : : : 但是設想 : : : : A已經被大家承認很久很久了 : : : : A交易的賣方也交貨了 : : : : 這時突然給你來個 B把A給超越 : : : : 大家一致宣告A交易不算數 : : : : 那A交易的賣方不就很幹 拿到的錢沒了 貨也大概拿不回來 : : 這個問題已經回應過了,不會發生這樣的問題。 : : 這種超久的 valid transaction V.S. 新出的爆幹 weight transaction : : 因為超久以前的 valid transaction 已經改變整個帳本的狀況 : (地址總額,對方地址總額等) : : 因此根本不會有收到貨然後又被蓋掉的問題。 怎麼不會有呢 就是會有這樣的問題啊 比特幣的短鏈追上長鏈造成blockchain reorganization 以及我們一直在討論的IOTA攻擊手段(B的累積權重超越A的累積權重) 都是這個狀況呀(雖然說落後很多的情況下追上通常都是惡意去追的) 你所謂的「整個帳本的狀況」 本來就是根據blockchain或Tangle的樣子在解讀的 blockchain的情況中 帳本的狀況就是最長鏈中所有交易一起套用的樣子 blockchain reorganization時 因為長鏈換了一條 帳本會整個被大改動 而Tangle的情況中 A的累積權重比B的還大時 帳本只採計A而忽略B 但是當B的累積權重超越A時 帳本就會改為採計B而忽略A 這種帳本改動一發生 你看到的各種總額就會跟著發生變動 很嚴重的 總之 根本沒有所謂的「某個交易生效一段時間之後就絕對不會被撤銷」的情況 (這應該叫freezed或是finalized) 只要另一方算力夠強 就有辦法撤銷任意的交易 (比特幣拒收落後超過12個高度的block 這個情形先不討論) finalize之所以難以實現 就是因為很多種方式(例如你規定一個交易t時間後就堅決不再撤銷) 最終都會造成全網失去共識 就像我前一篇說的那種案例 -- 對於所有誠實的節點來說 他們當然會傾向於去選機率高的tips 也就是雙花的兩個交易A跟B看誰的累積權重比較大 跟之前一樣假設是A好了 那麼A所在的sub-tangle的tips就比較會被誠實的節點選到 所以如果整個網路誠實的節點的算力比較高 確實可以達成共識 大家都往A所在的sub-tangle發展 但是IOTA根本無法強迫大家運用同一種tip selection algorithm 也就是說 攻擊者的節點明知大家都走A 但他偏偏就要選B這邊的tips 大家也不能拿他怎麼樣 (至於攻擊者如何做到跟大家唱反調 他只要把full node的code改一改就行了) 於是攻擊者就可以運用碾壓大眾的超強算力 一直發交易去壯大B所在的sub-tangle 一旦B的累積權重超過A 所有誠實節點的tip selection algorithm就通通會改成走B這邊了 白皮書提到的splitting attack的解決方案 根本就沒有解決問題好嗎 就像yc0304大說的 只要誠實算力不足以壓制攻擊算力 攻擊者就可以為所欲為 何況一般認為攻擊者只要34%就可以實現攻擊了 比區塊鏈容易許多 能不能麻煩解釋一下 技術上怎麼實現network bound PoW呢 我看MRjk大貼的討論串 Vitalik一開始好像也沒搞懂network bound PoW是什麼東西吧 而且這麼重要的東西 白皮書裡好像沒有提到吧 不知道是不是我沒看仔細
※ 批踢踢實業坊(ptt.cc), 來自: 140.112.232.231
※ 文章網址: https://www.ptt.cc/bbs/DigiCurrency/M.1516200062.A.DE8.html

wusyong: 這篇你可能搞錯tangle中產生共識的方式了,假設A存在網 01/18 12:02

wusyong: 路夠久等同於驗證有效的話是要幾乎之後所有tips都直接或 01/18 12:03

wusyong: 間接驗證它有效,之後B不管它權眾多到找前面的tips都會 01/18 12:03

wusyong: 看到A已經被fully confirmed了 01/18 12:03

lturtsamuel: 樓上 如果用超高算力 使兩個衝突的交易維持差不多的 01/18 12:58

lturtsamuel: 權重呢? 01/18 12:58

lturtsamuel: 那麼由於分散式系統的網路延遲 兩個full node可能會 01/18 13:00

lturtsamuel: 產生不一致 結果就是A電腦覺得A交易被fully confirme 01/18 13:00

lturtsamuel: d B電腦B交易被fully confirmed 01/18 13:00

wusyong: 這樣就是白皮書4.2的splitting attack了 01/18 13:01

wusyong: 要fully confirmed是要整個tangle的tips都直接或間接驗 01/18 13:02

wusyong: 證到你,雙方分出自己的分歧沒結合回來前都仍然是uncnfrm 01/18 13:03

wusyong: 這也是攻擊最大的問題,你只看的到部分的tangle,要如何 01/18 13:04

wusyong: 找出全部對你最有利的利tip分別下手然後又成功接回來不被 01/18 13:05

wusyong: 衝突 01/18 13:07

yc0304: 一旦有人試圖雙花,導致有兩個衝突的節點存在整個tangle 01/18 13:31

yc0304: 上 01/18 13:32

yc0304: 照樓上的說法,這兩個節點就都不可能fully confirmed了 01/18 13:32

lturtsamuel: 應該說如此一來 整個tangle中的所有結點都炸了 XD 01/18 13:34

yc0304: 請問分歧要怎麼結合回來? 01/18 13:34

wusyong: 有兩個衝突的節點存在tangle的話,按照tips的推演會隨機 01/18 13:35

wusyong: 選擇一個交易被驗證,另一個就被當作孤兒遺棄了 01/18 13:36

wusyong: tangle的權重選擇是保持在一定比例的,越後面的tip當然 01/18 13:37

wusyong: 會交錯去驗證前面每個不同unconfirmed的交易 01/18 13:38

yc0304: iota不會去真的遺棄節點吧 01/18 13:41

yc0304: 只是算法選擇會讓權重大的節點越來越大,而不會真正的去 01/18 13:42

yc0304: 將權重小的節點丟棄 01/18 13:42

yc0304: 只要權重小的節點還存在網路,就不可能把分歧結合回來 01/18 13:43

wusyong: 進入tangle的交易是tip,節點是發送他們,MCMC會去隨機 01/18 13:44

lturtsamuel: 如果會遺棄 那攻擊者同樣可以透過splitting attack將 01/18 13:44

lturtsamuel: 兩者維持類似權重 最後A電腦遺棄A交易B電腦遺棄B交易 01/18 13:45

wusyong: 選擇兩筆正常權重的交易去驗證,如果這個tip太老又邊緣是 01/18 13:45

wusyong: 會被孤立的 01/18 13:45

wusyong: 所以白皮書有提到兩條分開來的subtangle是不能無限上綱一 01/18 13:46

yc0304: 被孤立,但它還是存在的不是嗎 01/18 13:46

wusyong: 直長下去的,一定比例後會接回去 01/18 13:47

wusyong: 它存在但unconfirmed而且連接它最後的tip沒人會去驗證了 01/18 13:47

yc0304: 那就不存在之前提到的「被所有tip間接或直接驗證到」了 01/18 13:50

wusyong: 幾乎所有的tip,這些tip通常會平均分布在tangle末端 01/18 13:51

yc0304: 而且也無法說是「接回去」,只是其中一邊會繼續成長,另 01/18 13:51

yc0304: 一邊停滯 01/18 13:51

wusyong: 長得很不尋常或太舊的tip最後是不會被視做合理的tip 01/18 13:52

wusyong: 停滯就是最後tip越來越少最後剩一個然後那小串最後被孤立 01/18 13:53

yc0304: ok,那為什麼不能用高算力在被孤立的那一側拼命增加權重 01/18 13:57

yc0304: ? 01/18 13:57

wusyong: 白皮書4.2有說明了,兩邊維持相同權重的問題,還要考慮 01/18 14:00

wusyong: 節點會平均驗證這兩條,只要稍微一歪就幾乎決定哪邊成長 01/18 14:01

wusyong: 如果你想掌握節點的話,還比區塊鏈更困難 01/18 14:01

yc0304: 但是超過一半算力,還是可以為所欲為吧 01/18 14:02

wusyong: IOTA是network-bound POW,你要掌握的不是只有足夠hashra 01/18 14:03

wusyong: te而已,還有Omnipresence,還有多少比例的Omnipresence 01/18 14:05

wusyong: 正確的完整節點 01/18 14:05

wusyong: 簡單來說要攻擊成功你得能控制網路拓樸的發展,更別說越 01/18 14:06

wusyong: 深越長的tangle需要指數性成長的算力,等你算好tangle也 01/18 14:07

wusyong: 長到很後面了 01/18 14:07

wusyong: 這跟誠實算力無關,隨便一個tip讓兩條不是1/2很快就會讓 01/18 14:09

wusyong: tangle選擇哪一條了 01/18 14:09

yc0304: 為什麼我超過一半算力還控制不了tamgle的發展 01/18 14:10

yc0304: 我要哪裡變長就變長不是嗎 01/18 14:10

wusyong: IOTA是network bound POW,你要考慮的不會只有是network 01/18 14:11

wusyong: hash rate 01/18 14:11

wusyong: http://www.tangleblog.com/2017/07/10/is-double-spendi 01/18 14:12

wusyong: ng-possible-with-iota/ 01/18 14:12

wusyong: 之前有人已經貼過不過在貼一次,你真的要很確定X甚至要比 01/18 14:13

wusyong: 33%還要高 01/18 14:13

wusyong: https://twitter.com/VitalikButerin/status/93244585679 01/18 14:15

wusyong: 9662080 01/18 14:15

wusyong: 這邊David Sonstebo和CFB有向Vatilik說明 01/18 14:16

wusyong: 另外K大似乎對網路平衡有疑問的話可以看看這篇 01/18 14:18

wusyong: goo.gl/H8yAVo 01/18 14:25

wusyong: 這是大家對於共識演算法見解的問題,IOTA不是靠算力而是 01/18 14:26

wusyong: tangle網路在建立共識 01/18 14:26

wusyong: 如果最後講到51%攻擊的話,我想那和區塊鏈所遇到的是一樣 01/18 14:33

wusyong: 的課題了 01/18 14:33

lturtsamuel: 問題就在於 其他貨幣的算力有礦工在保證 IOTA沒有 01/18 15:36

lturtsamuel: 其實這一直是我核心擔憂的一點 01/18 15:36

wusyong: 這的確是蠻有趣的問題,token的基本利益何在,我想這大 01/18 15:40

wusyong: 概是官方朝物聯網方向發展的原因之一 01/18 15:41

wusyong: 不過M2M真的是困難模式,能不能征服真的只有時間能知道了 01/18 15:42

wusyong: 所以Dominik Schiener才說"We will either be a trillio 01/18 15:45

wusyong: n dollar project, or nothing."XD 01/18 15:45

DarkerDuck: 775字 * 7星 = 5425 PCH 07/12 21:30

DarkerDuck: https://tinyurl.com/yyd4sf8k 07/13 02:49

您可能感興趣