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

作者: kugwa (kugwa)   2018-01-23 00:49:23
※ 引述《MRjk ()》之銘言:
: 做為一個和您一開始就有同樣問題的人 說真的我還是沒辦法被說服
: 或許您能用比較相近的語言在幫我解釋一次
: 我看了您在FB的討論
: 您覺得最大的收穫是tangle網路在拓樸的兩端可以容納兩筆互為衝突的交易(雙花)
: 但我覺得這改變並不會影響我們原先討論的本質
: 因為當網路拓樸的兩端合併以後 勢必會取權重的一筆生存 另一筆則被孤立
: 這確實跟Bitcoin的主鏈不同
: 但ETH即有這uncle block(叔塊)的概念
: uncle block仍然是主鏈的一部分 但uncle block裡的交易是不被承認的
: 先複習一下原先的題目
: =================================
: "在IOTA網路中 沒有coordinator的狀態下
: 惡意攻擊者從一個IoT裝置所發出的交易A (經過PoW驗證了前兩筆交易)
: 如何能不被惡意攻擊者手上的另一個超強硬體所建構出來的雙花交易B(也經過了PoW驗證
: 了前兩筆交易 且還附加了更多交易在其後增加權重)蓋過去?"
: =================================
: 這題以ETH來說明 就會變成
: 惡意攻擊者發送了一個交易A 被主鏈X區塊所確認
: 但攻擊者構建了一個雙花交易B 用更高的算力包裝成X'->Y'->Z'等3個區塊
: 原先的X區塊變成Y'的uncle block, 資料仍在鏈上 但A交易是無效的 大家只會承認B
: 但BTC/ETH等為什麼不會需要Cordinator來對抗這種51%攻擊
: 因為block chain的獎勵機制讓大家會讓主鏈上的算力高到攻擊者很難獨自去發起
: 回歸到IOTA的問題上來 縱使IOTA網路能讓兩種雙花交易存在拓樸的兩端
: 但一當他們接軌之後 權重的選擇下還是只會留下一邊
: 權重的本質還是POW (我知道是很多交易互相累積啦 不過還是POW)
: 所以上述問題變成了 只靠誠實的IOT裝置
: 所累積的POW是不足以讓合流後的權重高於另一邊刻意所構築的
: 無論IOTA再流行 全球IoT裝置都加入恐怕也很難保證安全
: (原因前面討論文章有講過 貧弱的硬體 只計算交易時少少的運算時間...)
: 當然您說的(2)POW改交由代理節點運算 或許可以拉近上面的鴻溝
: 但這樣整個網路交易本體就變成是代理節點了而非是IOT裝置
: IOTA主打的IoT交易特性就不見了
: (感覺就像是味增湯都不放味增與豆腐改放菜頭排骨酥用肉燥提味)
: 既然都必須連上代理節點了 那代理節點要run區塊鏈還是tangle網路差別就不大了吧?
我之所以推測IOTA會走代理節點的模式
是因為類似的說法被多次提及
grapherd大大在這篇(#1QNrXVf_)提到「IOTA 沒打算讓 IoT devices 運行 PoW」
另有一位大大在這則留言提及PoW可由full node來做
https://www.facebook.com/groups/897485720426082/permalink/926697757504878/?comment_id=926828070825180&reply_comment_id=926833580824629
(社團裡的成員告訴我這兩位大大都頗有來頭XD)
回去翻了您的整理文(#1QNXdgqk)發現您的D選項似乎與這些說法相吻合
且底下leftc大大的推文為此方案提出了更具體的運作模式
重新思考了一下覺得似乎可行(各大廠商站出來有種聯盟鏈的味道?)
因此才做出此推斷
在這裡真的要再次感謝MRjk大大先前的討論與整理
至於您對此選項提出的質疑
我認為IoT裝置本來就無法獨自發交易
就算IoT裝置親自做PoW
由於IoT裝置不太可能作為full node(需要大量空間儲存整個Tangle)
因此還是需要找個full node進行連線
才能進行選tip與發交易的動作
接著回答您關於雙花的問題
您的原文誤會我收穫的部份了
您所述的攻擊流程完全就是我們一開始的認知
先確認您是否了解一些實作上的觀念
不論是Blockchain或是Tangle
full node必須保存的資料並不只有整條Blockchain tree或是Tangle DAG
還會包括帳本狀態
例如比特幣Blockchain的帳本狀態一般稱為UTXO (Unspent Transaction Outputs)
新的區塊一接上主鏈時 UTXO會根據此區塊進行一次state transition
Blockchain reorganization發生時(短鏈超越長鏈)整個UTXO會被大翻新
可以想像若沒有UTXO的話
每次想檢查「於哪些地址有多少錢」都必須重新爬過整條主鏈
顯然在實作上完全不切實際
Tangle帳本狀態也是差不多概念
(Tangle的帳本狀態應該也是記錄哪些地址有多少錢)
但運作方式有一處根本差異
新的交易被接到Tangle時 這筆交易並不會馬上使帳本更新
而是要等累積權重到達一定的量才會被帳本採用
也就是交易有confirmed的概念
(我之前是用finalized這個字 這兩個字我當一樣意思來用)
交易confirmed之後就再也不會被撤銷了
這與Blockchain的「最長鏈的交易才被帳本採用 新區塊一接上最長鏈就立即更新帳本」
有著截然不同的性質
來看看Tangle如何防止雙花
其實有了上述概念之後應該不難理解
用互斥交易A跟B的例子來說明
假設大家走A的sub-tangle
當A的累積權重到達一定量被視為confirmed 才會被帳本採計
這時候再拿B後面跟一大串交易接到Tangle上是沒有意義的
因為B跟A互斥 而A已經confirmed 所以B不可能被帳本採計
比較一下區塊鏈雙花的情形
帳本採計最長鏈裡的所有交易
假設目前最長鏈裡有A交易
現在有一條短鏈 裡面有B交易
短鏈藉由超高算力變成新的最長鏈
這時A就被從帳本裡撤銷了 而B進入帳本
所以其實區塊鏈裡的交易 並不像Tangle裡的交易一樣會confirmed
因為只要有足夠的算力 是可以撤銷任何交易的
只是要達到這個足夠的算力超難而已
事實上
我能往新的方向思考
是因為grapherd大大發了這篇文(#1QOqgSY5)
他再次強調
1. 一筆交易被認同並導致帳本狀態轉變後 這筆交易就不會再被撤銷了
2. 正常節點的數量很重要
這兩點顯然完全與區塊鏈不符
第二點似乎跟網路拓樸有關暫時不管
光第一點就非常讓我想不通了
因為區塊鏈不可能有不會被撤銷的交易
因此我試著接受第一點
並且試著尋找新的出路
就看到一線曙光
最後連為何要扯到網路拓樸也明朗了
先前我之所以一直不相信Tangle會採用confirm交易的做法
是因為我認為confirm交易會導致非常難以收拾的後果
亦即全網帳本將分裂好幾派 如同這篇我想表達的(#1QNh7H5m)
但IOTA卻大方接受了全網帳本會分裂這件事 硬是往這個方向下手
如此瘋狂的做法是我完全沒有預料到的
(其實我後來發現grapherd大大在這篇 #1QNrXVf_ 就有解釋全網帳本的確會分裂)
總結
我認為Tangle與Blockchain的關鍵差異
就在於交易是否會真的confirmed
這個根本的差異導致Tangle與Blockchain的性質有以下區別
Tangle的帳本是可以分裂為不同勢力的
而節點究竟受到哪個勢力的帳本影響較大
取決於節點的鄰居屬於哪派勢力 也就是必須考慮網路拓樸
Blockchain的帳本則是統一的
所以不必考慮網路拓樸
若您仍有不解之處
我很樂意繼續與您討論
作者: leftless (兩個月倒一次垃圾)   2018-01-23 01:01:00
所以IOTA中會有明確的正義節點 且他們在拓樸上很接近所以在遙遠兩端製造出的互斥交易其中一個會被排擠這樣理解對嗎?目前是理解成明確的正義節點互相認識且相連作為中心整個拓樸呈放射狀往外發展有點像把現在的協調者換成數個經過認證的節點只需維持內圈節點間的共識 外圈出現分歧就排擠他整個系統其實沒有那麼分散 而是圍繞著數個主節點運作(?
作者: a2935373 (...)   2018-01-23 01:20:00
怎麼感覺跟銀行系統很像Y所以IOTA這系統很仰賴可信任的node? 不考慮完全分散式去中心化的模式 其實這樣運作上也不會有太大問題
作者: leftless (兩個月倒一次垃圾)   2018-01-23 01:26:00
這只是我根據白皮書和這幾篇討論腦補出來的結論事情應該不會像我想像中的那麼簡單(?
作者: ctes940008 (蛤!我只是小兵!?)   2018-01-23 01:51:00
不就是現在網路的11台ROOT SERVER?
作者: hasheesh (反正就是~超.好.吃!)   2018-01-23 03:41:00
好奇帳本分裂那要怎麼做Snapshot?各做各的嗎?(未來snapshot 自動化後)
作者: a2935373 (...)   2018-01-23 03:46:00
我猜就只有核心帳本會被承認 其他都被排擠
作者: grapherd (GrD)   2018-01-23 07:34:00
沒有11台 root server 啦......

Links booklink

Contact Us: admin [ a t ] ucptt.com