簡要理解比特幣的時間鏈、挖礦費用、擴展性與閃電網絡等機制設計。

原文標題:《探索比特幣獨特時間鏈、挖礦費用及場外交易的概念》(Discovering Bitcoin Part 7: The Missing Pieces)
撰文:Giacomo Zucco
翻譯:天道酬勤

本文將以數字簽名和 CoinJoin 範例的使用爲基礎,探索獨特時間順序,挖礦費用和場外交易的概念。

證明單一性:時間鏈

我們最後結束時的探索計劃,再次回來這個問題「什麼時候 ?」從這裏開始。

這是一個重要的問題,因爲它證明了所謂的「區塊鏈技術」的引入是合理的,這是一個明顯被濫用的表達方式,在其最初的含義中,它只是爲一個獨特時間順序問題的答案貼上了標籤。(有趣的是,在這方面,中本聰本人將此結構稱爲「時間鏈」,這也是我們將在此處使用的術語)。

五分鐘瞭解比特幣時間鏈與閃電網絡等機制設計

回到我們的小故事,讓我們嘗試瞭解它解決了什麼問題。你設計了一個數字現金系統,在該系統中,發行和所有權都是分散的,巧妙地將難題和簽名結合在一起。

但是,我們如何防止用戶兩次花相同的 UTXO 呢?如果一個不誠實的用戶 Carol 將 sat 轉移到 Daniel 所控制的地址,然後簽署另一筆交易,將同樣的 sat 重傳到她所控制的地址,那麼網絡將執行哪個交易?從簽名和腳本鏈的角度來看,它們都將是「有效的」,並且都將指向有效的初始發行,並且具有正確的 PoW 難度。

在你之前的電子黃金實驗中,你值得信賴的時間戳服務器輕鬆地解決了這兩個問題。但是現在沒有中央服務器,那麼誰來定義事件的獨特時間順序呢?

如果網絡可以以某種方式投票,就可以對此達成民主共識。但是投票程序雖然在具有固定數量的已知參與者(通常稱爲「聯盟」)的系統中可行,但無法在未知的匿名參與者的動態集合中起作用。

你不能簡單地使用「節點數」作爲投票權的代理,因爲每個用戶都可以假裝在「 Sybil 攻擊」中「假裝」數百萬個不同的節點。你需要另一種「抵抗 Sybil 攻擊」的方式來推動所有節點在一個單一的、一致的、不變的歷史中找到(並保持)共識。

不幸的是,基於數學的確定性和最終解決方案在理論上是不可能的。但是基於經濟學的統計和漸近解決方案實際上是可行的,並且你足夠聰明,可以找到它。這是一個主意:每次礦工試圖解決 PoW 難題時,他們都應該在消息中包含當前交易時間軸的及時快照!

他們不應該只傳遞發佈消息,而應該通過散列函數傳遞更復雜的信息塊,每個塊包含(連同所述發佈消息,時間戳和以正確難度解決難題所需的隨機數)的解決方案。上一個區塊(其他礦工在大約 10 分鐘之前發現的區塊)以及其他用戶最近進行的交易列表。

包含先前塊中已經包含的交易塊被認爲是無效的。帶有與前一個時間戳明顯不兼容的時間戳的塊也被釋放。

使用這個技巧,所有參與者都被激勵去向相同時間序列的一致版本聚合。 Minnie 可能會包含與先前確認的交易相抵觸(雙花)的有效交易,或者更改時間戳以欺騙難度調整,但隨後其他節點會拒絕此類交易,從而浪費了新發行的價值,白白浪費了時間和精力。

礦工們花錢來解決難題,因此,至少在某些情況下,他們僅遵循系統內在的經濟激勵機制,就可以假設他們想要享受相關的獎勵,創建不會被拒絕的區塊是相當安全的。

挖礦費用

這種解決方案雖然出色,但仍缺乏激勵礦工參與他人交易的機制。他們可能只是選擇節省驗證腳本和簽名所需的計算能力(雖然沒有散列衝突所需的計算能力,但仍然是相關的),但仍將自己的有效簽發包含在其他空塊中發佈。

此外,由於控制供應模式,此類發行中允許的 sat 數量的減少,將降低(甚至爲 sat 的購買力的增加打折)解決障礙的動機,最終在最後一個時代結束時完全取消 ,那時將不會出現通貨膨脹。

你可以通過引入挖礦費用來解決此問題:用戶可以在交易中附加一小筆額外費用,來激勵礦工把他們包括進來。它的工作原理是這樣的:

該系統允許礦工將其獎勵交易包括在內,以及發行新「挖出的」sat (與當前時代兼容),在塊中還包括的所有有效交易的已創建和已消費的 UTXO 之間的 sat 餘額。費用從不取決於交易量,而僅取決於交易規模(腳本複雜性,簽名數量等)以及塊內所需的優先級。

可伸縮性 (和耐用性) 問題

包含在區塊中的交易所需的最低挖礦費根據「區塊空間」的供求而變化。在供應方面,可以添加到時間鏈的事務數受最大塊大小(每個塊小於 4 兆字節)和最大塊速率(每 10 分鐘大約一個)的限制。

在需求方面,每個用戶都有不同的約束和偏好(有些用戶可以等待更多的時間來支付更少的費用,有些用戶可以支付更多的費用來減少等待的時間,有些用戶使用具有出色的動態費用估算功能的錢包,有些則不使用)。一般來說,對區塊空間的需求增加將暗示挖礦費用的增加。 這顯然限制了系統的可擴展性(特別是,由於礦工費用與轉讓的價值量無關,我們可以說它實際上降低了可分割性 )

一般而言,使用時間鏈還意味着,網絡中的每個節點都必須永遠監聽所有事情:每一個鏈上交易都必須由每個參與者下載和驗證,這些參與者將使用該系統的整個歷史,甚至在很久時間以後。這樣的系統顯然是不可伸縮的。它也缺乏耐用性,因爲每個人都必須永遠保留每筆交易的副本,從而可以進行任何形式的取證分析和去匿名化嘗試。

對於某些用戶來說,可以使情況看起來更好,但代價是創建另一個更「有特權」的用戶類別。例如,如果你增加塊的大小和頻率,那麼塊空間的供應就會增加,其價格就會下降。但是,運行節點的成本 (能夠獨立驗證事務和塊的有效性) 的增長速度遠遠快於上述供應,從而集中了整個系統的拓撲結構。

當然,一種新的專門節點可以作爲某種「簽名消息」提供給非驗證的低級用戶,從而爲他們提供事務有效的某種保證。畢竟,引入貨幣是爲了將驗證貴金屬硬幣的昂貴任務委託給少數幾個專門的可信實體。但是,就像造幣一樣,這種策略 (被稱爲「SPV」) 意味着一種強大的中央集權,伴隨着馬洛裏(Mallory)等人所帶來的政治干預或審查的風險。

五分鐘瞭解比特幣時間鏈與閃電網絡等機制設計

一個新範例:「 Off-Chain」

有一種聰明的方法可以減輕全球共識系統的基本規模限制,而又不會犧牲其分散性。我們將其稱爲「鏈下範式」。

這個想法很簡單:只要在絕對必要之前就不要將每筆交易都提交到一個交易塊中,就可以將大部分流量都置於公共時間鏈之外(其昂貴的全球共識),僅將其用於解決衝突和定期解決。

這種演變類似於人們在普通法系統中使用法院和合同的方式:法院可以創建具有公共約束力的先例,達成某種「法律上的全球共識」,但是相對而言它既緩慢又昂貴,因此大多數交易方通常只簽署私人雙向合同,要求法院僅在發生衝突或需要定期解決時才進行驗證和執行。

可以使用高級智能合約來使這種「追索權」的信任度最小化:與實際的法律系統不同,分散的時間鏈可以避免人爲的偏見和腐敗,主要依靠密碼和代碼。與在虛擬化環境中討論的信用證書不同,脫鏈交易不是「虛擬」的。它們是實際有效的交易,無論涉及的各方是否誠實,都極有可能被系統強制執行。

你很快就會意識到,這種範例也可以極大地改善系統的耐用性。並非讓所有節點永久註冊所有交易,這些交易中的大多數將僅在感興趣的各方之間私下交換,從而使惡意竊聽者的取證分析變得更加困難、昂貴、不完整和不可靠。

這種策略的主要實現是由預先資助的雙邊「支付渠道」組成的輔助網絡,該網絡可以以信任最小化的原子方式跨多個躍點路由交易。用戶用一個極富詩意的名稱來稱呼它:「閃電網絡」(其縮寫通常包含在系統的整個協議套件的標籤中,名爲「 LNP / BP」,類似於歷史上的「 TCP / IP」 )。

但是,還有其他一些較小的例子存在於同一範例中。例如,有幾種技術可以使實際腳本不在需要的時間範圍之內,同時還可以節省塊空間和隱私。(人們給這些技術取了很多奇怪的名稱,例如「 Taproot」,「 Graftroot」,「 g * root」,「Scriptless Script」等。)

通過引入這些最終技術,你的用戶最終將擁有在現實生活中使用該系統所需的一切,以便收回一些最重要的貨幣功能。

來源鏈接:bitcoinmagazine.com