📜 [專欄新文章] 區塊鏈權益證明(PoS)的去中心化難題:主觀性與遠程攻擊
✍️ Ping Chen
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
相較於工作量證明(PoW)的客觀、直覺、易於驗證,權益證明因為仰賴過去的狀態做為共識基礎,存在「正確性」環環相扣的問題。
工作量證明 vs 權益證明
工作量證明做為比特幣發明之初就存在的共識機制,最大的優點就是簡單:礦工需要算一百兆次,驗證只需要驗算正確的那一次,易守難攻,但缺點也很明顯,挖礦的無意義運算很浪費資源。
權益證明捨棄低效率的挖礦猜數字遊戲,改用投票表決的方式產生共識,任何持幣超過一定數量的人都可以參與投票,票多者勝。
易驗證的安全性沈澱
相較於權益證明,驗證需要有「過去每個人的持幣量」的先備知識,工作量證明簡單粗暴,你不需要知道幣的分佈、全局狀態、過去的任何一筆交易,只要看區塊頭就知道合法,所以如果你有天不小心在路邊撿到兩條鏈,沒什麼好猶豫的,更長、累積工作量更多的鏈就是對。
基於物理法則,工作量證明區塊鏈上的交易,在被礦工打包後,不只安全,隨著未來有更多區塊接在後面,這個區塊被回溯的機率就越來越低,也就是交易「沈澱」到更深、更安全的地方。所以我們常看到交易所和商家會有「n 個區塊」的確認等待設計,就是要等款項變得更像是不會跑掉。
區塊鏈的最終性
權益證明區塊鏈不存在安全沈澱的效應,因為「區塊 X 的正確性」仰賴「區塊 X-1 的正確性」,又仰賴 X-2, X-3, …,所以如果你對整條區塊鏈的狀態(誰有多少幣)一無所知,那往前給你再多證據也未必能說服你,畢竟偽造區塊,也就是狀態轉移,的成本非常非常低。
然而,權益證明的支持者會告訴你,我們有最終性(finality)這個工作量證明沒有的超讚的東西。也就是說,如果你確信區塊 X-1 是對的,那當區塊 X 產生的瞬間,它對你而言就永遠是對的,根本不需要等什麼沈澱。
理由很簡單,因為工作量證明的潛在礦工是未知、是無限多的,很難知道現在世界上有多少能挖礦的設備,這甚至超越時間跨度,也就是未來的算力也可能回來挖現在的區塊,所以僅管越來越安全,卻永遠不可能確信 100% 不被反轉。如果有外星人掏出一台異次元電腦,瞬間做了超越全地球電腦運算力的工作量,那區塊鏈上的任何交易,都是有可能被逆轉的。
這時候,權益證明的有限礦工就顯得很重要了。對於「區塊 X 是否正確」問題,有投票權的母體僅是「所有在區塊 X-1 有持幣的人」,而當這群人當中的 2/3 已經投票(且保證不會跑票),那區塊 X 就永遠地敲定了。
主觀性
回到「你有天不小心在路邊撿到兩條鏈」的情境,這對專業節點/礦工來說當然不是問題,他們隨時都在同步新區塊,總是能根據共識規則選邊站。但業餘使用者難免會離線一段很長的時間再回來。有天當你連上網,卻發現有兩組人傳給你兩條完全不同的鏈,在權益證明的情境下,你是沒辦法馬上知道該選哪一邊的,甚至可以說,即便你補足了離線期間的每個區塊,這兩條鏈誰好誰壞仍然是憑感覺,看你相信誰,也就是「主觀」的。
要克服主觀性對業餘節點近用區塊鏈的威脅,唯一的辦法是每個區塊產出時都立刻達到最終性(不可分叉),但這等同於要求「每一個礦工」都「永遠活躍在線上」且「知道狀態和每一筆交易」並「隨時投票表態」,這樣的標準太嚴苛,很容易讓新區塊難產,甚至整個鏈停滯,實務上不可行。
遠程攻擊
共識演算法的設計中,最重要的指標就是「抗惡意行為」的程度。工作量證明的術語「51% 攻擊」指的是:這個區塊鏈能容忍一些壞人存在,只要他們掌握的算力不超過整個系統的一半就沒關係。
對於攻擊發起者,我們只能假設他不要太強;對於其他誠實中立(共識系統中不存在善良的概念)的參與者,我們則希望透過經濟機制的設計,引導他們做出促進共識收斂的行為。
在工作量證明系統分叉時,礦工選擇在較短鏈上挖礦是不划算的,因為挖礦獎勵可能會消失,平白浪費算力。而權益證明的礦工因為不用真的用設備耗很多電做運算,同時在兩個分叉上押寶理論上是可行的,但如果每個礦工都這樣做,分叉就永遠不會收斂。為了強迫礦工選擇,我們會懲罰在同個區塊高度的不同區塊都投票的人,減少挖礦獎勵,甚至沒收資金。
可以說,權益證明在處理分叉上更強而有力。工作量證明的礦工如果兩邊挖礦,頂多沒賺到錢;權益證明礦工兩邊挖的話非但不會賺,甚至會損失本金,嚇阻力顯然大上許多。但是當攻擊目標是遙遠的過去時,權益證明卻比工作量證明脆弱,甚至可以說是束手無策。
如前所述,工作量證明的區塊鏈擁有不斷沈澱的安全性,惡意攻擊最近的區塊或許可行,但要惡意攻擊一年前的區塊,必須要重做一年份的工作量,成本超級高,也很容易被發現。相較之下,權益證明區塊鏈的記帳不需要物理性的消耗設備和電力,攻擊一分鐘的區塊和一年前的區塊的成本相差無幾。
想像某人在一年前秘密地掌握了大多數的幣(投票權),並且在一年間表現正常,從不作惡,然後慢慢的賣幣退場。但就在完全脫手後,他忽然從一年前那個他佔有過半投票權的時間點,瞬間偽造了整年份的歷史,一個完全由他一手偽造的分叉鏈。對不知情的節點而言,這條鏈完全合法,對其他節點而言,就算想懲罰他(他確實有重複投票),他在主鏈上也已經沒有幣可以被罰了,這就是所謂的遠程攻擊(long range attack)。
看啊,是ICBM! Photo by Maciej Ruminkiewicz on Unsplash
緩解主觀性與遠程攻擊的方案
對工作量證明鏈而言,礦工和持幣者是脫鉤的,權益證明則否。權益證明的問題,基本上就是共識機制和區塊鏈狀態高度耦合的後遺症,衍生出的包括共識有效性、活性、輕節點實作等等的問題得靠額外的機制處理。
鏈外共識
一種簡單有效的方法是定期發布區塊鏈的里程碑(milestone),這種方法對工作量證明和權益證明都適用。比方說,聖人明君,偉大全能的以太坊創辦人 Vitalik,可以固定在他的 Twitter 上發布整數區塊的 block hash,告訴大家第九百萬塊就是 0x388f34dd9....d8e142960e3不會錯,甚至直接更新節點實作,把里程碑寫死在程式碼裡面,就可以有效引導新加入的節點不會走到壞人的鏈上,可以稱作 PoS + PoR (reputation) 的共識機制。
合併工作量證明
另一種方法是合併使用兩種共識機制,比方說原本 2018 要上線但忽然被整組砍掉的 Casper FFG,就計畫要在原有的 ETH 1.0 鏈上疊加一層由智慧合約實作的權益證明。也就是出塊仍然由原本的礦工負責,再讓持幣者投票做雙重驗證,礦工不再只跟隨最長鏈,而是要同時考慮這個鏈是否違反投票結果。既可以享有最終性,也能累積工作量避免遠程攻擊。
不過後來以太坊開發者的大頭們決定放棄上這版,改直接推出一步到位的 PoS + sharding 的真・ETH 2.0。在這個版本中預計也有合併工作量證明,但不是本來的雙軌制,而是用一種叫 VDF 的特殊演算法 + 專用硬體,同時提供工作量和重要的鏈上隨機數產生器(RNG)。
VDF (verifiable delay function) 和本來的挖礦有些許不同,它雖然也有計算困難驗證容易的特性,但並不能靠堆疊礦機來平行加速,而是要用由某幾家硬體廠商聯合開發的可信機器,保證計算的耗時總是在某個範圍內,從而提供近似工作量證明的客觀性和安全沈澱。
中心化
這題會考,旁邊畫五顆星星
回到權益證明高度耦合區塊鏈狀態的問題,這本質上是「自己證明自己對」的困境。實務上為了能運作,為了避免來自一年前礦工的超時空打擊,勢必得比工作量證明多出更多需要信任的環節:要相信節點實作給的信任根(像是 genesis block)、要相信別的節點提供的狀態、要相信驗證者和出塊礦工不會作惡或聯合審查。
實務上,為了確保可用性和活性,接受一些程度不一的中心化妥協方案在所難免,差別只在於你更願意相信社群大神的信譽還是硬體廠商不會偷做改良設備的職業操守。但話說回來,工作量證明也有自己的中心化議題,大礦池、ASIC 廠商壟斷等等,不會有系統能保證完全的去中心化,只能在已知可用的幾個方案裡面,盡量挑選比較好的,穩定中求進步了。
最近大手筆用了好多錢註冊更短的 ENS
ping.eth
歡迎順手抖內幫補血😢
區塊鏈權益證明(PoS)的去中心化難題:主觀性與遠程攻擊 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
「pow pos比較」的推薦目錄:
- 關於pow pos比較 在 Taipei Ethereum Meetup Facebook 的最讚貼文
- 關於pow pos比較 在 Taipei Ethereum Meetup Facebook 的最佳解答
- 關於pow pos比較 在 Taipei Ethereum Meetup Facebook 的最佳解答
- 關於pow pos比較 在 Re: [閒聊] 比特幣為什麼不改pos呢- 看板DigiCurrency 的評價
- 關於pow pos比較 在 pow pos是什麼 :: 博碩士論文下載網 的評價
- 關於pow pos比較 在 所謂的區塊鏈共識機制PoW、PoS、DPoS 究竟是什麼?(下篇) 的評價
- 關於pow pos比較 在 pow區塊鏈的情報與評價,YOUTUBE、VOCUS、方格子 的評價
- 關於pow pos比較 在 ETH 年底預計的PoW + PoS 混合模式的第一個版本出現了... 的評價
- 關於pow pos比較 在 區塊鏈的三大共識PoW、PoS與DPoS|HOYA BIT 學院 的評價
pow pos比較 在 Taipei Ethereum Meetup Facebook 的最佳解答
📜 [專欄新文章] ELI5! 區塊鏈到底在幹嘛?
✍️ Juin Chiu
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
用生活化的例子輕鬆學會區塊鏈技術的重要概念
前言
我們熟知的世界正在慢慢地被區塊鏈技術瓦解與重建。不論背景,有愈來愈多人想對區塊鏈技術一探究竟,或許更進一步成為從業者、貢獻者或佈道者。
不幸的是,初學者若想學習區塊鏈技術,第一個問題可能會是高學習門檻,這是因為目前在各種主流平台上所流傳的區塊鏈知識或資源,都不免會大量使用艱澀的術語,長久以來便塑造出區塊鏈高大上的距離感,好似區塊鏈是只專屬於一小群駭客或者專業人士才能理解的技術。然而這是不準確的,事實上,區塊鏈技術中許多概念都能用一般常識理解,頂多只需要國小數學。
本文中,筆者將化繁為簡,試著把區塊鏈技術中的每個元素都使用生活化的例子比擬,讓區塊鏈愛好者與初學者不需用到密碼學/經濟學/資訊科學,也能領會區塊鏈技術的精髓之處。
本文將提及的概念如下:
什麼是帳本?
什麼是交易?
為什麼需要區塊?
有哪些共識機制?
區塊鏈安全嗎?
智能合約如何運作?
以下正文開始:
區塊鏈:一個公平的記錄系統
簡單來說,區塊鏈技術旨在打造一個去中心化的(Decentralized)狀態紀錄系統,更準確一點:區塊鏈技術旨在打造是一個追求真正「公平」的系統。
區塊鏈實現公平的關鍵在於:它完全仰賴自然法則運作,只透過一系列精細的規則就能保證系統的正確,這打破了人類社會一直以來的仰賴的中心化系統,使促成不平等的最大因素不復存在。
區塊鏈技術可以打造出具世界規模的去中心化運算平台,由數千甚至數萬個參與者共同維護狀態並提供計算資源。如果這個運算平台是應用在貨幣與資產的場景中,那麼這個平台可被稱為分散式帳本。
在接下來的段落,筆者將用一個例子展示一個極度精簡、只用紙跟筆的就可以運作的分散式帳本。在這個例子中,一群學生可以使用區塊鏈技術發行屬於他們自己的虛擬幣:「考卷幣」(Exam Paper Coin, EPC)。
考卷幣:使用區塊鏈技術發行的虛擬幣
考卷幣(EPC)是一種使用區塊鏈技術發行的虛擬幣,並存在於分散式帳本中。它的用途是為考卷加分,這將會吸引想考高分或者擔心被當的人學生持有。為什麼 EPC 只能被稱作虛擬幣,而不被稱作密碼貨幣?這是因為 EPC 的發行不會使用任何有關密碼學的技術,因此 EPC 嚴格來說不是密碼貨幣。
在分散式帳本被創建之初,沒有任何人擁有 EPC ,那麼 EPC 是怎麼「鑄造」與分配的?至少可以肯定的是,EPC 不能憑空產生,否則所有參與者就能不斷製造 EPC,使分散式帳本崩潰。事實上,EPC 的價值奠基於參與者的「付出」。
分散式帳本中最重要的角色非記帳者莫屬。每當記帳者成功完成工作,它便可以獲得固定數量的 EPC 作為報酬。於是,分散式帳本中的 EPC 便如此逐步地被鑄造出來。將 EPC 賦予具有貢獻的記帳者除了能夠公平分配 EPC,同時也是一種激勵機制(Incentivizing Mechanism),提供參與者維護帳本的動機。
那麼每個人所具有的 EPC 是怎麼記錄在帳本中的?
帳本: EPC 都要記錄下來
帳本即為依時間順序與特定格式記錄價值的系統。在分散式帳本中,每一批紀錄都會由某一個特定的「記帳者」維護,而記帳者會以特定的規則從所有的參與者中選出,因此分散式帳本是具有多個「記帳者」的系統。
為了確保能公平選出 EPC 的所有記帳者,分散式帳本不會使用任何記帳者的個人資訊,例如姓名、電話,做為帳本上的識別。記帳者可以自由地使用假名(Pseudonym)作為帳本上唯一的識別(Identifier),或者稱為地址(Address)。所以王小庭同學可以使用 Alice 這個假名,而且如果王小庭同學喜歡的話,他也可以同時使用 Bob 這個假名。
EPC 使用如下的格式記錄每個地址幣的數量:
Alice 100 EPCBob 0 EPCCharlie 0 EPCDavid 0 EPCEva 0 EPC
多數區塊鏈稱其識別為地址(Address),其為非對稱密碼學中公鑰(Public Key)的雜湊值(Hash)。地址具有統一的格式,例如以太坊的地址為長度 160 位元的 16 進位數字。
交易:把我的 EPC 轉移給別人
EPC 是可以轉移的,現在 Alice 可以將它持有的 100 EPC 中的 60 EPC 轉移給 Bob,以幫助 Bob 在下一次考試中免於被當。這樣的轉幣紀錄稱為交易(Transaction, Tx),可以如下表示:
Tx1
60 EPC, from [Alice] to [Bob]
而這筆交易會由 Alice 以上述格式記在紙條上,以 Tx1 表示。
簽章:讓參與者的所有動作都不可抵賴
EPC 的每個參與者的每個行為,例如交易,都必須附帶簽章(Signature),證明「這個動作確實是由我本人發起的」,簽署者不可抵賴,任何沒有附帶簽名的動作都是不被承認的。一個附帶簽名的交易紙條會像這樣:
Tx1
60 EPC, from [Alice] to [Bob], ALICE
簽章分為簽署(Sign)及驗證(Verify)兩個動作。驗證即是確認簽章是否確實是由行為發起者所簽署。在這個例子中,僅用一個簡單的驗證:若簽章與識別相符,則驗證成功。例如 Tx1 中,簽名 ALICE 確實與交易發起者 Alice 相符,因此驗證成功。
簽章就是區塊鏈的數位簽章(Digital Signature),其使用私鑰(Private Key)簽署,公鑰(Public Key)驗證,非常難以偽造。
訊息的散佈:怎麼讓所有參與者都收到訊息?
由於 Tx1 是由 Alice 發起的,因此 Alice 將於它自己的帳本記下這筆交易,接著 Alice 必須把這筆交易的內容也轉達所有的參與者,讓所有參與者皆具有所有的交易內容。
EPC 的參與者們不以口語,而是以傳紙條的方式互相交換訊息。紙條要如何有效率地傳播訊息給所有在教室中的參與者呢?可以使用「一傳十、十傳百」的策略。也就是:一次傳 10 張紙條給自己周圍的參與者,參與者收到後再抄寫 10 次後傳給周圍尚未收到該紀錄的其他參與者,逐步將訊息擴散致所有參與者。
這樣的傳播策略正如同流言被散佈的方式,因此也被稱為流言散佈協定(Gossip Protocol)。紙條傳播的網路就是對等網路(Peer-to-peer Network),紙條就是對等網路的封包(Packet)。關於對等網路的介紹,可以參考筆者日前的撰文:
隱私、區塊鏈與洋蔥路由
區塊:記錄一段時間內的交易順序
經過一段時間之後,每個 EPC 參與者手上都會有許多來自別的參與者的紙條,每張紙條都記載著不同的交易。在理想狀況下,如果所有參與者收到紙條的順序都相同,且每個參與者都收到了所有紙條,則所有參與者的帳本上的狀態,也就是餘額,都會相同。然而,若採用上述的訊息散佈策略,會發生兩種情況:每個參與者收到紙條的順序會不同,或者某些紙條可能會被遺漏。這些情況都會讓每個參與者的帳本產生差異,使帳本不可靠。而一個不可靠的帳本,不能作為貨幣發行的工具。
有沒有辦法能使所有 EPC 參與者用相同的交易順序記帳呢?這便是區塊鏈技術的奧秘之處。
為此,我們需要使用一個精心設計的結構:區塊(Block)。每個參與者皆會將一段時間內收到的交易紙條的編號,依照自己的順序寫在另一張紙條上,這張紙條就是區塊紙條,簡稱區塊,產出區塊的參與者則稱為區塊生產者。收到區塊紙條的其他參與者便會知道區塊生產者在這段時間內的交易順序。
為了要讓所有帳本都具有一致的狀態,EPC 的所有參與者必須要選出其中一個區塊作為所有參與者的共識(Consensus)。所有參與者都必須要遵照共識區塊的交易順序來更新自己的帳本,而這個區塊生產者就是記帳者。由於記帳者可以獲得報酬,因此在利益的驅使下,所有參與者都會努力生產區塊以爭取記帳權。
值得注意的是,每個區塊當中都會記錄前一個已達成共識的區塊的編號。例如接下來的範例,Bk15 的前一個已達成共識的區塊為 Bk3:
Bk15
Last Block: Bk3
Height: 15
Transactions:- Tx1- Tx5- Tx4- Tx10- Tx7- Tx13
Nonce: 1
Signature: CHARLIE
由於每個新的共識區塊都會指向前一個共識區塊,如此便會形成一條長鏈般的結構,已形成共識的區塊接成一條鏈,這就是區塊鏈(Blockchain)名稱的由來。
而當 EPC 參與者在收取共識的區塊後,將按照共識依序為每個交易內容進行帳本餘額的轉換。如此,所有的帳本都將具有一致的狀態。
依據特定輸入及轉換函數(Transition Function)執行狀態更新的系統,稱為狀態機複製(State Machine Replication)
摘要:濃縮紙條上的訊息
在介紹達成共識的方法前,筆者要先來介紹一個樸實無華但重要的概念:摘要(Digest),其顧名思義就是一段內容經過消化的產物。假設有一種摘要產生器,這個機器可以放入一張紙條,然後透過 3 個步驟計算出紙條的摘要。
摘要產生器將記載訊息的紙條切成一條一條固定寬度的細長條狀紙帶,如下圖:
2. 將這些紙帶依照順序接成一個長條紙帶。紙帶上有字跡的黑色部分與沒字跡的白色部分會出現不規則相間,測量每個黑色區塊之間相鄰的距離,如下圖:
3. 每段距離的數字相乘後的數字就是這個紙條的摘要(Digest)。
每個 EPC 參與者都會有一台摘要產生器,而它需要上緊發條才能開始工作,且每計算完一張紙條便須重新上一次發條。
摘要的計算雖然簡單,卻具有一些很有用的特性:
首先,摘要會隨著紙條內容的變動而更動。只要更動了任何一點紙條內容,例如區塊的交易順序,或者流水號(Nonce),都會使摘要改變。因此一個附上摘要的紙條,可以讓收到紙條的人在收到後再自行計算一次摘要並比對兩者,以驗證紙條的內容是否被修改過。因此,摘要是可驗證的(Verifiable)。
若想在不更動摘要的情況下同時變動紙條內容,只能不斷嘗試用不同內容產生摘要,直到發生碰撞(Collision) — 意即兩個不同內容的紙條出現相同摘要。
其次,摘要也是單向的:一個紙條很容易產出摘要,但摘要很難還原出原本的紙條內容。這也代表摘要是隨機且難以預測的,因此摘要可以作為一種亂數(Random Number)來源。
正式的區塊鏈使用更難預測且更不易碰撞的的密碼雜湊函數(Cryptograpgic Hash Function)產生訊息摘要。
理解關於區塊鏈技術的基本要件後,接下來就來看看區塊鏈技術的精妙之處:共識機制。
共識機制:如何達成共識?
在區塊鏈技術中,大致上有兩種方式可以產生共識:抽彩(Lottery)或表決(Vote),它們各自有不同特性,每一種分散式帳本都會使用其中之一作為共識機制。
抽彩
在抽彩機制中,唯有摘要小於門檻值的「合法」區塊才會被所有參與者收受。然而,區塊生產者無法預測摘要,且可驗證的摘要使區塊生產者難以作弊。因此若想生產數字小於門檻值的摘要,區塊生產者必須不斷改動區塊內容,例如流水號或者交易順序,直到找到摘要小於門檻值的區塊,就像抽彩一樣。只有合法的區塊才會被區塊生產者散佈給其他 EPC 參與者。
在這樣的規則下,可能會同時出現多個合法區塊。還記得區塊鏈中「鏈」的部分嗎?當收受多個低於門檻的區塊時,該選哪個區塊作為上一個區塊呢?這裡我們可以用一些簡單的規則來做抉擇:選擇合法區塊中高度(Height)最高的區塊,若高度一樣則選擇摘要數字較低的區塊。
區塊紙條的摘要就是正式區塊鏈中的區塊雜湊值。在正式的區塊鏈中,門檻值愈低,困難度(Difficulty)也愈高。區塊的選擇規則也稱為分岔選擇規則(Fork Choice Rule),使用可驗證的亂數作為共識的做法又稱為中本共識(Nakamoto Consensus)。
表決
有別於複雜的抽彩,表決機制相當直觀:所有參與者針對某個預先選出的領袖(Leader)的提案(Proposal),也就是區塊,進行投票。領袖是怎麼選出的?一個直覺的做法是按照假名的順序,按照 Alice / Bob / Charlie 的順序,所有參與者輪流擔任領袖。
所有參與者在收到提案後,可以選擇同意或反對這個區塊的內容,若同意的話,則將自己對提案的同意票記在紙條上,並將這個投票紙條散佈給所有其他參與者。若多數的參與者同意了提案,則所有參與者皆須認定該提案為共識。
然而,表決機制雖然直觀,卻不如抽彩具有可驗證性,參與者若想作弊則相對容易:例如,參與者可以重複投票,或者串通其他參與者一起不投票,以破壞帳本;另一方面,表決比抽彩來得有效率,因其不需要所有參與者都費功去製造可能將不被收受的區塊。
拜占庭錯誤(Byzantine Fault)特指這些不在預期內的行為,表決機制事實上也就是拜占庭容錯(Byzantine-fault-tolerant, BFT)演算法。PBFT 家族的協定是目前拜占庭容錯演算法的主流,然而其至多只能容忍不超過參與者總數一半的拜占庭錯誤。若想了解更多 PBFT 的細節,可以參考筆者日前的撰文:
若想搞懂區塊鏈就不能忽視的經典:PBFT
女巫:如何避免帳本被單一個體掌控?
上文提到:為了保證公平的記帳權,帳本上的識別都是假名,如上文提及,Alice 跟 Bob 實際上都是由同一個參與者王小庭所控制,其他參與者不僅難以得知,而且王小庭喜歡的話,他愛用幾個假名就用幾個假名 — 掌控多個假名的王小庭就成為了「女巫」(Sybil)。
不論是採取何種共識機制,女巫的存在都會破壞分散式帳本的安全性:
在抽彩機制中,如果多數的參與者皆由女巫控制,則女巫有很大的機會可以無視規則,不需抽彩便竄改帳本。
在表決機制中,如果由女巫控制的參與者可以集體進行不在預期內的行為,例如重複投票或者不投票。
因此,抵抗女巫對於分散式帳本的安全至關重要。對此,一個直覺的思路是:讓每個假名的行為都必須付出有限的資源,例如錢跟力。因此有兩種方式可以抵抗女巫:要嘛出錢,要嘛出力。
出力:在抽彩機制中,每個合法區塊的生產都必須附有低於門檻的摘要,而摘要的計算需要參與者出力不斷地重上發條。
出錢:在表決機制中,抵押一定數量 EPC 的參與者才能獲選為領袖被生產提案,且若違反規則,參與者的押金將會被沒收。
出力即是工作證明(Proof of Work, PoW);出錢即是權益證明(Proof of Stake, PoS),抵抗女巫的機制稱為抗女巫機制(Sybil-control Mechanism)。
合約:進行條件式的交易
回顧一下本文開頭所提:區塊鏈技術可以用來打造去中心化的運算平台,它可以用以記錄任何資訊,不止餘額,例如一段合約(Contract)。合約就是指一段會依據不同條件而達成不同執行結果的語句。例如:
CheckAndPay
給定 A、B 兩個假名,若 A 的餘額大於/等於 30 EPC,則 A 支付 20 EPC 給 B ,否則 A 不支付任何 EPC。
這個合約就可以被記錄在帳本中:
Alice 100 EPCBob 0 EPCCharlie 0 EPCDavid 0 EPCEva 0 EPCCheckAndPay "給定 A、B 兩個假名,若 A 的餘額大於/等於 30 EPC,則 A 支付 20 EPC 給 B ,否則 A 不支付任何 EPC。"
之後 Alice 就可以發起像這樣的交易:
Tx 99
CheckAndPay, {[Alice], [Bob]}, ALICE
如此,若 Alice 的 EPC 餘額不足 30 EPC 則不會支付 Bob。
觸發合約的 Tx 99 ,它的執行過程比較煩瑣:執行 Tx 99 的參與者首先會從帳本中尋找 CheckAndPay 的合約內容,並從 Tx 99 中取出合約需要的輸入:A 與 B,接著參與者再解讀合約的語句,依照條件進行帳本的狀態轉換。其中,為了使參與者能解讀合約,合約需用所有參與者皆能看懂的語言書寫。
合約又稱智能合約(Smart Contract)。正式的區塊鏈使用虛擬機(Virtual Machine)來解讀與執行合約。事實上,智能合約能做的事情非常多,這使具有智能合約功能的分散式帳本得以成為去中心化的運算平台,例如以太坊(Ethereum)。
總結: 分散式帳本究竟是一個怎樣的系統?
如果以上環節皆運作順利,那麼便能成功只用紙筆便發行了專由學生使用的貨幣。最後再次強調一次:這是一個為了便於使初學者掌握核心觀念而極度簡化的例子。正式運行的區塊鏈,例如以太坊,其實際運作遠遠複雜得多。
還有一些比較進階的概念,雖然礙於篇幅未在此文章提及,但部分主題筆者曾撰文介紹:
可擴展性(Scalability):第二層方案(Layer 2)與分片(Sharding)
隱私(Privacy)與匿名(Anonymity)
共識機制的安全性(Safety)與活躍性(Liveness)
最後,如果日後朋友/家人問起「什麼是區塊鏈」時,我想你會知道如何解釋了:)
ELI5! 區塊鏈到底在幹嘛? was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
pow pos比較 在 Taipei Ethereum Meetup Facebook 的最佳解答
📜 [專欄新文章] Crosslink 2019 Taiwan|以太坊 2.0 的未來藍圖及挑戰
✍️ Frank Lee
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Danny Ryan(source: Crosslink 2019 Taiwan)
十月底於台北矽谷會議中心舉行的 Crosslink 2019 Taiwan,吸引了來自世界各地的區塊鏈愛好者們齊聚一堂。第一天的議程,邀請到了以太坊基金會 (Etherium Foundation, EF) 的核心研究員 Danny Ryan,會中分享了以太坊 2.0 (Ethereum 2.0)目前的研究方向以及遇到的挑戰,演講的內容主要包含了以太坊 2.0 的架構,新的分片提案,執行環境 (Execution Environments, EE)以及雙向橋接 (Two-Way Bridge)等議題。
一、以太坊 2.0 的架構
以太坊 2.0 架構(source: Crosslink 2019 Taiwan)
第零階段(Phase 0)
在 以太坊 1.0 (Ethereum 1.0) 中,使用 工作證明(Proof of Work, PoW) 作為 共識機制 (Consensus),並藉此產生新的區塊。為了要減少工作證明產生新區塊時,所需要的大量算力,以及所花時間過長的問題,以太坊 2.0 將改為 權益證明 (Proof of Stake, PoS) 作為產生新區塊的共識機制,以太坊 2.0 PoS 創世區塊 (Genesis Block) 預計會在 2020 年 1 月 3 日產生。
第零階段會建立信標鏈(Beacon Chain),信標鏈就是以太坊 2.0 系統層級的鏈,當從以太坊 1.0 移轉到以太坊 2.0 時,信標鏈扮演著非常重要的角色,它是整個系統的基礎。
一旦第零階段完成,將會有兩個使用中的以太坊鏈。以太坊 1.0 鏈(目前所使用的 PoW 主鏈)以及以太坊 2.0 鏈(新的信標鏈)。在這個階段,使用者在 1.0 鏈把以太幣鎖到合約裡以註冊公鑰, 2.0 鏈會承認合約內註冊的公鑰。但是,他們無法將該以太幣遷移回去以太坊 1.0 鏈上面,為了要執行信標鏈,你會需要一個信標鏈的客戶端。目前,許多團隊正在開發這些客戶端。
第一階段(Phase 1)
第一階段會加入分片鏈(Shard Chains),在這個階段主要專注於分片鏈的資料結構,以及其有效性(Validity)和共識性(Consensus),分片鏈在這階段只當作資料鏈,並不會指定分片鏈狀態執行(State Execution) 或帳戶餘額(Account Balances)。這比較像是對分片結構進行測試,而不是嘗試利用分片來對信標鏈進行擴展。在這階段,信標鏈會把分片鏈的區塊(Block), 當作沒有結構或意義的位元集合(Collections Of Bits)。以太坊 1.0 和以太坊 2.0 仍將同時存在,並且在以太坊 2.0 鏈上進行測試和遷移。
這個階段分片鏈會與信標鏈交聯(Crosslinks) ,每個分片的當前狀態 — “結合資料根(Combined Data Root)”,會定期記錄在“信標鏈”區塊中,作為交聯。信標鏈區塊完成後,相應的分片區塊(Shard Block)將被視為已完成,其他分片知道它們可以依靠這些區塊進行跨分片交易。
交聯是委員會(Committee)的一組簽名(Signatures),證明了分片鏈中的某個區塊,可以包含在信標鏈中。交聯是信標鏈”理解”分片鏈更新狀態的主要方式。交聯還用作異步跨分片通信的基礎結構。
信標鏈在每個時段(Slot)中的每個分片,隨機選擇分片驗證者(Shard Validators) ,分片驗證者只是用來在每個區塊的內容上達成一致,他們通過交聯證明分片的內容和狀態,分片中包含什麼內容都沒有關係,只要所有委員會都達成共識,並定期更新分片上的信標鏈即可。
第二階段(Phase 2)
第二階段會將所有功能開始結合在一起,在第二階段,會完成分片化,分片鏈從簡單的數據容器過渡到結構化鏈狀態,並將重新引入智能合約。每個分片將管理基於 eWASM(Ethereum flavored WebAssembly) 的虛擬機。它會支援帳戶(Accounts)、合約(Contracts)、狀態(State),以及 Solidity 中我們熟悉的其他抽象化,預計在第二階段之前或第二階段開發時,大家熟悉的工具(例如 Truffle, Solc, Ganache)需要轉換成支持 eWASM 的版本,以太坊 1.0 及以太坊 2.0 可藉由雙向橋接來互通,會有可擴展的 Layer 1 執行,藉由無狀態執行,來提高執行速度。
二、新的分片提案
新的分片提案(source: Crosslink 2019 Taiwan)
以太坊 2.0 原提案所運作的機制,是以每個時期 (Epoch) 為單位,來進行交聯的動作,每個鏈上有1024 個片 (Shards),當需要跨分鏈交易(Tx)時,由於是每個時期進行交聯,會有較大的延遲時間;新提案更新為每個時段都進行交聯的動作,並減少片(Shards)的數量為 64個,來降低跨分片(Cross-Shard)交易時的延遲時間,每個時段都進行跨分片交易。
新提案的優點
對於以太坊 2.0 新提案的優點,首先新提案的片 (Shards)數量由 1024 個降至 64 個,降低了運算的複雜度,因為跨鏈時間從一個 epoch 降到一個 slot ,時間縮短第一個好處是給 DApp 開發者及使用者更好的體驗。第二個好處是以往需要手續費市場(Complex Fee Market) 及樂觀狀態(Optimistic State)這兩種複雜的跨鏈交易解決方案,現在不需要了。
新提案的交易
新提案只需要比之前的提案更少的片 (Shards),就可以啟動交易,可能會有更長的分片時段(12s),更大的分片區塊(Shard Block),目前更新到第零階段 ,第零階段測試網(Testnets)的測試,可能會有所延遲 ,新提案減少了第零階段發布所需的時間。
目前的想法
希望能給開發者及使用者更好的體驗,使用較大的分片區塊(Shard Block),來改進資料可用性,以及要降低開發延遲和第零階段發布所需花費的時間。
三、執行環境
以太坊 1.0 簡易架構圖(source: Crosslink 2019 Taiwan)
在之前設計的以太坊 2.0 和以太坊 1.0 中,狀態在共識機制裡,扮演著非常重要的角色,共識機制會隨時去讀寫所有的狀態,不管是執行的概念、交易的概念、帳戶的概念、樹狀結構的概念、以及所有在資料結構中的概念,都深深地融入共識中。
上圖是以太坊 1.0 的簡易架構圖,在圖中我們可以看到共識機制及一條鏈,共識機制裡包含了狀態及一個執行引擎,狀態裡包含了狀態樹,在這裡的執行引擎使用硬編碼規則,裡面包含了執行交易、帳戶模型和帳戶結構,我們可以看到圖的右邊有一條鏈,鏈上面有交易資料,在以太坊 1.0 中,我們會在交易資料上執行共識機制,去修改和更新狀態。
執行環境是一個單獨的虛擬機器,在以太坊 1.0 中,會有一個特定的帳戶模型(Account Model),以及事先定義好的操作碼 (Opcodes),礦工機制 (Gas Mechanisms)和狀態根(State Root),以太坊虛擬機 (Ethereum Virtual Machine, EVM) 就是一種特定的執行環境。
如果遵循 EIP(Ethereum Improvement Proposals) 的建議,開發者總是在要求新的操作碼,或著是更改礦工成本(Gas Cost)來支援他們的應用,像是 Plasma 和 Zkrollup 這樣的例子有很多,這樣就會需要修改 EVM 1.0 的執行環境 ,才能支援到他們的應用程式(DApp)。
但是在以太坊 2.0 的第二階段中,我們可以支持多個執行環境。 也可以有多個狀態根,不同的帳戶模型等。舉個例子,你可以定義一個臉書幣執行環境 (Libra EE),以便在以太坊 2.0 上運行 Libra。 或者,您可以定義一個比特幣執行環境 (BitCoin EE),這樣就可以在以太坊 2.0 上運行比特幣。
以太坊 2.0 簡易架構圖(source: Crosslink 2019 Taiwan)
在以太坊 2.0 簡易架構圖中我們可以看到狀態根, 它可能是 32 Bytes 的 Blob,上面有 WASM 的執行碼 (Execution Code),可以在使用者層級中去做細部設定。圖片右邊有一個鏈,鏈上有一般的交易資料以及見證(Witnesses),見證實際上顯示在資料庫的區塊中,你需要針對該狀態而不是資料庫執行該筆交易,而且還需要證明資料對於當前狀態根是有效的。舉個例子,如果我們要在帳戶 A 和帳戶 B 之間傳遞數值,假設從帳戶 A 移動 5 以太幣 到帳戶 B ,我們不能直接說帳戶和餘額 (Balance) 是確實可用的,在過程中,我們需要加入見證資料(Witness Data),來證明兩個帳戶當前的狀態,當執行碼正在執行交易資料時, 狀態根可以修改和更新狀態樹。
執行環境並不是共識機制預先定義好的,他可以在使用者層級上去做新增,我們也可以把以太坊 1.0 複製一份到以太坊 2.0 的執行環境中,將現有的狀態根放入EVM 直譯器,用梅克爾見證驗證器(Merkle Witness Verifier)來當作他的執行碼。
在原先的提案中,狀態和共識息息相關,且執行帳戶和共識中包含了狀態樹結構;而在新的提案中,執行環境為無狀態模型(Stateless Model),高度抽象化的,並且它的可擴展性,相較原先的提案高出非常多。
執行環境的優點
執行環境有許多優點,相較於舊系統,它也許可以更快地將產品推向市場,因為我們不必等到核心共識推出之後,才研究並發展這個概念,在 Layer 1 會有更少的阻礙,它可以在各種應用上,使用具高擴展性及資料可用性的執行引擎,所以未來會長期使用這個核心基礎層。
執行環境的設計完成,讓以太坊 1.0 到以太坊 2.0 的遷移,有了更清楚的方向,使用執行環境比較不會有技術隨時間遷移而過時的問題產生。
執行環境交易
對於執行環境交易,開發者及使用者可能會覺得太抽象,對什麼是執行環境感到困惑,像是這一層加了什麼?應該在這一層做什麼?誰應該寫執行環境?而且相關的開發規範會趨向更嚴格的形式。
虛擬機可能會有潛在的碎片化問題,進而影響到交易速度。
目前的想法
目前所有的研究都是正向發展的,還有充裕的時間,嘗試並更好地了解設計空間,未來會多花一些時間,在建立更好的執行環境通訊機制上面。整體來說,現階段的進度,對於未來是重要的里程碑。
四、雙向橋接
最後一個主題,主要討論開發雙向橋接是否是值得的?團隊可能可以在什麼時間點,來去做雙向橋接?
單向橋接示意圖(source: Crosslink 2019 Taiwan)
講者先前提過的提案中,以太坊 2.0 最初有一個單向橋接,所以你可以從以太坊 1.0 轉換到 以太坊 2.0,但是最初的架構不允許回傳,這主要是出於幾個原因,這需要我們將以太坊 1.0 的發展 與 以太坊 1.0 和以太坊 2.0 的硬分叉緊密結合,並把兩個系統置於互相影響的風險之中,因此團隊認為以太坊 2.0 在發布且穩定之前,將兩邊緊密耦合是不明智的。
單向橋接的問題
月初在日本大阪舉行的 Devcon 5 上,橋接的問題受到了廣泛的討論,原提案的單向橋接(One-Way Bridge)模式,會有驗證者流動性的問題,而且更重要的是,它可能會引發以太坊 1.0 和以太坊 2.0 之間的可替代性問題,如果我們允許以太坊 2.0上的流動性,那麼某種形式的轉移機制,就會在將以太坊 1.0 分叉到以太坊 2.0 之前,或著是在雙向橋接之前產生,交易所中很可能會同時有兩個幣,團隊和整個驗證者社區都很擔心這個問題,目前正在找尋減輕這個問題的方法。
另外也希望鼓勵大家,在這些早期階段進行驗證,但是在早期階段進行驗證,肯定會有很高的風險,因為存在未知的鎖定期,因此也希望找到方法減輕這種風險。
雙向橋接
雙向橋接示意圖(source: Crosslink 2019 Taiwan)
雙向橋接目前可能的路線有兩條,一種是在以太坊 1.0 上面,建立以太坊 2.0 的輕節點;另一種是在以太坊 1.0 上運作以太坊 2.0 的全節點。
路線A: 在以太坊 1.0 上,建立以太坊 2.0 輕節點
路徑A示意圖(source: Crosslink 2019 Taiwan)
這個路線需要在實際的 EVM 中支援 BLS-12–381,會花費很多開發時間,而且它只提供輕量客戶端 (Light-Client) 層級的安全性。當驗證者在 2.0 鏈上產生提款交易的收據時,我們會拿到以太坊 2.0 的輕量客戶端證明,一但收收據的區塊在以太坊 2.0 上敲定了,你就可以在以太坊 1.0 的合約上提款。不過,這可能不是團隊最終選擇的路線。
路線B:在以太坊 1.0 上,運行以太坊 2.0 的全節點
路徑B示意圖(source: Crosslink 2019 Taiwan)
第二種路線,會在以太坊 1.0 的節點上,運行以太坊 2.0 的全節點,這個路線允許我們使用敲定性機制,因此,我們不僅可以使用這種機制,來促進以太坊 1.0 和以太坊 2.0 之間的轉移,我們也可以利用驗證者的安全性,來保護以太坊 1.0 鏈,我認為大家對此感到非常興奮,這通常被稱為“敲定性小工具提案(Finality Gadget Proposal)”。
但是還是需要一種機制,去輸出以太坊 2.0 狀態根在以太坊 1.0 上,所以有一些以太坊 2.0 社群的討論,在研究如何實作它,可能會包含礦工機制。
輸出以太坊 2.0 狀態根的另一個優勢,是以太坊 1.0 有穩固的機制可以實現它,以及同時擁有以太坊 2.0 的高擴展性及資料可用性,可以做一些有趣的應用,像是 ZK Rollup 和 Optimistic Rollup。
雙向橋接的優點
如果你在交易所中,列出以太坊 1.0 以太幣和以太坊 2.0 以太幣,它們的價格應該一樣。 如果不一樣,你可以用較低的價格買一個以太幣,把他發送到橋上,然後以較高的價格獲得另一種以太幣,並把它出售。 這種套利會使它們的價格保持不變,這樣會讓用戶,驗證者和開發人員感到困惑,雙向橋接可以防止兩邊的貨幣藉由套利的形式,來互相轉換。
雙向橋接的交易
但是還是有一些權衡在這裏,儘管對以太坊 2.0 的設計非常有信心,團隊還是希望在影響到以太坊 1.0 的安全性和風險狀況之前,先在生產環境中得到驗證。
雙向橋接是一種緊密耦合的共識機制,對於兩邊鏈的攻擊及產生的問題,都會影響到另一邊的鏈,協定的開發勢必會非常煩瑣,我們需要考慮到每個協定的安全性,如果我們越早開發協議,那麼我們實際上的進度就越少,當每個障礙隨著時間發展,它們就會相互阻礙,這讓以太坊 1.0 在這一點上的開發速度比以太坊 2.0 慢得多,因為實際用戶群存在很多擔憂,並且需要大量的協調,才能在我們的生產網絡上獲得硬分叉。
所以,如果我們越早將這些東西連在一起,就可能會減慢以太坊 2.0 的開發和分叉週期,並且這增加了一些額外的開銷,換句話說,驗證我們可以鏈接客戶端的開銷是相對的。
目前的想法
我們應該會在加入驗證人流動性之前啟用橋樑,但是會等到第一階段的產品穩定之後再開放;同樣的,有很多相關的研究都在同時進行,這可能會影響到,何時完成這個操作。
名詞解釋:
EIP(Ethereum Improvement Proposals):EIP 是以太坊平台的標準,其內容包含了核心協議的規範,客戶端 API 以及合約標準。
epoch :在以太坊 2.0 中,epoch 指的是時長 6.4 分鐘的時間單位,每個epoch 包含64個 slots。
Slot(時段):每個時段為 6 秒,不一定每個時段都能產生區塊,而epoch 中最後一個 slot 稱為邊界時段 (Boundary Slot) ,或稱為檢查點 (Checkpoint)。
Solidity:Solidity 是一種合約導向的語言,主要用來開發智慧合約。
Consensus (共識機制):共識機制是區塊鏈為了在各節點間達成共識,所開發的演算法。
Validator 驗證者:驗證區塊的節點,由信標鏈在每個時段(Slot)為每個 片 (Shards)隨機產生。
Gas:交易所需的費用,當 Gas 消耗完時,智慧合約會終止並進行 Rollback。
EVM(Ethereum Virtual Machine):EVM 中文為以太坊虛擬機,是一種輕量級的虛擬機環境,Eth 1.0 中智能合約的運行環境為 EVM。
Dapp(Decentralized App):在以太坊中,基於智能合約的應用都稱為去中心化的應用程序,即 Dapp(Decentralized App)。
ether(以太幣):以太坊的貨幣名稱。
Finality(敲定性):「敲定性」是 Casper 中的概念,是一種透過驗證者投票,在鏈上產生不可回朔(Rollback)的檢查點的機制。
Libra:臉書提出的加密貨幣,預計於 2020 年發行。
Merkle Tree:Merkle Tree 由計算機科學家 Ralph Merkle 所提出,中譯為雜湊樹,因為是由雜湊函式形成的樹。
Reference: [Ethereum Improvement Proposals](https://eips.ethereum.org/)
Reference: [Two-way bridges between eth1 and eth2](https://ethresear.ch/t/two-way-bridges-between-eth1-and-eth2/6286)
Reference: [Ethereum 2.0 (Serenity) Phases](https://docs.ethhub.io/ethereum-roadmap/ethereum-2.0/eth-2.0-phases/#phase-2-state-execution)
Reference: [ethfans](http://ethfans.org/)
Reference: [eth2 quick update](https://blog.ethereum.org/2019/10/23/eth2-quick-update/)
Thanks to Danny Ryan, Chih Cheng Liang, Juin Chiu, Yahsin Huang, and Jerry Ho
Crosslink 2019 Taiwan|以太坊 2.0 的未來藍圖及挑戰 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
pow pos比較 在 pow pos是什麼 :: 博碩士論文下載網 的推薦與評價
博碩士論文下載網,pow pos比較,pos機制,pow pos以太坊,PoW PoS,pos挖礦,以太坊pos,ETH PoS,pow機制. ... <看更多>
pow pos比較 在 所謂的區塊鏈共識機制PoW、PoS、DPoS 究竟是什麼?(下篇) 的推薦與評價
... 為什麼當前的共識機制會有不可能三角的- 區塊鏈,比特幣,共識機制,PoW,PoS. ... 若還沒搞懂的話,那我們有特別比較這幾個機制的優缺點讓大家更容易 ... ... <看更多>
pow pos比較 在 Re: [閒聊] 比特幣為什麼不改pos呢- 看板DigiCurrency 的推薦與評價
※ 引述《wanubz9v (心愛我老婆 智乃我女兒)》之銘言:
: 現在第二大幣eth都準備要pos了
: 那第一大幣比特幣怎麼還在用pow機制 既浪費電又沒pos安全
: 那怎麼比特幣一直不改pos呢?
我想是這樣解釋的
比特幣是第一代的區塊鏈技術
所延伸的產物
當初雖然說是支付系統但實際上
因為2100萬枚,每四年減半的規矩
定義上比較像是數位黃金的概念
具有「儲存價值」而不是「交易貨幣」
乙太坊這些後面出來的代幣
有人說是第二代的區塊鏈技術
增加了智能合約功能
以及更快速的交易
然而身為一個平台
乙太坊跟其他公鏈最大的意義
在於項目方在上面建造生態系
例如去中央化的交易所,各式各樣的defi
並且讓用戶用該平台的代幣去當手續費使用
例如你在乙太坊的uniswap
就要使用eth當手續費
如果使用幣安鏈的pancakeswap
就要使用bnb當手續費
所以這些公鏈的特質就是
「使用的效率」「手續費成本」
必須是要具備競爭性的
所以使用礦機pow挖礦
有個弱點就誕生了
那就是雖然安全、但是效率極差
必須改成更有效率的pos
但其實pos並不是最終完美的解答
反觀比特幣並不用每日大量的交易
大家是拿比特幣來做儲存價值
因此持續pow是沒有問題的
--
Sent from nPTT on my iPhone
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.20.255.103 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/DigiCurrency/M.1648311925.A.28D.html
... <看更多>