2016-05-20 非 IRC 會議摘要
概覽
- 連結至會議記錄 (文字)。
- 連結至會議記錄 (html)。
主要議題
- 隔離見證程式碼審查
- 未來位址類型的錯誤更正碼
- 點對點網路協定的加密
- 緊湊區塊中繼協定
- Schnorr 簽章與聚合
- 新的網路函式庫
備註 / 簡短議題
- 本次會議在瑞士蘇黎世舉行實體會議,而非一般的 IRC 頻道。詳情請見 http://coredev.tech/。
- 一些參與者藉此機會驗證 PGP 指紋並簽署彼此的金鑰,以擴大圍繞比特幣的 PGP 信任網,提升安全性。
- Bitcoin Core 使用的特殊 travis 快取功能現在應該對所有 GitHub 使用者開放,所以 CI 測試應該可以在任意儲存庫上執行,而不僅限於 Bitcoin Core。
- Greg Maxwell 注意到一些開發者似乎正在收到大量的 PDF 惡意軟體。
隔離見證程式碼審查
背景
隔離見證是一項從標準交易 ID 中省略簽章的變更,以消除非故意的可塑性。作為副作用,它也趁機改進了可擴展性並增加最大區塊大小。
會議討論
Jonas Nick 將 segnet(一個專門用於隔離見證測試的自訂測試網)回移到 0.9,並檢查 segwit 向下相容性以及啟用後升級到 segwit 版本的情況。Suhas 收集了一份剩餘測試清單。進行了大量程式碼審查,修復了一些小錯誤。討論了 fund-raw-transaction 的不尋常需求所帶來的不確定性。
會議結論
- Fund-raw-transaction 應該不需要變更共識層的 segwit 程式碼。
- sdaftuar 擬定了一份應該編寫的額外測試清單。
- 挖礦:研究 GBT 如何運作(非 segwit 感知的軟體不應該能夠發出 segwit 的版本位元訊號);請參閱 #7935 了解我們可能如何實作的一些背景資訊
- Segwit 的種子節點 - jonasschnelli 正在進行
- 在發行說明中添加文件。
- 審查我們如何處理異常行為的節點。
未來位址類型的錯誤更正碼
背景
在比特幣歷史的大部分時間裡,比特幣位址一直使用自訂的 base-58 編碼。遷移到支付協定的努力並未成功,因此未來可能需要新的位址類型。Base-58 普遍被認為是一種不良編碼,因此人們希望為未來的位址類型提出一種改進的編碼方式。
會議討論
Pieter 針對未來位址類型定義的高性能 base-32 BCH 碼,提供了工作進度更新。Pieter 在尋找易於實作且具有良好性能的代碼方面取得了良好進展(例如,30 個更正位元可以確保檢測到最多 4 個換位錯誤或 4 個替換錯誤)。
會議結論
使用錯誤更正邏輯進行可靠的錯誤檢測是個好主意,但基於安全原因,應明確不嘗試更正使用者錯誤。
點對點網路協定的加密
背景
比特幣網路目前不對節點之間的通訊進行加密。這會帶來安全問題(例如:被他人操縱流量),並允許對比特幣使用者進行大規模監控/分析。主要是因為比特幣的信任模型特性,這大多數情況下是可以忽略的,然而對於 SPV 節點來說,這可能對隱私有重大影響,並可能降低節點的抗審查能力。
加密節點流量將使分析和特定使用者目標鎖定比目前困難得多。今天,網路提供商或任何其他中間人都可以輕易識別比特幣使用者及其控制的位址/金鑰(並與他的 Google 個人檔案等連結)。剛建立和廣播的交易將向網路提供商揭露金額和收款人。
比特幣節點之間用於通訊的協定一直都是未加密的,因為通訊被視為公開的。然而,有些使用者希望為他們的錢包執行輕型客戶端,但又想使用自己的私有節點以獲得安全性,因此需要選擇性的安全性。
會議討論
Jonas Schnelli 更新了 BIP151,現在看起來已經可以進行試驗性實作。除了改善隱私之外,這項變更還應該讓 p2p 協定的 CPU 開銷更少。
會議結論
草案 BIP151 現已在 BIPs 儲存庫中發布,Jonas 將進行實作。
緊湊區塊中繼協定
背景
頻寬是在點對點網路中中繼區塊的主要瓶頸。除非能減少這個瓶頸,否則更大的區塊大小可能會對比特幣的去中心化特性造成極大損害。
從歷史上看,比特幣 P2P 協定在區塊中繼方面的頻寬效率不高。中繼時會包含區塊中的每筆交易,即使在中繼區塊之前,節點已經獲得了給定區塊中的大量交易。這對於接收區塊的節點會造成適度的入站頻寬峰值,但對於某些在其節點之前接收到區塊的節點,可能會造成非常顯著的出站頻寬峰值。當這種峰值發生時,緩衝區膨脹可能會使消費級網路連線暫時無法使用,並可能延遲將區塊中繼到遠端節點,這些節點可能選擇等待,而不是從其他較不擁塞的節點重複請求相同的區塊。
因此,減少區塊中繼期間使用的頻寬對許多執行節點的個人非常有用。
雖然這項工作的目標明確不是為了減少區塊傳輸延遲,但作為副作用,它確實在某些相當重要的方面減少了區塊傳輸延遲。此外,這項工作為未來明確針對低延遲區塊傳輸的工作奠定了基礎。
會議討論
更多人被要求審查記憶池互動(特別是使用引用計數而非複製)。
會議結論
繼續審查 BIP152 草案和 Core 實作 #8068。
Schnorr 簽章與聚合
背景
目前,比特幣對交易中消費的每個輸出都需要一個簽章,對於多重簽章幣的情況,每一方都需要一個簽章。Schnorr 簽章允許將這些簽章合併為一個可以對整個交易進行檢查的簽章,從而顯著減少驗證時間和資料大小。
會議討論
Pieter 介紹了他對於 schnorr 簽章和簽章聚合的構造想法的狀態。
會議結論
一般預期與 Schnorr 簽章相關的 BIP 將在接下來的 12 個月內提出。
新的網路函式庫
背景
Bitcoin Core 的網路程式碼非常簡約,不太靈活,也不容易改進。Cory 一直在進行重寫工作。
會議討論
Cory Fields 概述了他最近在新網路函式庫方面的工作。
會議結論
這最終可以用來移除原始碼中對 boost 的依賴。
默克爾抽象語法樹
背景
BIP114,默克爾抽象語法樹(MAST),是利用 segwit 腳本版本控制的比特幣腳本語言增強。它提高了條件交易的效率和隱私性。這個 BIP114 也安全地啟用了許多在比特幣早期版本中被停用的運算碼。MAST 腳本提高了隱私性,因為需要公開的資料較少,也可以使交易變小,從而節省空間。
會議討論
MAST 提案相當直接。它與目前的 P2WSH 方案非常相似。當你花費幣時,需要提供腳本、默克爾分支以及位置。你使用 ECDSA 驗證來計算根,並與 scriptpubkey 進行比較。它建立一個樹,其中葉子是腳本。然後你說,這是我正在執行的腳本,這是證明它已被承諾的默克爾分支。
討論了 MAST 的許多優點以及實作細節。
會議結論
MAST 依賴於 segwit 啟用。
子為父付費
子為父付費是一種透過建立另一個依賴於第一個交易的交易來為交易添加手續費的方法。
會議討論
拉取請求已經完成,可以進行審查。
會議結論
參與者
| IRC nick | Name/Nym |
|---|---|
| adam3us | Adam Back |
| kanzure | Bryan Bishop |
| jcorgan | Johnathan Corgan |
| sdaftuar | Suhas Daftuar |
| luke-jr | Luke Dashjr |
| Adiabat | Tadge Dryja |
| MarcoFalke | Marco Falke |
| cfields | Cory Fields |
| maaku | Mark Friedenbach |
| wumpus | Wladimir van der Laan |
| jl2012 | Johnson Lau |
| CodeShark | Eric Lombrozo |
| gmaxwell | Gregory Maxwell |
| nickler | Jonas Nick |
| instagibbs | Gregory Sanders |
| jonasschnelli | Jonas Schnelli |
| jtimon | Jorge Timón |
| petertodd | Peter Todd |
| sipa | Pieter Wuille |
免責聲明
本摘要編寫時未徵詢部分討論參與者的意見,因此任何錯誤均為摘要作者的責任,而非討論參與者的責任。
