《精通比特幣(第三版)》發佈

作者:David A. Harding

來源:

我很高興能宣佈,由 Adreas Antonopoulos 和我聯合編寫的《精通比特幣(第三版)》現已由 O’Reilly Media 出版。

OlCKJ8eUk1RriL5AhGgwQDHFFSBCw6aKI6bjMiPE.png

最新消息

自上一版《精通比特幣》出版以來已過去了六年。 比特幣最好的部分屹立不改,但也有許多優化,讓比特幣變得更安全、更可擴展也更隱私。 第三版就介紹了一部分這樣的提升:

  • Schnorr 簽名是一種新的授權比特幣交易的強大方法。 我們為它的工作原理提供了一份易懂的解釋,啟發來自 Gregory Maxwell 和 Andrew Poelstra 的超乎尋常的簡潔描述,從 Claus Schnorr 最初的互動式身份驗證協定說起。 我們點點滴滴地加入細節,最終得出今天在比特幣上實現的 BIP340 標準。
  • 無腳本式多簽名使得幾乎無數個人可以一同創建一個公鑰,並僅在每個人都提供一個簽名時才能花費這個公鑰名下的資金;這極大地提升了比特幣的可擴展性和隱私性。 Schnorr 簽名讓無腳本式多簽名變得如此簡單,我們只需幾個段落,就可以描述其數學基礎。 然後,我們簡要介紹了 MuSig 多簽名協定家族,它們提供了對抗惡意聯合簽名人的額外安全性。
  • 默克爾抽象語法樹(MAST)同樣大大提高了比特幣的擴展性和隱私性;它允許在比特幣腳本中使用幾乎無限數量的條件,而且只有被滿足的條件才需要出現在鏈上。
  • 支付到合約(P2C)是一種修改比特幣公鑰的方法,最早出現在 2012 年,但沒有得到許多討論。 它使得我們可以用一個隱私的承諾來接收資金,這個承諾既可以永遠保持神秘,也可以公開證明。 它既強大又簡單,所以我們可以快速地講解它。
  • Taproot 結合了由無腳本式多簽名、MAST 和 P2C 提供的能力,並融合為一個協定。 因為我們前面已經介紹了這三種基礎性技術,所以很容易就能解釋 taproot 的工作原理,以及它在可擴充性、隱私性和同質性上給比特幣用戶帶來的巨大提升。
  • Bech32 和 Bech32m是分別由 「隔離見證」 和 「taproot」 升級引入的新的位址格式,讓位址更易於使用。 我們重寫了這本書關於位址的整個章節,現在,它會從比特幣最早的基於IP位址的支付協定 —— 可能也是 「位址」 這個名字的來源 —— 講起,從base85check位址一路講到由bech32(m) 帶來的提升。
  • 手續費管理在本書的舊版也有簡要解釋,但因為近期比特幣手續費市場的開發,我們加入了多得多的細節。 我們介紹了 RBF 和 CPFP 兩種手續費追加方法。 我們也介紹了它們可能會失效的情形(“交易釘死”)以及近期為合約式協定提出的部分解決方案(比如 “交易包轉發”)。
  • 無腳本式門限簽名可以作為帶有一種額外特性(可驗證的私鑰分割,verifiable secret sharing)的無腳本式多簽名變種,容易得到解釋;這也正是多年以前,我和另一位開發者在開發者討論中遇到了困難時,Gregory Maxwell 私下給我們的解釋。 我們又一次吸取了來自他的啟發,給出了一份非常易懂的解釋。
  • 緻密區塊過濾器是一種讓輕用戶端了解影響它們的錢包的交易的新方法。 這種方法對客戶端來說更加隱私,也更少對節點造成困擾。 我們使用簡單的算術和一對色子,介紹了緻密區塊篩檢程式的原理,在進入實現細節之前為讀者打下了一個堅實的基礎。
  • 緻密區塊既加速了區塊的傳播,又極大地降低了運行一個全節點的網路頻寬要求。 我們介紹了它的工作原理。 我們也介紹建立在緻密區塊基礎上、在可以相互信任不會發動拒絕服務攻擊的節點之間提供更快的區塊轉發的 FIBRE 區塊轉發系統。
  • BIP8 和 speedy trial 是啟動軟分叉的新方法。 我們不會介紹很多細節 —— 我完全不知道下一次軟分叉我們會使用什麼方法 —— 但提及了在 2021 年 taproot 啟動期間這種啟動方法被廣泛討論的特性。
  • 一份新的附錄在中本聰介紹比特幣的原創論文副本之後添加。 添加這個附錄是由 Matthew Zipkin 建議的,它是我在 2016 年撰寫的《比特幣論文勘誤》的一個少量更新的版本,介紹了中本聰在論文中描述的比特幣與他及後來的開發者真正實現的比特幣的差異。

新的聯合作者是誰?

本書的主要作者是 Andreas M. Antonopoulos,幾乎每一個比特幣人都知道他。 他作過不計其數的演講,出席過幾百檔播客,製作了許多視頻,還寫了好多本關於比特幣的書。 過去十年裡,他的大部分工作都致力於引導初次接觸比特幣的人、向他們解釋比特幣的工作原理,並幫助他們避開後果嚴重的錯誤。 要說有多少人因為他而改變對比特幣的看法、多少比特幣因為他及時的建議而免於被盜、丟失,只能說是不可勝數。

而新加入的聯合作者 David A. Harding(就是我啦!)也已經有接近十年的撰寫關於比特幣的技術文獻的經歷,但我瞄準的是更小的群體 —— 開發和直接使用比特幣協定的人,比如 Bitcoin Core、閃電網路和多個錢包庫的開發者。 我最著名的身份是 Bitcoin Optech 週報的聯合作者。 我的目標一直是讓這些開發者從長期來說更有成果一些,這樣比特幣協定就能更快去到它想去的任何地方。

至於這本書,我們從 Andreas 的第二版的文本以及他為第三版建立的一個大綱開始。 我修改了大綱,也加入了我在此過程中想到的一些東西(以及由早期審稿人建議的東西)。 第三版中出現的所有文本的最終決定權都在我,所以任何問題也都由我負責。

更新

除了幾十頁的新材料,我們還對本書原有的部分做了一些實質性的改進:

  • 授權和身份驗證的泛化:本書的舊版本介紹了比特幣的語言,但比特幣的新特性存在於 範圍之外。 舉個例子,P2WPKH 位址和 taproot 腳本路徑的默克爾證據。 我們從 Peter Todd 在 2014 給我的一個評論中得到啟發:我們展示了比特幣的授權和身份驗證方法的演化,從白皮書所介紹的版本(公鑰與簽名)到 Bitcoin 0.1 軟體所實現的版本(腳本公鑰與腳本簽名),再到隔離見證(見證程式與見證結構)。 這不僅為現在的比特幣輸入驗證中的大量不同特性提供了背景,也顯示了為什麼比特幣的 「腳本」 和「程式」 不是為任意計算而設計的 —— 它們可以被認為只是非常靈活的公鑰和簽名。
  • 術語:中本聰給了我們比特幣,但是,唉,他並沒有給我們一套前後一致的術語。 Bitcoin Core 開發者常常使用從他們的代碼的函數命名中派生的術語。 其他開發者又使用不同的術語。 幸好,在本書的編寫期間,Mark “Murch” Erhardt 提出了一個 BIP,推薦了跟交易相關的術語。 他的 BIP 還未定稿,所以可能會變化,但我們更新了全書的每一個章節,以使用建議的術語。 我們知道其他開發者和技術作者正在對自己的軟體和文檔作類似的更改,我們都認為這會幫助開發比特幣的每一個人。
  • 「染色幣」 現在換成了 RGB 和 Taproot Assets:自本書初版以來留存至今的一個介紹染色幣(colored coins)的章節,更新成了介紹兩種為在比特幣區塊鏈上錨定非比特幣轉移的新協定。 兩種協定都基於 「支付到合約」 所以,有了前面跟 taproot 有關的介紹,我們只需介紹他們倆的共同磚石:「客戶端驗證」 概念。
  • 更多的備份及復原系統:六年以前,本書推薦一種簡單的備份套裝,由 BIP 32/39/44 組成。 今天,錢包備份多了很多選擇,每一種的取捨都各有道理。 在確定性的密鑰生成方面,BIP32 依舊保持至高的地位,但我們也介紹了不同的種子詞生成演算法(例如,BIP39 vs. SLIP39 vs. Electrum vs. Aezeed,還簡單提及了 Codex32)、對比隱式路徑(例如 BIP44)和顯式路徑(例如 “描述符”),還介紹備份錢包標籤(致敬 BIP329)和其他數據(比如通道狀態)的重要性。
  • 交易的每一個字段:舊版本介紹了一筆交易所包含的絕大部分欄位,但這次我們用幾乎全新的一個章節來按順序介紹一筆序列化交易的每一個字段,並解釋它們的用途。 與我看過的其它介紹不同,我們採取了 「以隔離見證為原生」 的方法,將隔離見證所添加的欄位視為一筆交易的一等重要部分,僅在章節末尾才提到傳統交易的序列化應移除哪些欄位。
  • 許多小的糾正與更新:我無法統計自上一版出版以來,多少小的細節需要更新。 但是,毫無疑問,新版本中也會有錯誤、缺漏、令人困惑的過時資訊,所以我鼓勵每一位讀者也檢查檢查出版社為第三版提供的 「勘誤頁面」。
  • BIPs:前一個版本的列舉了所有 BIP 的附錄,換成了 Bitcoin Core 文檔的一個略微編輯之後的版本,列舉了 Bitcoin Core 所實現的 BIP。 一些人認為,所有的 BIP 都是建議開發者社區普遍採用的標準,但許多 BIP 都是垃圾。 我們不希望本書的讀者花時間去學習這些垃圾。 Bitcoin Core 開發者只採用他們認為對軟體的使用者有用的 BIP。 這並不是有用的 BIP 的全面清單,只是一個非常棒的清單,讀者不必擔心我們有所偏愛

缺少的部分

本書的技術審稿人包括 Mark “Murch” Erhardt、René Pickhardt、Olaoluwa Osuntokun 以及 Jorge Lesmes,每一位都提供了讓人驚訝的反饋。 我盡己所能地解決他們的擔憂,但有兩項實質性的改變我已沒有時間來完成了:

  • 更好地講解閃電網路:本書新版的文本提到 「閃電網路」 幾十次,也解釋了何以基礎層的設計會影響二層的運行,但一位審稿人正確地指出,我們應該重寫開頭的概述性章節,以更好地反映有多少人正在使用集成了閃電網路的錢包。
  • 部分簽名的比特幣交易(PSBT):雖然我們在本書中提到了 “PSBT”,我們沒有講述任何細節;另一位審稿人認為這是一個刺眼的遺漏,因為 PSBT 在今天的比特幣的許多方面都很重要,從硬體簽名設備到多方協定。

我完全同意這些審稿人的意見。 我希望 O’Reilly 有興趣在幾年後出版本書的第四版,並且繼續邀請我作為一位聯合作者,讓我可以糾正這兩項明顯的遺漏。

關於 Brink

我很高興地宣佈,我將把《精通比特幣(第三版)》帶給我的版稅盡數捐給一個 501(c)(3) 非營利組織 Brink。 Brink 當前為多位全職開發 Bitcoin Core 的開發者提供資助。

我曾擔任 Brink 的董事會成員,現在是其獎金委員會的成員,兩個身份都是無薪酬的獨立成員,而且我也很高興能為其傑出的開發者團隊提供財務上的支援。 我並不期待自己能收到很多版稅 —— 技術專著一般不會成為暢銷書 —— 但我會保持關注,並在這份表格中公開自己的收款和捐贈。

哪些書做得更好

《精通比特幣》的第一版是第一本真正付梓的比特幣技術書籍。 自那以來,許多別的書,以各自的方式處理這個主題,也得到了出版。 我閱讀了其中一些,認為它們都很棒,所以我認為值得將它們與《精通比特幣(第三版)》(MB3E)比較一下。 顯然,這種比較基於我個人的極端偏見。

  • Grokking Bitcoin,由 Kalle Rosenbaum 撰寫,是我個人最愛,並不僅僅因為 Kalle 曾邀我作序。 MB3E 的其中一位審稿人評論,MB3E 的第 1 ~ 2 章是對比特幣的溫和概述,但倒了 3 ~5 章突然就變成了一本技術成分很高的書。 (我認為從第 6 章開始,它又變得溫和了。 )相比之下,Grokking Bitcoin 是對比特幣之下的概念的極為流暢的介紹。 它從每個人都能理解的對貨幣的基本描述開始,然後逐步引入來自計算機科學的觀念,直至你理解比特幣是一種貨幣。 它不像 MB3E 在專業性上走得那麼遠,而且也不像 MB3E 這樣持續更新,但我非常推薦專門閱讀它,或者作為 MB3E 的補充。
  • The Bitcoin Standard,由 Saifedean Ammous 撰寫;就我所知,是最暢銷的比特幣書籍。 這本書寫的是比特幣在歷史和經濟學中的位置,並不是關於比特幣的工作原理的,但我很榮幸在其草稿階段審核了它介紹比特幣運行的技術部分(例如,挖礦及支付的批量處理)。 我認為這本書的卓越之處在其證明了市場總是在尋找可用的最佳形式的貨幣。 在市場上,最好的貨幣通常是最受廣泛使用的那種,因此,那些控制這種最受歡迎的貨幣的人常常可以為這種貨幣引入一些負面特性,以犧牲使用者的利益、轉化成他們自己的利益和權力。 但是,如果一種新的貨幣有更少的負面特性,並且還有一些新的好特性,那麼很大概率市場最終會遷移到這種新貨幣上,讓它變成最受廣泛使用的貨幣。 比特幣有望成為這種新貨幣。 因為 MB3E 是一本技術書籍,除了一些基本的關於 2100 萬 BTC 數量限制的討論之外,我們無法介紹別的東西。 所以,如果你希望得到一個更廣闊的經濟學視角,關於為什麼比特幣可能 真的 有意義,我建議你讀讀 Saif 的書(但我也希望你會考慮回到 MB3E 來瞭解比特幣的技術,因為兩者都很酷。 )
  • Bitcoin: A Work In Progress,由 Sjors Provoost 撰寫。 很棒的書,尤其書名,真讓我後悔自己沒能搶先一步。 Sjors 是一個 Bitcoin Core 開發者,尤其因為能在人們給這個網路最重要的軟體提出重要改變時提供高品質的審核意見而知名。 這本書的每一個章節都提供了關於過去幾年中發生在比特幣上的東西的深度討論,這使它既是解釋,也是歷史文獻。 我愛它。 不需要很多背景就能閱讀 Sjors 的書,所以你可以單獨閱讀,但如果你讀完了 MB3E、又想找一本書 —— 有趣但不離技術的書 —— 來讀,我會推薦這一本。
  • Programming Bitcoin,由 Jimmy Song 撰寫,提供了開發錢包、使用它來發送和接收交易的不計其數的練習。 我同樣有幸在這本書的草稿階段提供技術上的反饋,但正是 Jimmy 的推薦,使我被選為 MB3E 的聯合作者。 不同人有不同的學習習慣,對於大部分程式師,最好的學習方式就是編寫他們想要學習的東西的代碼。 這就是 Jimmy 的書的優越之處。 如果你想學習,比方說,位址的格式,Jimmy 會讓你編寫幾乎真的可用的base58check代碼。 如果你想要一個不需要程式設計、更繁瑣、更理論化的方法,那麼 MB3E 可能更適合你。 如果你要雙管齊下,請考慮兩本書對照閱讀:直接閱讀 MB3E,瞭解這些技術是如何組合在一起的;再閱讀 Programming Bitcoin,通過實踐來鞏固你的所學。
  • Mastering the Lightning Network 也是由 Andreas Antonopoulos 與 Olaoluwa Osuntokun、René Pickhardt 聯合編寫的書,他們兩位也都友善地為 MB3E 提供了細緻的早期審核。 Mastering LN 有點像是上一版 Mastering Bitcoin 的續篇。 如果你一點閃電網路也不懂的話,就不可能真正理解現在的比特幣開發。 在 MB3E 中,我們很早就介紹了閃電網路,並在全書中不斷重複,但任何嚴肅對待比特幣的人都應該考慮至少流覽一下 Mastering LN。 在我曾經為草稿提供過技術反饋的比特幣書籍中,這本是我最不需要批評的 —— 它在幾乎每一個細節上都是準確的。
  • Bitcoin Development Philosophy,由 Kalle Rosenbaum 和 Linnéa Rosenbaum 撰寫,概述了比特幣協議的開發者如何理解他們培育的技術。 如果你讀完了 MB3E 或其它任何書、任何文獻,覺得自己知道怎麼提升比特幣,我會建議你在公開聲明之前讀讀 Rosenbaum 的概述。 大部分變更都涉及取捨,但有一些取捨是絕大部分開發者和使用者都不會感興趣的。 舉個例子,比特幣的幾乎所有方面都可以通過增加對第三方的信任而得到改善,但大部分人都不想要這樣(尤其在核心協定中),都擔心對第三方的依賴最終會讓他們的比特幣被盜以及被審查的風險日益增加。 我認為,這本書最適合那些讀完 MB3E 後計劃參與比特幣開源軟體開發的人。
  • Onboarding to Bitcoin Core,由Will Clark 編寫,是一份令人驚歎的文獻,介紹了 Bitcoin Core 的所有重要部分。 如果你計劃為 Bitcoin Core 作貢獻,這是一本必讀書;但任何人如果想建立對比特幣工作原理的深入理解,這也是一份補充讀物。 我明確建議,在讀這本入門指南之前先閱讀 MB3E 或其它關於比特幣的介紹性文獻,但如果你想在一周內學會可能需要你獨自探索幾年才明白的 Bitcoin Core,我最推薦 Clark 的指南。 (糾正:本文曾誤將這份指南的作者指為Matthew Zipkin;現在已更正為Clark。 我為我的錯誤向兩位致以真誠的歉意。 )

來源:金色財經

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 轉發
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate App
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)