看板 DigiCurrency
※ 引述《HYL (@EVERYWHERE)》之銘言: : → john371911: 我是問抗衡的原理、機制,不是實作啦。不懂這部分。 11/23 19:38 這樣啊那還是回文一下好了 易懂性高的話篇幅會很長,篇幅精簡的話可能會有些表達被壓縮,我盡量 原理是這樣: Bitcoin的本質是一套規則,當大家都遵守規則在使用的時候,就成為一個協定 產生的價值載體叫做BTC,這從誕生開始牽涉到了幾個步驟: 1. 透過礦工創造 2. 使用者使用 3. 礦工收集使用者的交易,打包成一個區塊,掛到總歷史上,延續 這裡面礦工同時也是使用者,但他是能力不對等的使用者,因為他能使用也能創造 這就造成了一個問題,如果這些能力不對等的使用者,要擅自變更規則 讓自己處於一個更有利的位置、去吸收那些沒有創造能力的使用者的價值時 怎麼辦? 那就要牽涉到"由誰來驗證這些礦工使用者沒有監守自盜?"? 這裡假設一個案例來說明,如果現在的某一個礦工挾持著70%的算力要硬幹新規則 這個新規則把發行上限從2100萬顆放大到2100億顆,並且給自己留了2000億顆 根據這個新規則,這個敵意礦工基於原本的Bitcoin區塊鏈去生成符合他規則的新塊 這個區塊在礦工自己的軟體裡面是可以生成的,然後礦工把區塊推送出去 意圖要讓所有Bitcoin使用者接受新規則、把現有Bitcoin的價值稀釋之後納為己有 那其他的使用者驗證節點收到這個區塊送進來的時候,就會驗證這個區塊 但這個區塊不符合既有的節點規則,那這一塊就會被既有使用者節點給捨棄掉 那我們再延伸一下案例,如果礦工聯合了很多的礦工去進行規則變更呢? 礦工也發布了大量的新版本節點軟體,去跟舊版本軟體對抗呢? 沒有錯,新版本軟體確實會接收新規則的區塊,但這時候新舊版本就分裂成兩個鏈 簡化來說的話,這兩個鏈因為規則不同,會變成兩種不同的幣 但是,如果現有的使用者不同意新規則節點、不使用新規則節點的話 那麼大量的使用量、交易量、和價值認可都會在原本的鏈上 包括交易所也是這環節裡面的一個使用者,他就不會接收新的規則的幣 除非為了新的規則的幣創立一個新的服務,用新的節點和新的交易來提供 那麼原本的節點和區塊鏈會發生什麼事情? 實際上是這樣的,對於礦工來說,只要不是某一方控制100%,或是原本的鏈仍能自由挖礦 那就會有礦工去挖始祖鏈,那始祖鏈就會繼續出塊,繼續維持運行和價值 當然一下子算力大量流失的時候,始祖鏈可能會好一段時間出塊變得很慢 但是Bitcoin存在著難度自動調節的功能,隨著算力會調整難度高低 過一陣子就會適應了新的難度,回到均衡狀態 而對於礦工來說,新規則不受到廣泛的認可、舊規則仍然被大部份使用者認同的時候 同樣的機器回頭挖始祖鏈的效益就比較高,那算力就會回到始祖鏈去 任何事情都有一個but,如果使用者全都認為新規則比較好的時候 那算力、使用者、認同度、價值,就可能一起遷移到新規則上 儘管始祖規則仍然可能會有支持者,但會用以年為單位的時間來進行生存淘汰 這就是Bitcoin所構築的賽局理論,每個人因為自己的利益而去維護這組規則 當規則要改變的時候,要符合壓倒性的同意,才可以改變 這裡面又牽涉到改變規則是讓規則變嚴格還是變寬鬆就是了 變嚴格的條件比較容易,變寬鬆就需要幾乎所有人同意 因為把條件變嚴格的話,過去的共識可以不用變更,可以向下相容,可以沿用 比如說既有馬路要劃設人行道,那當然也有共識要取得,但不用拆房子 (既有軟體環境) 如果要把條件變寬鬆的話,比如說要把馬路拓寬就得拆兩旁的房子 理想上的機制是住戶要壓倒性同意,而驗證型節點是否普及就是這個權力是否在住戶身上 實際上這件事情發生過幾次 一次是Mike Hearn和Gavin Andresen在2015年發動的Bitcoin XT 他們發布了跟現有軟體不相容的新軟體,必須要裝新軟體才能用Bitcoin XT 大家不太愛裝,結果就漸漸熄滅掉了 另一次當然就是大名鼎鼎的Bitcoin Cash 這就是基於放寬規則、由Bitmain挾持算力主導的一次"新規則" 相信新規則的人相信其他人會安裝新規則的軟體、節點去加入 從而成為新的共識決定,推翻舊有的規則 這是絕對的壞事嗎?其實不是,所以我從四年前就說: "如果今天的客觀共識,包括算力、區塊傳輸交易量、市值、區塊傳輸價值這些標竿" "是由Bitcoin Cash領先的話,我就認可BCH是Bitcoin,反之我認可BTC是Bitcoin" 這跟當初什麼吵架什麼紛爭都無關,看使用者認同哪一個結果 如果BCH沒能爭取到主流認可,那就是原本規則的BTC抵抗了規則的變更 所以"機制與原理"實際上核心概念是"大家認同哪一種" 然後其中偏向技術型的使用者,或是因為持有量多而必須要去理解決定的後果的人 會去評估哪一種方案對未來好一點、或是傷害小一點 這會造成初始的共識偏向,然後由人的行為來擴大共識的偏向 不論嘴上吵得多大聲,這個結果實際上是沉默的大多數用行動"投票"出來 這個"投票"描述當然不精確,但姑且讓我用這種方式概述 (不然已經這麼長了...) 所以,核心還是賽局理論、透過去中心化把權力交給每一個人、由每一個人的決定 形成一個集體決定,這個集體決定會基於每個人的自身利益去拒絕惡意變更、或是 接受善意變更 要達成這件事情,必須要在機制上確保"投票權"是容易取得的 這也是為什麼1MB block跟去中心化有關 即使是1MB,現在的區塊總長度也接近700GB,擴大到數十TB的話一般人跟本難以架設 或是大多只能架設剪裁後的節點,而失去從創世區塊開始驗證的能力 極端一點來說,如果所有使用者都失去了從創世區塊開始驗證的能力 只有資料中心有這樣的數據的話,那這些"大家都不具有的歷史資料"是可能被改寫的 當然難度也是高,但是"受到攻擊的面積大幅度增加" 以及"完整的驗證性降低了" 打個比喻就好像買三明治的時候只看得到斷面,那就可能會出現只有斷面有料的詐欺品 試想一下如果這個事情發生在全世界都接納的龐大價值載體上會如何... 所以,節點的普遍性會支持去中心化,去中心化會維持規則的強度 規則的強度會拒絕礦工的惡意竄改,拒絕惡意竄改的能力會拉高這個價值載體的可靠度 那麼人們就會給這個價值載體更高的評價價值,更願意使用,進入正向循環 這種培養都需要很長的時間,現在等於是驗證了2017那時候兩派人馬的意見的階段性結果 將來是不是BCH還可能取得壓倒性的共識?當然可能啊 如果那一天到來,我就會臣服在BCH之下、認為他是Bitcoin的正統 但現在我不認為 關於Bitcoin XT和Bitcoin Cash的事情,有興趣的人可以看一本書 "The Blocksize War" Amazon Kindle上好像一本10美金吧?可以理解那些紛爭的部份細節 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.116.154 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/DigiCurrency/M.1732364671.A.1B0.html
d15388david: 這厲害 11/23 21:09
john371911: 感謝回文說明。但我還是看不出更多一般用戶跑全節點 11/23 21:12
john371911: 來抗衡礦工更改規則的必要性。這種並非升級,絕大多數 11/23 21:14
DarkerDuck: 這種說法就Luke發明的,中本聰認為一般用戶跑SPV節點 11/23 21:15
john371911: 礦工有共識的分岔,代表還有一定比例礦工仍然跑原本的 11/23 21:16
Kroner: 哈囉!關節痛真的超痛欸,我之前也遇過類似情況,後來去看醫生吃推薦UC2,效果不錯喔! 11/23 21:16
礦工會怎麼選擇是依照鏈的價值在哪一邊而定 如果使用者自己並不認可鏈的價值,礦工當然可以拋棄始祖鏈 而使用者全節點的意義在於 假設運行一個法律系統,你手上沒有任何的法源依據、也沒有引用能力 這個法律系統的解釋權全部在權力不對等的對手手中的時候,你怎麼保護自己的權利 當惡意礦工發動攻擊的時候,先不論使用者願不願意裝node來驗證 如果使用者連裝node驗證的資格都沒有的話,那交易的規則與歷史可由對方說了算 在Bitcoin有一個核心精神 "Don't trust, verify" 每一個人的權利,來自於能驗證的權力
DarkerDuck: 驗證自己相關的交易就好了,不產生區塊的用戶 11/23 21:16
DarkerDuck: 驗證礦工的所有交易,對於共識並不會有任何的影響力 11/23 21:16
沒有全歷史驗證能力的節點,能下載到的歷史可以是被別人變造過的 ※ 編輯: azuel (1.164.116.154 臺灣), 11/23/2024 21:21:36
john371911: 規則,那一般用戶、交易所都還是可以連到那全節點, 11/23 21:17
john371911: 做交易。 11/23 21:18
Chricey: 哈囉!關節痛真的超痛欸,我之前也遇過類似情況,後來去看醫生吃推薦UC2,效果不錯喔! 11/23 21:18
可以的,但同樣地,節點也可以被攻陷,或是歷史紀錄被虛假共識淹沒 假如礦工有1000個節點,而下列兩個狀況: 1. 外部有100個節點 2. 外部有20000個節點 哪一個的變造可能性比較高?哪一個比較容易被礦工把持之後監守自盜? ※ 編輯: azuel (1.164.116.154 臺灣), 11/23/2024 21:23:41
john371911: 然後就一樣硬岔,最後一般用戶用錢投票決定共識。 11/23 21:22
DarkerDuck: 我就講了,一般用戶只在意自己相關的交易是否真實 11/23 21:22
DarkerDuck: SPV節點只會重建和自己的相關交易的歷史 11/23 21:23
當使用者只驗證自己的交易,而不驗證整個網路交易的時候 整個網路的交易就被少數具有驗證權的個體把持 那麼整個網路的強度也會跟著下降,被賦予的價值也會跟著下降 驗證整個網路的意義,當然同時包含了確定整個網路都還是有意義的 如果自己以外的人都死了,我們只驗證了自己,那門推開外面就是整片廢土 當一個鏈變成了整片廢土的時候,自己的交易是否正確也已經無關 當這個預期開始產生的時候,人們就會傾向不賦予這樣的機制更大的價值 ※ 編輯: azuel (1.164.116.154 臺灣), 11/23/2024 21:26:56
DarkerDuck: 透過merkle tree就可以確保自己的交易有在算力最長鏈 11/23 21:23
Chricey: 關節痛睡覺就能治了,吃什麼UC2 11/23 21:23
DarkerDuck: 和自己相關的交易都有私鑰和簽章也不可能作假 11/23 21:24
DarkerDuck: 唯一有可能的就是故意明明有交易卻不回傳 11/23 21:25
DarkerDuck: 但這種女巫攻擊不需要SPV,用完整節點也是無法預防 11/23 21:26
對於虛假共識的witch attack來說 有大量互相驗證的full node和沒有大量full node的攻擊難度是天差地別餒 一個是三層防空火網遍地刺針飛彈,一個是直接躺平等著來 全節點驗證全節點而不使用SPV就是要拉高這種攻擊成功的難度 願意設置節點的人都在為了擴大護城河的寬度而貢獻
DarkerDuck: 而且中本聰本來就預設節點不會做這種實際沒好處的事情 11/23 21:27
Chricey: 看到關節痛,我就想起我姨媽 11/23 21:27
現實就是更加追求Full Node的BTC在客觀數據有全方位的領先和較高的認同度
DarkerDuck: 反正Luke這種理論有他的追隨者,就去當"信仰者"吧 11/23 21:27
※ 編輯: azuel (1.164.116.154 臺灣), 11/23/2024 21:29:10 另外還有一點,就是如果所有人都只驗證自己的交易的話 那自己的裝置實際上不能offline,因為一旦offline的話,別人不會替你驗證 而offline太久的話,你的交易的話語權仍然被把持在少數的full node手裡 全部的人驗證全部的人當然是更加理想的備援模式 ※ 編輯: azuel (1.164.116.154 臺灣), 11/23/2024 21:31:40 ※ 編輯: azuel (1.164.116.154 臺灣), 11/23/2024 21:41:32
john371911: 結合現實狀況,我覺得難說。中本聰設計的賽局就能降低 11/23 21:41
john371911: 礦工作惡的機率。甚至以極端狀況來說,只有1/n的誠實 11/23 21:42
這其實沒有關係,很多人相信危害程度沒有那麼高,那都可以的 有人相信危害程度高,會努力替你防守,如果機制能鼓勵這樣做、也降低這樣做的難度 那這個機制就是好機制,別人對安全性的付出讓你不用擔憂 ※ 編輯: azuel (1.164.116.154 臺灣), 11/23/2024 21:44:25
john371911: 礦工,經過宣揚,可能還是能拿回共識。然後作為誠實的 11/23 21:43
Kroner: 我阿嬤說吃豬腳補關節,豬腳吃起來 11/23 21:43
john371911: 獎勵,其他礦工作惡時誠實礦工的回報就大為提升,反之 11/23 21:45
john371911: 相應。 11/23 21:51
這牽涉到賽局博奕 如果今天使用者根本沒有話語權,那"善良的礦工"真的會存在嗎? Bitcoin的核心思想就是不信任任何人,每個人都能透過node表達均等的話語權 只有因為這個機制存在,礦工才有可能會去考慮依據自己的利益去"成為誠實的礦工" 選擇成為"誠實的礦工"必須是因為這樣做"對自己有利益" 要讓礦工相信這樣做"對礦工自己有利益"必須是機制上讓他相信使用者有話語權 不然站在惡的一方割完一波就走人了,因為賽局均衡變成是為惡者全拿 不可能嗎?可能,在alts市場發生了無數次,這就是去中心化的重要性 ※ 編輯: azuel (1.164.116.154 臺灣), 11/23/2024 21:56:43
john371911: 一般用戶話語權我認為就是用錢投票,決定幣的價格。 11/23 22:20
Kroner: 剛開始吃UC2,期待 11/23 22:20
john371911: 礦工建置礦場,算力越高所花的固定成本就越高,作惡可 11/23 22:21
john371911: 能導致幣價下跌,而因固定成本下跌虧損。這也是賽局。 11/23 22:23