看板 DigiCurrency 關於我們 聯絡資訊
※ 引述《kugwa (苦瓜)》之銘言: : 但運作方式有一處根本差異 : 新的交易被接到Tangle時 這筆交易並不會馬上使帳本更新 : 而是要等累積權重到達一定的量才會被帳本採用 : 也就是交易有confirmed的概念 : (我之前是用finalized這個字 這兩個字我當一樣意思來用) : 交易confirmed之後就再也不會被撤銷了 : 這與Blockchain的「最長鏈的交易才被帳本採用 新區塊一接上最長鏈就立即更新帳本」 : 有著截然不同的性質 : 來看看Tangle如何防止雙花 : 其實有了上述概念之後應該不難理解 : 用互斥交易A跟B的例子來說明 : 假設大家走A的sub-tangle : 當A的累積權重到達一定量被視為confirmed 才會被帳本採計 : 這時候再拿B後面跟一大串交易接到Tangle上是沒有意義的 : 因為B跟A互斥 而A已經confirmed 所以B不可能被帳本採計 感謝您的解釋 我大概明白您要表達的意思 但這跟IOTA的tangle網路特性似乎沒有相關 你說的這規則在現行區塊鏈也可以一樣比造辦理 但為什麼BTC等不使用這樣的機制 因為"當一個節點有了confirm過的交易 即使有更高權重的交易(鏈)出現它也不去承認" 這句話就是有中心化風險的 我們一開始的原命題是"沒有coordinator的存在" 那假設當一個新節點加入網路時 它錯過了以上發生的故事 只是單純想重新同步網路狀態 它會看到兩條鏈(sub-tangle) 一條是誠實節點堅守的總權重低但號稱是"誠實"的鏈 一條是高算力打造高權重的鏈 請問新節點在不預設哪個節點是可信任(也就是現在coordinator)的情況下 它是不是只能選擇高權重那條鏈? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.26.8 ※ 文章網址: https://www.ptt.cc/bbs/DigiCurrency/M.1516721378.A.120.html ※ 編輯: MRjk (59.127.26.8), 01/23/2018 23:32:21
kugwa: 似乎tip selection algorithm會進行很多輪 01/23 23:34
kugwa: 看鄰居告訴他的tip是哪些 01/23 23:35
kugwa: 所以如果多數鄰居誠實 01/23 23:35
kugwa: 最後選的就會是跟誠實的一樣 01/23 23:36
Ash1taka: https://goo.gl/uWQQfc 這篇有提到「累積信任」的設計 01/23 23:38
Ash1taka: 新節點加入時,運作最久、連線穩定的節點會被優先推薦 01/23 23:39
MRjk: 多數鄰居是誠實這件事本身是不可預期的吧 在BTC中 100個鄰居 01/23 23:45
MRjk: 只要有一個鄰居是誠實的 跟你講了最長的那個鏈就會follow 01/23 23:46
MRjk: 其他99個再怎樣鬧也沒有用 , IOTA是靠鄰居多數決來決定自己 01/23 23:46
MRjk: 靠哪一派? 那如果再某個當下無法連到多數誠實節點 那這個節 01/23 23:47
MRjk: 點就永遠變成反派節點的其中一員了?? 01/23 23:47
kugwa: 我目前真的是這樣理解 01/23 23:49
kugwa: 不然真的不知道怎麼解釋他們說的正常節點數量很重要這件事 01/23 23:49
kugwa: 還有網路拓樸 01/23 23:52
MRjk: Ash1taka "被優先推薦" 這就算是中心化了 1.為什麼我要聽某 01/23 23:54
MRjk: 節點跟我推薦? 2.為什麼我要相信推薦給我的節點? 3.那些歷史 01/23 23:55
MRjk: 悠久的"可信賴"節點就不會被攻擊置換掉? 01/23 23:56
kuma660224: 萬一運作久的誠實節點是已佈局很久的惡意節點? 01/24 00:02
Ash1taka: 我剛也在想kuma大說的狀況... 應該問問Roman Semko 01/24 00:31
a2935373: 我猜最後運作模式還是中心化的幾個官方節點為準 01/24 00:54
exeex: 我覺得 一個算力爆高的點要有夠多鄰居站他旁邊才有用 01/24 01:16
exeex: 一個鄰居很少,但算力爆高的點,權重累加會拼不贏其他互動 01/24 01:18
exeex: 密集的點的tangle生長速度 01/24 01:18
MRjk: 基本上建新節點比加算力還簡單 所以攻擊者不會看起來是一個 01/24 01:20
MRjk: 算力爆高的孤立節點 而是偽裝成一群"很常在交易"的普通節點 01/24 01:20
MRjk: 就是因為建新節點這件事幾乎是零成本 所以才有PoW鏈的發生 01/24 01:21
exeex: 如果被切兩邊,一邊算力少但點很多,另一邊是算力多但點很少 01/24 01:22
exeex: ,且權重相近。一個新的點進來,我是這個點我會寧願相信點 01/24 01:22
exeex: 多的那一邊 01/24 01:22
MRjk: 如果靠節點投票就可以解決共識問題 Bitcoin當初就不會被設計 01/24 01:22
exeex: 喔喔 原來是這樣 那樣的話我要重新想過 01/24 01:23
kuma660224: 他每個用戶節點只能做一次交易,所以理論上 01/24 01:23
kuma660224: 擁有高算力應該是模擬一堆用戶節點才對。 01/24 01:23
MRjk: 成要PoW , 你也可以把它想成線上遊戲怎樣防止一機多掛? 01/24 01:23
kuma660224: 你跟本不會知道這幾百幾千個用戶都是同一個吧 01/24 01:24
MRjk: 另一個例子 IOTA官方都自己說它們可以模擬幾千個節點互相交 01/24 01:25
kugwa: https://hackmd.io/s/SyMBZd3NG# 01/24 01:26
MRjk: 易 不就代表一個組織可以任意創造無限多個節點嗎? 01/24 01:26
kugwa: 有人可以解釋為什麼X最後變成0% confirmation嗎 01/24 01:26
kuma660224: 節點本來就自由新增,跟實際硬體數無關 01/24 01:27
exeex: 請教建新節點的cost到底有啥? 01/24 01:28
exeex: 以及蓋iot裝置節點 01/24 01:28
exeex: 和蓋運算節點的cost的差別? 01/24 01:28
exeex: 不管多低 應該還是要有一些些costs 01/24 01:29
MRjk: 純建新節點cost近乎0 只有PoW才能保證背後代表多少硬體 01/24 01:30
kuma660224: X在efghi那邊輸了,3:2, 有衝突就不能選。 01/24 01:32
exeex: 所以從硬體cost和網路拓樸cost 01/24 01:34
exeex: 只能看有運算力的節點的cost 01/24 01:34
kuma660224: X與Y類似算力比拼,但用節點數來呈現勝負。 01/24 01:34
kuma660224: Y雖然贏了,但也有可能不是誠實的。 01/24 01:34
kuma660224: 那圖只是解釋有矛盾時,節點會選擇不衝突的來延續 01/24 01:35
exeex: 但有運算力的節點,不抽手續費 01/24 01:36
exeex: cost和利益不符。因此不會像比特幣礦工去最大化算力 01/24 01:36
kugwa: 我知 但為啥最後他寫0%? 不是還是有一個孤立的tip指到X? 01/24 01:37
kuma660224: 由於XY兩交易互斥,新節點在紅群與橘群只能選1邊站 01/24 01:38
exeex: 如果有利可圖,也是來自於模型外,譬如我是店家我要收iota 01/24 01:39
exeex: 買賣東西給客人,因此我要來pow 01/24 01:39
kuma660224: 至少要驗證2筆交易,才能延續X那一群阿 01/24 01:40
kuma660224: 只剩1個Tip可選,就無法再連連看 01/24 01:40
exeex: 這樣的話靠利益去支撐算力根本不靠譜 01/24 01:41
kugwa: 我記得選來驗證的兩筆交易 可以是同一個吧? 01/24 01:42
Ash1taka: 不行兩筆驗同個交易喔,白皮書或tangle explorer上看 01/24 01:47
Ash1taka: 一定要驗兩筆不同的交易,否則無法產生網狀結構 01/24 01:48
Ash1taka: 但同一筆舊交易可以被很多不同的新交易驗證 01/24 01:49
kugwa: bu 4 bar!? https://hackmd.io/s/HyQrzrV0Z# 01/24 01:50
kugwa: 這圖就有交易選同一筆來驗阿 01/24 01:50
Ash1taka: 樓上那個hack MD的圖畫,B對A的「雙鍵」肯定畫錯了 01/24 01:53
kugwa: 可是下面還有很多圖都是雙鍵阿 而且這張晏誠主編的耶 01/24 01:54
kugwa: 愛好者社團裡似乎是大咖 01/24 01:55
Ash1taka: 白皮書沒這樣畫,目前看過的visualization也無此例喔 01/24 01:55
Ash1taka: 我相信那個共筆上畫的圖是「過度簡化」的結果 01/24 02:00
Ash1taka: 照正確的tangle邏輯來畫,要多畫很多交易格子 01/24 02:01
kuma660224: 我也覺得只是簡化格子來說明,但反而讓人誤解 01/24 02:09
kugwa: 但就算是真的不能選同一筆驗證好了 第一個連結的最後張圖 01/24 02:15
kugwa: 攻擊者還是可以先發個交易去驗e,f 這樣X那半又起死回生了吧 01/24 02:16
kugwa: 因為X那半就又變兩個tip了 01/24 02:17
commandoEX: IOTA的交易驗證不是隨機的嗎?不能指定驗證誰啊 01/24 02:31
MRjk: 誠實節點是隨機 攻擊者也可以"號稱"隨機阿 你要怎樣檢驗? 01/24 02:34
kugwa: 我是攻擊者 故自己選 01/24 02:34
kuma660224: 若贏不了節點數,多延伸一次也沒有意義吧。 01/24 02:43
kuma660224: 他有score機制避免誠實node去選較老的node產生tip 01/24 02:44
kuma660224: 攻擊者應該是偽裝誠實者,想要吸引誠實節點加入它那一 01/24 02:44
kuma660224: 群 01/24 02:44
kuma660224: X一旦輸給Y,應該也沒有硬撐的必要? 01/24 02:46
kugwa: 樓上這個論點就跟交易會confirmed是一樣意思吧? 01/24 02:46
kugwa: 網路一樣可能分裂為兩派 01/24 02:47
kugwa: 順帶一題 白皮書第三頁 01/24 02:47
kugwa: The node chooses two other transactions to approve 01/24 02:47
kugwa: according to an algorithm. 01/24 02:48
kuma660224: 如果Y才是攻擊者,那X群會消失就是必然 01/24 02:48
kugwa: In general, these two transactions may coincide. 01/24 02:48
kugwa: 白皮書說可以選同一個來驗 01/24 02:48
kuma660224: 不管怎樣,IOTA似乎就是比誰支持者多。 01/24 02:49
kuma660224: 一旦分出勝負,之後新Tip會接到強勢的一方 01/24 02:50
kuma660224: 兩邊有矛盾,大家只能選邊站,西瓜靠大邊 01/24 02:51
kugwa: 我現在只是想確認 攻擊者如果有過50%算力 到底能不能影響 01/24 02:51
kugwa: 誠實的節點 01/24 02:51
kuma660224: 能否驗同一個或必須驗兩個,大概也不太重要 01/24 02:51
kugwa: 如果現在誠實的都認Y 但攻擊者一直去長大X 這樣到底有沒有 01/24 02:52
kuma660224: X或Y誰後面連結最多最長節點數,誰就贏了 01/24 02:53
kugwa: 那假如 現在已經發展到「誠實節點看到X已經被孤立剩1 tip」 01/24 02:58
kugwa: 現在攻擊者真的做到超速串一堆交易去壯大X 01/24 02:59
kugwa: 使得誠實節點看到的X那邊sub-tangle又變長起來 01/24 03:00
kugwa: 並且tip也變得很多很多 01/24 03:00
kugwa: 比Y那邊的tip還多 01/24 03:00
kugwa: 這樣誠實節點到底會不會回心轉意去愛X 01/24 03:01
kuma660224: 攻擊者重新開戰會不會比較簡單點…… 01/24 03:23
kuma660224: 如果你已經大算力自創一堆node+騙誠實node, 還輸, 01/24 03:25
kuma660224: 只靠自身算力應該不法逆轉勝。 01/24 03:26
kuma660224: 要是能贏,應該假設攻擊者是Y.... 01/24 03:26
kuma660224: X是被孤立的誠實者 01/24 03:27
kuma660224: 這樣比較合理。 01/24 03:27
kugwa: 我只是想確認「Y先被誠實節點採用之後 到底有無可能轉為採 01/24 03:28
kugwa: 用X」 01/24 03:29
kugwa: 因此提出上述的案例 01/24 03:29
kuma660224: 這我就不敢猜了,自知不夠了解。 01/24 03:30
kugwa: 這很重要因為關乎整個網路是否會分裂 01/24 03:31
kugwa: MKjk大提出了強烈的論點來否定分裂的狀況 01/24 03:32
doranako: 看來攻擊者事先要養鄰居 01/24 09:50