作者MRjk ()
看板DigiCurrency
標題Re: [閒聊] IOTA真的能實現足夠的算力嗎
時間Tue Jan 23 23:29:35 2018
※ 引述《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://webptt.com/m.aspx?n=bbs/DigiCurrency/M.1516721378.A.120.html
※ 編輯: MRjk (59.127.26.8), 01/23/2018 23:32:21
1F:推 kugwa: 似乎tip selection algorithm會進行很多輪 01/23 23:34
2F:→ kugwa: 看鄰居告訴他的tip是哪些 01/23 23:35
3F:→ kugwa: 所以如果多數鄰居誠實 01/23 23:35
4F:→ kugwa: 最後選的就會是跟誠實的一樣 01/23 23:36
6F:→ Ash1taka: 新節點加入時,運作最久、連線穩定的節點會被優先推薦 01/23 23:39
7F:→ MRjk: 多數鄰居是誠實這件事本身是不可預期的吧 在BTC中 100個鄰居 01/23 23:45
8F:→ MRjk: 只要有一個鄰居是誠實的 跟你講了最長的那個鏈就會follow 01/23 23:46
9F:→ MRjk: 其他99個再怎樣鬧也沒有用 , IOTA是靠鄰居多數決來決定自己 01/23 23:46
10F:→ MRjk: 靠哪一派? 那如果再某個當下無法連到多數誠實節點 那這個節 01/23 23:47
11F:→ MRjk: 點就永遠變成反派節點的其中一員了?? 01/23 23:47
12F:推 kugwa: 我目前真的是這樣理解 01/23 23:49
13F:→ kugwa: 不然真的不知道怎麼解釋他們說的正常節點數量很重要這件事 01/23 23:49
14F:→ kugwa: 還有網路拓樸 01/23 23:52
15F:→ MRjk: Ash1taka "被優先推薦" 這就算是中心化了 1.為什麼我要聽某 01/23 23:54
16F:→ MRjk: 節點跟我推薦? 2.為什麼我要相信推薦給我的節點? 3.那些歷史 01/23 23:55
17F:→ MRjk: 悠久的"可信賴"節點就不會被攻擊置換掉? 01/23 23:56
18F:→ kuma660224: 萬一運作久的誠實節點是已佈局很久的惡意節點? 01/24 00:02
19F:推 Ash1taka: 我剛也在想kuma大說的狀況... 應該問問Roman Semko 01/24 00:31
20F:推 a2935373: 我猜最後運作模式還是中心化的幾個官方節點為準 01/24 00:54
21F:推 exeex: 我覺得 一個算力爆高的點要有夠多鄰居站他旁邊才有用 01/24 01:16
22F:→ exeex: 一個鄰居很少,但算力爆高的點,權重累加會拼不贏其他互動 01/24 01:18
23F:→ exeex: 密集的點的tangle生長速度 01/24 01:18
24F:→ MRjk: 基本上建新節點比加算力還簡單 所以攻擊者不會看起來是一個 01/24 01:20
25F:→ MRjk: 算力爆高的孤立節點 而是偽裝成一群"很常在交易"的普通節點 01/24 01:20
26F:→ MRjk: 就是因為建新節點這件事幾乎是零成本 所以才有PoW鏈的發生 01/24 01:21
27F:→ exeex: 如果被切兩邊,一邊算力少但點很多,另一邊是算力多但點很少 01/24 01:22
28F:→ exeex: ,且權重相近。一個新的點進來,我是這個點我會寧願相信點 01/24 01:22
29F:→ exeex: 多的那一邊 01/24 01:22
30F:→ MRjk: 如果靠節點投票就可以解決共識問題 Bitcoin當初就不會被設計 01/24 01:22
31F:→ exeex: 喔喔 原來是這樣 那樣的話我要重新想過 01/24 01:23
32F:→ kuma660224: 他每個用戶節點只能做一次交易,所以理論上 01/24 01:23
33F:→ kuma660224: 擁有高算力應該是模擬一堆用戶節點才對。 01/24 01:23
34F:→ MRjk: 成要PoW , 你也可以把它想成線上遊戲怎樣防止一機多掛? 01/24 01:23
35F:→ kuma660224: 你跟本不會知道這幾百幾千個用戶都是同一個吧 01/24 01:24
36F:→ MRjk: 另一個例子 IOTA官方都自己說它們可以模擬幾千個節點互相交 01/24 01:25
38F:→ MRjk: 易 不就代表一個組織可以任意創造無限多個節點嗎? 01/24 01:26
39F:→ kugwa: 有人可以解釋為什麼X最後變成0% confirmation嗎 01/24 01:26
40F:→ kuma660224: 節點本來就自由新增,跟實際硬體數無關 01/24 01:27
41F:推 exeex: 請教建新節點的cost到底有啥? 01/24 01:28
42F:→ exeex: 以及蓋iot裝置節點 01/24 01:28
43F:→ exeex: 和蓋運算節點的cost的差別? 01/24 01:28
44F:→ exeex: 不管多低 應該還是要有一些些costs 01/24 01:29
45F:→ MRjk: 純建新節點cost近乎0 只有PoW才能保證背後代表多少硬體 01/24 01:30
46F:→ kuma660224: X在efghi那邊輸了,3:2, 有衝突就不能選。 01/24 01:32
47F:→ exeex: 所以從硬體cost和網路拓樸cost 01/24 01:34
48F:→ exeex: 只能看有運算力的節點的cost 01/24 01:34
49F:→ kuma660224: X與Y類似算力比拼,但用節點數來呈現勝負。 01/24 01:34
50F:→ kuma660224: Y雖然贏了,但也有可能不是誠實的。 01/24 01:34
51F:→ kuma660224: 那圖只是解釋有矛盾時,節點會選擇不衝突的來延續 01/24 01:35
52F:→ exeex: 但有運算力的節點,不抽手續費 01/24 01:36
53F:→ exeex: cost和利益不符。因此不會像比特幣礦工去最大化算力 01/24 01:36
54F:推 kugwa: 我知 但為啥最後他寫0%? 不是還是有一個孤立的tip指到X? 01/24 01:37
55F:→ kuma660224: 由於XY兩交易互斥,新節點在紅群與橘群只能選1邊站 01/24 01:38
56F:→ exeex: 如果有利可圖,也是來自於模型外,譬如我是店家我要收iota 01/24 01:39
57F:→ exeex: 買賣東西給客人,因此我要來pow 01/24 01:39
58F:→ kuma660224: 至少要驗證2筆交易,才能延續X那一群阿 01/24 01:40
59F:→ kuma660224: 只剩1個Tip可選,就無法再連連看 01/24 01:40
60F:→ exeex: 這樣的話靠利益去支撐算力根本不靠譜 01/24 01:41
61F:推 kugwa: 我記得選來驗證的兩筆交易 可以是同一個吧? 01/24 01:42
62F:推 Ash1taka: 不行兩筆驗同個交易喔,白皮書或tangle explorer上看 01/24 01:47
63F:→ Ash1taka: 一定要驗兩筆不同的交易,否則無法產生網狀結構 01/24 01:48
64F:→ Ash1taka: 但同一筆舊交易可以被很多不同的新交易驗證 01/24 01:49
66F:→ kugwa: 這圖就有交易選同一筆來驗阿 01/24 01:50
67F:推 Ash1taka: 樓上那個hack MD的圖畫,B對A的「雙鍵」肯定畫錯了 01/24 01:53
68F:推 kugwa: 可是下面還有很多圖都是雙鍵阿 而且這張晏誠主編的耶 01/24 01:54
69F:→ kugwa: 愛好者社團裡似乎是大咖 01/24 01:55
70F:→ Ash1taka: 白皮書沒這樣畫,目前看過的visualization也無此例喔 01/24 01:55
71F:推 Ash1taka: 我相信那個共筆上畫的圖是「過度簡化」的結果 01/24 02:00
72F:→ Ash1taka: 照正確的tangle邏輯來畫,要多畫很多交易格子 01/24 02:01
73F:→ kuma660224: 我也覺得只是簡化格子來說明,但反而讓人誤解 01/24 02:09
74F:推 kugwa: 但就算是真的不能選同一筆驗證好了 第一個連結的最後張圖 01/24 02:15
75F:→ kugwa: 攻擊者還是可以先發個交易去驗e,f 這樣X那半又起死回生了吧 01/24 02:16
76F:→ kugwa: 因為X那半就又變兩個tip了 01/24 02:17
77F:→ commandoEX: IOTA的交易驗證不是隨機的嗎?不能指定驗證誰啊 01/24 02:31
78F:→ MRjk: 誠實節點是隨機 攻擊者也可以"號稱"隨機阿 你要怎樣檢驗? 01/24 02:34
79F:推 kugwa: 我是攻擊者 故自己選 01/24 02:34
80F:→ kuma660224: 若贏不了節點數,多延伸一次也沒有意義吧。 01/24 02:43
81F:→ kuma660224: 他有score機制避免誠實node去選較老的node產生tip 01/24 02:44
82F:→ kuma660224: 攻擊者應該是偽裝誠實者,想要吸引誠實節點加入它那一 01/24 02:44
83F:→ kuma660224: 群 01/24 02:44
84F:→ kuma660224: X一旦輸給Y,應該也沒有硬撐的必要? 01/24 02:46
85F:推 kugwa: 樓上這個論點就跟交易會confirmed是一樣意思吧? 01/24 02:46
86F:→ kugwa: 網路一樣可能分裂為兩派 01/24 02:47
87F:→ kugwa: 順帶一題 白皮書第三頁 01/24 02:47
88F:→ kugwa: The node chooses two other transactions to approve 01/24 02:47
89F:→ kugwa: according to an algorithm. 01/24 02:48
90F:→ kuma660224: 如果Y才是攻擊者,那X群會消失就是必然 01/24 02:48
91F:→ kugwa: In general, these two transactions may coincide. 01/24 02:48
92F:→ kugwa: 白皮書說可以選同一個來驗 01/24 02:48
93F:→ kuma660224: 不管怎樣,IOTA似乎就是比誰支持者多。 01/24 02:49
94F:→ kuma660224: 一旦分出勝負,之後新Tip會接到強勢的一方 01/24 02:50
95F:→ kuma660224: 兩邊有矛盾,大家只能選邊站,西瓜靠大邊 01/24 02:51
96F:推 kugwa: 我現在只是想確認 攻擊者如果有過50%算力 到底能不能影響 01/24 02:51
97F:→ kugwa: 誠實的節點 01/24 02:51
98F:→ kuma660224: 能否驗同一個或必須驗兩個,大概也不太重要 01/24 02:51
99F:→ kugwa: 如果現在誠實的都認Y 但攻擊者一直去長大X 這樣到底有沒有 01/24 02:52
100F:→ kuma660224: X或Y誰後面連結最多最長節點數,誰就贏了 01/24 02:53
101F:推 kugwa: 那假如 現在已經發展到「誠實節點看到X已經被孤立剩1 tip」 01/24 02:58
102F:→ kugwa: 現在攻擊者真的做到超速串一堆交易去壯大X 01/24 02:59
103F:→ kugwa: 使得誠實節點看到的X那邊sub-tangle又變長起來 01/24 03:00
104F:→ kugwa: 並且tip也變得很多很多 01/24 03:00
105F:→ kugwa: 比Y那邊的tip還多 01/24 03:00
106F:→ kugwa: 這樣誠實節點到底會不會回心轉意去愛X 01/24 03:01
107F:→ kuma660224: 攻擊者重新開戰會不會比較簡單點…… 01/24 03:23
108F:→ kuma660224: 如果你已經大算力自創一堆node+騙誠實node, 還輸, 01/24 03:25
109F:→ kuma660224: 只靠自身算力應該不法逆轉勝。 01/24 03:26
110F:→ kuma660224: 要是能贏,應該假設攻擊者是Y.... 01/24 03:26
111F:→ kuma660224: X是被孤立的誠實者 01/24 03:27
112F:→ kuma660224: 這樣比較合理。 01/24 03:27
113F:推 kugwa: 我只是想確認「Y先被誠實節點採用之後 到底有無可能轉為採 01/24 03:28
114F:→ kugwa: 用X」 01/24 03:29
115F:→ kugwa: 因此提出上述的案例 01/24 03:29
116F:→ kuma660224: 這我就不敢猜了,自知不夠了解。 01/24 03:30
117F:推 kugwa: 這很重要因為關乎整個網路是否會分裂 01/24 03:31
118F:→ kugwa: MKjk大提出了強烈的論點來否定分裂的狀況 01/24 03:32
119F:推 doranako: 看來攻擊者事先要養鄰居 01/24 09:50