1. 程式人生 > >區塊鏈100講:比特幣,概率與隨機性

區塊鏈100講:比特幣,概率與隨機性

image

-比特幣工作量證明機制(PoW)和這對骰子遵循相同的規律-

隨機性構成了比特幣工作量證明(PoW)的基石。但我們是怎麼實現的?

隨機性研究簡史 [1]

隨機性一直是我們生活中不可或缺的一部分。很多古老的占卜儀式都是基於偶然性的:希臘人的拋骨(動物關節)占卜,中國人的抽籤占卜,西非人的歐佩爾占卜鏈。在遊戲和賭博中使用的類似骰子的物件也可以追溯到數千年前。

image

-籤卜-

然而,直到16世紀,我們才開始發明出必要的工具和語言來真正理解概率和隨機性。這些工具包含一些算數概念,例如分數和數字零。

概率和隨機性的研究始於一位名叫傑羅拉莫·卡達諾(Gerolamo Cardano)的人 [2]。1501 年出生於義大利的卡達諾知識淵博,是文藝復興時期最具影響力的數學家之一。他也是一個臭名昭著的賭博成癮者。由於嗜賭成性,卡達諾最終一貧如洗,變得默默無聞。然而,正是他在賭博方面的經歷,使他得以寫出《運氣遊戲書》——這是第一本系統分析概率和隨機性的書。有趣的是,卡達諾打算將這本書保密。這本《運氣遊戲書》自寫成到出版相隔一個世紀,遠遲於卡達諾離世。

image

-傑羅拉莫·卡達諾(1501-1576)-

卡達諾對我們理解偶然性和隨機性所做的主要貢獻是提出了樣本空間的概念。在最基本的層面上,計算事件的概率很簡單,假設所有場景發生的可能性相同,計算可能導致該事件發生的場景數量,然後除以所有可能場景的總數(“樣本空間”)。這個假設雖然只適用於擲骰子之類的問題,但是一個好的開端。

緊隨卡達諾其後的是伽利略和帕斯卡。伽利略是那個時代反叛知識分子精神的完美化身:與最強大的天主教會作對,並宣稱地球不是宇宙的中心。伽利略寫了很多重要的著作。在一個不是很出名的作品《關於骰子游戲的思考》中,他探討了卡達諾同樣感興趣的類似主題。

與費馬和笛卡爾同時代的帕斯卡比卡達諾和伽利略走得更遠。他發現了我們今天所說的帕斯卡三角。儘管其他國家(如:伊朗、中國和印度)的數學家早於帕斯卡幾個世紀就發現了相同的三角排列,但帕斯卡三角是最全面的,而且增加了新的應用,尤其是在概率論領域。帕斯卡還介紹了“帕斯卡賭注”及數學期望的概念。

從卡達諾、伽利略和帕斯卡播下的種子中,我們對概率和隨機性的理解慢慢加深,隨著時間的推移逐漸變得更加複雜和精妙。這是文藝復興時期的共同主題:一些基礎領域的突破(例如天文學、牛頓物理學、微積分、經驗論)奠定了科學基礎,創造了新的學科分支以及重大技術創新,並最終走向了工業革命。

以下列出了我們在探索概率與隨機性的過程中著名的里程碑:

  • 樣本空間

  • 排列組合

  • 帕斯卡三角

  • 大數定律

  • 小數定律

  • 貝葉斯理論——條件概率

  • 正態分佈&標準方差

  • 均值迴歸

  • 隨機遊走

  • 蒙特卡羅模擬

  • 偽隨機性

image

-正態分佈(也稱鐘形曲線)——圖源:Dan Kernler / CC 4.0 -

兩大最主要的理論發展是:蒙特卡羅模擬 和 偽隨機性。主要原因是它們與當今世界聯絡密切。

計算機的發明打開了通往全新隨機性應用的大門:計算機模擬。這是有史以來第一次,我們可以以較低的成本一遍遍重複地做實驗來“預測未來”,或者說是揭開隱藏的真相。計算機的出現解決了大量模擬實驗的成本問題,這在以前是不可想象的。

20世紀初,蒙特卡羅模擬技術的發明標誌著人類歷史上的一個重大轉折點。在文藝復興之前,人類經常生活在對隨機性和不確定性的恐懼之中,到了20世紀後,我們逐漸提升了對隨機性的理解,但仍在很大程度上讓隨機性決定了事物的走向。通過蒙特卡羅模擬技術,我們開始利用起了隨機性,從當初的小白成為了現在的大師。

值得注意的是,蒙特卡羅模擬的先驅包括約翰·馮·諾依曼和阿蘭·圖靈這兩位現代計算機教父。

如今,蒙特卡羅模擬的應用範圍很廣:舉幾個例子,有流體力學、商業、金融、人工智慧等。關於蒙特卡羅模擬如何(結合其他技術)引導我們獲得新發現,最近的 AlphaGo 事件就是最好的例子:AlphaGo 擁有豐富的圍棋資料庫,利用完全超越我們想象的步法擊敗了最頂尖的人類選手。AlphaGo 挑戰了機器不可能具有創造性的觀念,強迫我們重新思考“創造性”的真正含義。

蒙特卡羅模擬方法的日益普及促進了“偽隨機性”的發展(偽隨機指的是看似隨機,並非真正意義上的隨機),因為良好的模擬需要能夠密切反映現實中的隨機性。這種過程產生的數字是確定的,但它們通過了被認為是“隨機”的統計測試。相應地,偽隨機性成為了一個全新領域的基石之一——也是計算機時代的產物:現代密碼學。

它引導我們走向了比特幣。

隨機性在比特幣中的作用

比特幣的一項主要創新是使用工作量證明來建立分散式共識。PoW 提供了一個客觀的尺度,以此幫助比特幣網路參與者在無需建立互信關係的情況下達成共識。這與權益證明之類的方案不同,後者依賴對共識的主觀詮釋。本節假設 PoW 是實現區塊鏈的唯一安全方式。(要複習 PoW 的相關內容,請閱讀第 1 部分:剖析工作量證明。)

PoW 中的“工作”指的是尋找一個以連續的“0”為開頭且“0”的數量超過一定下限的雜湊輸出。(雜湊輸入有一些限制,例如格式和時間戳等)

比特幣的 PoW 機制使用的是被稱為 SHA256 的密碼學雜湊函式。密碼學雜湊函式的一個重要特徵是 單向性。這意味著不可能根據雜湊輸出一眼就推斷出雜湊輸入。單向性很大程度上還取決於 雜湊輸出的隨機性。

經證明這是非常關鍵的,因為如果雜湊函式沒有產生足夠隨機(“偽隨機”)的輸出,那麼就可以從一個指定輸出,即一個開頭含特定個“0”的字串,開始倒推。在最好的情況下,這會使工作量證明變得不可靠(校對注:即無法真實反映付出的工作量),在最壞的情況下則會讓它變得毫無用處。

簡單來說,典型的 PoW 機制的運作流程是:(a)提出一個求解範圍很廣的問題,(b)沒有捷徑,(c)求解的唯一方式是強行隨機搜尋這個範圍。就像在巨大的乾草垛中尋找一根針一樣。(正式的計算機科學術語是“無限概率迭代過程”——非常恰當)

因此,雜湊函式的隨機性決定了證明的強度。

雜湊(提供)→隨機性(支援)→工作量證明

“…一個好的難題讓每個礦工都有機會基於他們所貢獻的雜湊算力按比例解出下一個難題。這就好比隨機投擲飛鏢,不同尺寸的目標區域對應不同礦工擁有的挖礦算力。”——阿文德·納拉亞南 [3]

沒有正式的證據表明隨機性是 PoW 的強制性要求,但從經驗上看,這似乎是正確的。稍稍觀察下就能發現,凡是非隨機性求解的問題,求解和驗證所需的工作量一樣多。任何這樣的機制在可擴充套件性方面都會受到嚴格限制(請記住,比特幣難以在當前架構下擴充套件)。它還會過度青睞速度最快的礦工——以至於速度稍微慢一點的礦工什麼都賺不到。

基於隨機性的 PoW 的另一個好處是挖礦資格的開放性很強:礦工可以隨時加入或退出。他們可以在區塊剛被發現時就立即加入,或者 5 分鐘後再加入也沒關係,他們獲得下一個出塊獎勵的概率也不會改變。

那為什麼要使用雜湊函式呢?這是實現隨機性的唯一方式嗎?可能不是。除了雜湊,還有其他已知的方法可以模擬隨機搜尋的過程,例如整數分解或離散對數。

因此,雜湊很可能不是實現隨機性的唯一手段,而隨機性卻是建立數字化工作量證明機制的必要前提。

PoW 機制分為兩大類:

  • 計算密集型:隨機搜尋受處理器速度限制

  • 記憶體密集型:隨機搜尋受記憶體訪問限制

上述哪個類別更勝一籌還有待觀察(我個人認為記憶體密集型遜色一點 [4]),不過二者的內在機制是相同的:基於概率隨機搜尋大範圍的解,且驗證任意解的成本很低。

總之,只要人類尚存,就會與隨機性和不確定性死死糾纏。隨著 20 世紀現代計算機和蒙特卡羅模擬的發明,我們第一次將隨機性轉變為我們的優勢。在比特幣中引入隨機性標誌著這一漫長旅途中的又一個里程碑。簡而言之,隨機性在工作量證明中起到了為“證明”背書的作用。如果沒有隨機性或足夠好的偽隨機性,工作量證明將變得無效。

如果比特幣能在未來成功地變成一種貨幣,那麼它將成為我們迄今為止最重要、規模最大的隨機性應用。

感謝 Steve Lee 和 Nic Carter 提供的寶貴意見。

[1]: 有關隨機性的詳細歷史,請參閱倫納德·姆洛迪諾(Leonard Mlodinow)的“醉漢走路:隨機性如何控制我們的生活”。

[2]:不要與加密貨幣 Cardano 混淆,具有諷刺意味的是,該加密貨幣是基於權益證明的。

[3]:阿文德·納拉亞南,《比特幣和加密貨幣技術的全面介紹》一文的作者。

[4]:記憶體密集型 PoW 方案的幾個潛在問題:

記憶體密集型 PoW 仍然需要計算,不過是在記憶體技術已經趨於平穩的假設下執行的,這使得記憶體成為挖礦操作的主要瓶頸。但如果這個假設被打破,你可能就要面對兩股中心化力量(ASIC 和記憶體),而非一股中心化力量(ASIC)。

記憶體密集型 PoW 中使用的記憶體很可能在挖礦之外具有可再利用性。這可能會對網路安全產生負面影響,因為這可能會導致攻擊者從其他人那裡租用記憶體(因為任何可再利用的東西很有可能供應充分並出現偶爾的供應過剩),從而降低了多數攻擊的成本。一般而言,出於比特幣安全性的考慮,硬體的可再利用性是不可取的。

內容來源:公眾號-以太坊愛好者

原文連結:

https://medium.com/@hugonguyen/bitcoin-chance-and-randomness-ba49a6edf933

作者: Hugo Nguyen

翻譯&校對: 劉亞輝 Dev & 閔敏

以下是我們的社群介紹,歡迎各種合作、交流、學習:)

image