ビットコイン開発の歴史がわかる記事:サトシ・ナカモト氏がプロジェクトを離れる前後の開発状況
以太坊爱好者
2021-09-24 03:16
本文约8952字,阅读全文需要约36分钟
ビットコイン開発の現状の背後にある理由を完全に理解するには、いくつかの歴史的出来事を理解することは不可能です。

作者: 0xB10C

作者: 0xB10C

翻訳: ア・ジアン

私はここで起きたほとんどの出来事の目撃者ではありません。したがって、このタイムラインの大部分は、ジョン・ニューベリーによる「ビットコイン開発の歴史と哲学」と呼ばれる講演から引用されています。この記事のタイトルも非常に明確ですが、この記事では重要な出来事をすべて取り上げているわけではありません。歴史は常に流動的です。何かが足りないと思われる場合、または変更を提案したい場合は、オープン ソース プロジェクト bitcoin-development-history に問題を提出してください。そうすることで、私はタイムラインを追加しています。

最初のレベルのタイトル

サトシ・ナカモトがまだいた頃

このタイムラインの開始点は 2007 年初頭です。サトシ・ナカモトはビットコインの開発を始めました。このピアツーピア電子現金システムを信頼できる余地はありません。システム全体は、ユーザーが実行するソフトウェアによって完全に制御されます。

早い段階で、サトシの仕事に参加する寄稿者がいました。ソフトウェア開発に加えて、これらの新しい貢献者は、ソフトウェアに Linux および maxOS オペレーティング システムのサポートを追加しました。 2010 年の夏までに、サトシはソフトウェアにいくつかの重要な変更を加えました。たとえば、低難易度の連鎖を伝播する攻撃に対するセキュリティ対策として「チェックポイント」が導入されました。これらのチェックポイントを使用するノードは、特定の高さの特定のブロックに一致しないチェーンを拒否します。チェックポイントはサトシだけによってハードコーディングされており、理論的にはサトシがネットワーク全体がどのチェーンに従うかを自分で決定することができます。

チェックポイントに参加してから数日後、サトシ ナカモトはソフトウェアのバージョン v0.3.3 で最初のコンセンサス メカニズムの変更をリリースしました。サトシ・ナカモト氏はユーザーにアップグレードするよう呼び掛けた。来月には複数のマイナーバージョンアップが続々とリリースされる予定だ。そのうちの 1 つは致命的なオーバーフローのバグを修正します。この脆弱性は、2 つの高価値 UTXO を作成するために悪用されました。サトシは、マイナーが悪意のあるトランザクションを含むブロックを再編成することを提案しました。

1 週間後、サトシはネットワーク内の同様のバグや問題をノード オペレーターに警告するための警告システムを追加しました。この警報システムにはセーフモードがあります。このセキュリティ モードがトリガーされると、ネットワーク全体で通貨処理のためのすべての RPC メソッドが無効になります。有効なネットワーク アラートを作成するために秘密キーで署名できたのは、サトシ ナカモトだけでした。一部のユーザーは、「政府などの誰かがこの秘密鍵を入手した場合、ネットワークはどうなるのだろうか?」と疑問を持ち始めました。

2010 年 10 月、サトシ ナカモトは bitcointalk フォーラムに最後の投稿を投稿し、このセキュリティ モデルの削除を発表しました。サトシは最後の電子メールの1つで、「私は他の場所に行く準備ができています。ギャビンとみんなと一緒に、このプロジェクトはうまく維持されます。」と書いているが、サトシがビットコインの世界を離れることは彼の最大の貢献の1つであると主張する人もいる。

最初のレベルのタイトル

サトシが去った後

ほぼ同時に、開発プロセス全体が SVN から GitHub に移行しました。 BlueMatt、sipa、laanwj、gmaxwell がプロジェクトに参加しました。 2011 年半ばに、BIP (ビットコイン アップグレード提案) プロセスが誕生しました。 2011 年の最後の四半期と 2012 年の最初の月の間に、コミュニティは取引の受信者が支出条件を指定できるようにするいくつかの提案について議論しました。このようにして、P2SH トランザクションがビットコインに導入されました。

2012 年末に、ビットコイン財団が発表されました。 Bitcoin Foundation は Linux Foundation をモデルにしています。発表投稿の下には、開発が集中化することを懸念するメッセージを残した人もいた。

ビットコイン v0.8.0 は 2013 年春にリリースされました。 2 週間後、ネットワーク内のアップグレードされたノードとアップグレードされていないノードの間で予期しないハード フォークが発生しました。ハードフォークはすぐに解決され、マイナーはマイニングパワーをアップグレードされたノードとアップグレードされていないノードの両方で機能するチェーンに切り替えました。

2 年目、Luke Dashjr は BIP 2 を通じて BIP プロセスを改訂し、Bitcoin Core v0.13.0 をリリースし、SegWit をソフト フォークとして追加しました。 2016 年 11 月に、アラート システムは完全に廃止されました。 2017 年 8 月までに、SegWit はビットコイン ネットワーク上で有効化されました。 2019年には、別の企業Square Cryptoがビットコイン開発への資金提供を開始した。 2019 年 5 月、Pieter Wuille は BIP の主根を提案しました。

最初のレベルのタイトル

ビットコイン開発の現状

過去数年間で、ビットコインの開発文化はますます分散化され、目的を持って厳格になってきました。 Bitcoin Core コードベースには現在、3 か国にまたがる 6 人のメンテナーがいます。寄稿者によって提案されたコード変更を組み込むことができるのは、寄稿者だけです。ただし、変更されたコンテンツは、コンテンツがマージされる前に、より厳格になるレビュー プロセスも通過します。

例えば、ビットコインの初期には「OP_EVAL」というP2SHに対抗する提案がありました。 OP_EVAL を実装するプル リクエスト (「マージ リクエスト」) は、2011 年末にコードベースにマージされました。コンセンサスに大きな変更を加えたコードであっても、レビュー担当者は 1 人だけです。 Russell O'Connor は、実装の一部を批判し、このような大規模でコンセンサスが重要な変更はもっと検討され、テストされるべきだと論じて問題を提起しました。

このインシデントは、より多くのテストと監査を通じてより高品質のコードを実現する方法についての継続的な議論を刺激しました。現在、各マージ リクエストは複数の開発者によってレビューされています。変更がセキュリティの重要な部分やコンセンサスに関わる場合、レビュープロセスはより多くのレビュー担当者によってレビューされる必要があり、多くのテストが必要となり、通常は数か月かかります。 Bitcoin Core の積極的な貢献者である John Newbery 氏は、「コンセンサスに影響を与えるコードのマージを承認できるのは 1 人のレビュアーだけだった時代は終わった」と語った。

長年にわたる努力の末、ビットコイン コア ソフトウェアは明確なリリース プロセスを形成しました。 Bitcoin Core のメジャー リリースは 6 か月ごとにリリースされます。リリース計画には、翻訳プロセス、機能凍結プロセス、および多くの場合、複数のリリース候補が含まれます。最近、Cory Fields と Carl Dong は、決定的でブート可能なビルドパックを使用して、ビットコイン コア ビルド プロセスのセキュリティの向上にも取り組みました。この新しいビルド システムは、この秋にリリースされる Bitcoin Core v0.19.0 をサポートする準備ができていない可能性がありますが、将来的にはビルド プロセスのセキュリティが向上する可能性があります。

最初のレベルのタイトル

タイムライン

2007 年初頭: サトシ・ナカモトがビットコインの開発を開始

サトシ・ナカモトはビットコインのコードを書き始めました。これは、2008 年 11 月 17 日に暗号メーリング リストにサトシ ナカモトによって書かれた電子メールによるものです。

「過去 1 年半のプログラミングで、これらの詳細をすべて練り上げたと確信しています。」

参照: 電子メール (metzdowd.com) および電子メール (nakamotoinstitute.org)

2008 年 11 月 1 日: ビットコインのホワイトペーパーが公開されました。

サトシ・ナカモトは暗号メーリング・グループでホワイトペーパーを発表しました。

「私は、ユーザーが信頼する必要のあるサードパーティが存在しない、完全にピアツーピアのまったく新しいデジタル キャッシュ システムを開発してきました。」

参照先: 電子メール (metzdowd.com) および電子メール (nakamotoinstitute.org)、およびホワイトペーパー

2009 年 1 月 3 日から 9 日まで: ビットコインのジェネシス ブロックがマイニングされる

ジェネシス ブロックのタイムスタンプは 1 月 9 日です。

このブロックの Coinbase トランザクション (新しいコインを発行するトランザクションの種類) には、有名な一節が含まれています。

「タイムズ紙 2009 年 1 月 3 日 銀行に対する 2 回目の救済の瀬戸際にある首相」

参照: ブロック ブラウザ、百科事典のエントリ

2009 年 1 月 9 日: ビットコイン v0.1 ソフトウェアがリリースされました。

サトシ・ナカモトは暗号メーリンググループに次のように書いています。

「ビットコイン ソフトウェアの最初のバージョンをリリースしました。ビットコインは、ピアツーピア ネットワークを使用して複数の支払いを防ぐ新しい電子現金システムです。完全に分散化されており、サーバーや集中管理された権限はありません。」

参照: 電子メール

2009 年 12 月 16 日: ビットコイン v0.2 ソフトウェアがリリースされました。

Martti Malmi (sirius-m) は、Linux システムの予備サポートを追加しました。その他の新機能には、複数の CPU コアを使用したマイニングやプロキシ使用の予備サポートなどがあります。

参照: bitcointalk.org

2010 年 7 月 6 日: ビットコイン v0.3 ソフトウェアがリリースされました。

Laszlo Hanyecz (ビットコインピザ屋) が macOS のサポートを追加しました。その他の新機能には、JSON-RPC インターフェイスや新しいデーモン モードなどがあります。ユーザー支援により、ソフトウェアのグラフィカル インターフェイスがドイツ語、オランダ語、イタリア語に翻訳されました。

参照: bitcointalk.org

2010 年 7 月 15 日: Bitcoin v0.3.1 ソフトウェア (パッチ) リリース

さまざまなバグを修正しました。ギャビン・アンドレセンが貢献を開始しました。

参照: bitcointalk.org

2010 年 7 月 17 日: ビットコイン v0.3.2 ソフトウェアがリリースされました。

サトシ・ナカモトは安全対策として検問所を追加した。チェックポイントは、特定の高さのブロックのハッシュ値をロックすることです。特定の値でなければなりません。そうでない場合は拒否されます。サトシ・ナカモトは次のように書いています。

「おそらく今から始めて、新しいリリースごとにチェックポイントを追加すると思います。ソフトウェアが一般に受け入れられるブロックチェーンをすでに決定している場合、数か月以内に徐々に問題が発生する可能性のあるチェーンを放置する意味はありません。」後で。"

参照: bitcointalk.org、チェックポイントが追加されました (GitHub の差分)

2010 年 7 月 25 日: ビットコイン v0.3.3 ソフトウェアがリリースされました。

このバージョンには、最初のコンセンサスレベルの変更が組み込まれています。

ビットコイン ソフトウェアは、最も蓄積された作業を伴うチェーンの追跡を開始します。その前に、文字通り最長のチェーンをたどります。

参照: bitcointalk.org、コンセンサス変更 (GitHub の差分)

2010年の夏中ずっと

この間に複数のバージョンのビットコイン v0.3.xx がリリースされました。

2010 年 8 月 15 日: 致命的なオーバーフローのバグが修正されました。

サトシ・ナカモトは v0.3.9(ish) でパッチをリリースし、ユーザーとマイナーにオーバーフロー エラー トランザクションのあるブロックを再編成するよう指示しました。

参照: bitcointalk.org

2010年8月22日:アラートシステム導入

サトシ・ナカモトは、v0.3.11 で追加される予定のアラート システムの開発を開始しました。彼が書きました:

「私はアラート システムを作成しています。アラートはネットワーク全体にブロードキャストされ、ソフトウェアの一部のバージョンではブロードキャストされます。アラート メッセージは、私だけが知っている秘密キーで署名されています。」

「ノードが時折一時的に停止するのはショックかもしれませんが、お金が吸い取られたことを知ったときのショックよりはマシです。」

「長い間新たなバグが見つからず、徹底したセキュリティチェックで何も見つからなかった場合は、システムを縮小することができます。私はそれを永久に使用することを主張しているわけではありません。しかし、ビットコインはまだベータ段階のソフトウェアです。」

参照: bitcointalk.org

2010 年 12 月 12 日: サトシ・ナカモトによる最後の投稿

bitcointalk.org へのサトシ・ナカモトの最後の投稿。彼はいくつかの DoS 制限を追加し、前述の警告システムのセーフモードを削除しました。

「DoS 防御に関してはやるべきことがまだたくさんありますが、私は何かが起こった場合に備えてバックアップのクイック ビルド パッケージに取り組んでいます。より複雑なアイデアは後で考えます。このパッケージでビルドするソフトウェアは v0.3.19 です。」

参照: bitcointalk.org

2010 年 12 月 19 日: 開発は GitHub に移行されました

ビットコイン ソフトウェアの積極的な開発と問題追跡は GitHub に移行されました。

参照: GitHub によって記録された最初の問題

2011 年 4 月 23 日: サトシ・ナカモトの最後の声

サトシがマイク・ハーンに宛てた最後のメールからと思われる:

「私はすでに他のことに取り組んでいます。ギャビンとみんながこれを正しく理解するでしょう。」

参照: Pastebin.com での電子メールでの会話

2011 年 3 月から 6 月: 新しい貢献者が加わりました

TheBlueMatt (3 月 3 日)、sipa (3 月 12 日)、laanwj (3 月 15 日)、および gmaxwell (6 月 18 日) という数人の新しい寄稿者が加わりました。

最初のマージ リクエストを参照してください: TheBlueMatt、sipa、laanwj、gmaxwell

2011 年 8 月 19 日: 最初の BIP

最初の BIP「BIP 1: BIP の目的とガイドライン」が表示されます。

参照: GitHub の BIP 1

2011 年 9 月 23 日: ビットコイン v0.4 がリリースされました。

v0.4 がリリースされました。主な新機能はウォレットの暗号化です。参照: アップデートノート

2011 年 11 月 21 日: Bitcoin-QT v0.5 がリリースされました。

新機能は、新しい qt GUI とウォレット暗号化の主要な修正 (CVE-2011-4447) です。

参照: アップデートノート、CVE-2011-4447

2011年11月~2012年4月:P2SHおよびその他の提案に取り組む

いくつかの提案 (OP_EVAL、P2SH、OP_CHV) は、トランザクションの受信者が資金を使用するスクリプトを指定できるようにすることを目的としています。

P2SH は Bitcoin-Qt v0.5.4 に実装されています。残りの2つは落とされました。

参照: BIP 12: OP_EVAL、OP_EVAL マージリクエスト、OP_EVAL 再帰的問題、BIP 16: P2SH、BIP 17: OP_CHECKHASHVERIFY

2012 年 3 月 30 日: Bitcoin-QT v0.6 がリリースされました。

新機能には、アドレスの QR コード、BIP30 (コインベース トランザクションのコピーを伴う攻撃に対するセキュリティ修正) の実装、メモリ関連のサービス拒否攻撃ベクトルの修正が含まれます。

参照: アップデートノート

2012 年 9 月 17 日: Bitcoin-QT v0.7 がリリースされました

BIP22、BIP34、BIP35 の実装に加え、グラフィカル インターフェイスに対する多くの変更、およびネットワーク用の RPC コードが含まれています。

参照: アップデートノート

2012 年 9 月 27 日: ビットコイン財団の発表

ギャビン・アンドレセン氏はビットコイン財団の設立を発表した。

参照: bitcointalk.org への投稿

2013 年 2 月 19 日: Bitcoin-QT v0.8 がリリースされました

この更新により、ブロックチェーンのストレージが BerkleyDB データベース形式から LevelIDB データベースに移行されます。 「Ultraprune」機能は、UTXO セットをブロックチェーン データベースから分離した sipa (Pieter Wuille) によって実装されました。

参照: アップデートのお知らせ

2013 年 3 月 11 日: 予期せぬハードフォーク

予期せぬハードフォークが発生し、v0.8 ノードが古いバージョンから分離されました。

参照: BIP 50: 2013 年 3 月のチェーン分割イベントの事後レポート、bitcoin.org ネットワーク アラート

2013 年 12 月 12 日: ソフトウェアのブランド変更

Bitcoin-Qt ソフトウェアは、Bitcoin Core という新しい名前で再パッケージ化されました。

参照: GitHub での PR

2014 年 3 月 19 日: Bitcoin Core v0.9 がリリースされました

新機能には以下が含まれます: OP_RETURN オペコードはブロックチェーンにデータを書き込むことができますが、関連する UTXO も使用できなくなります。また、ビルド システムとして autotools が使用され、RPC クライアントとして bitcoin-cli (コマンド ライン ツール) が導入されています。

参照: アップデートノート

2014 年のいつか: Chaincode Labs が設立される

Alex Morcos と Suhas Daftuar は、エンジニアや科学者が分散型デジタル通貨の開発をサポートできるスペースを作成するために、2014 年に Chaincode Labs を設立しました。

2014 年 10 月 23 日: ブロックストリームの開始

Adam Back、Matt Corallo、Greg Maxwell、Pieter Wuille らが Blockstream 社を設立し、サイドチェーンのホワイト ペーパーをリリースしました。

参照: Blockstream を開始した理由?

2015 年 2 月 16 日: Bitcoin Core v0.10.0 がリリースされました。

重要な更新には、ブロック ヘッダーを最初に同期するための同期メソッド、REST インターフェイス、トランザクションを作成および操作するための bitcoin-tx モジュールが含まれます。

参照: アップデートノート

2015 年 2 月: ライトニング ネットワーク ホワイト ペーパーがリリースされました

Joseph Poon と Thaddeus Dryja がライトニング ネットワーク ホワイトペーパーの初稿を公開

参照: ライトニングネットワークホワイトペーパー

2015 年 4 月 15 日: MIT DCI が発足

MIT メディア ラボがデジタル通貨イニシアチブ (DCI) を立ち上げます。 DCI は、暗号通貨とブロックチェーン技術に焦点を当てた研究コミュニティです。

参照: DCI 発売のお知らせ

2015 年 7 月 12 日: Bitcoin Core v0.11.0 がリリースされました

このバージョンのソフトウェアには、主要な機能としてブロック ファイルのプルーニングが含まれています。

参照: アップデートノート

2016 年 2 月 3 日: BIP 2

Luke Dashjr は BIP 2 の草案を作成し、より明確に定義された BIP プロセスを提案しました。この提案はコミュニティに受け入れられました

参照: BIP 2: BIP プロセスの改訂

2016 年 2 月 23 日: Bitcoin Core v0.12.0 がリリースされました。

主な更新内容は、libsecp、sendheader、オプトイン RBF (BIP 125)、およびトランザクション メモリプール制限の導入です。

参照: アップデートノート

2016 年 4 月 15 日: Bitcoin Core v0.12.1 リリース

このバージョンには、BIP 9 (バージョン識別ロジック) と OP_CHECKSEQUENCEVERIFY ソフト フォークの定義が含まれています。

参照: アップデートノート

2016 年 8 月 23 日: Bitcoin Core v0.13.0 がリリースされました。

segwit (分離監視)、圧縮ブロック機能、手数料価格に基づくトランザクション プール フィルタリング、HD ウォレット ヒステリシス、CPFP トランザクション選択アルゴリズムの変更が含まれています。

参照: アップデートノート

2016 年 10 月 27 日: Bitcoin Core v0.13.1 がリリースされました

このリリースには SegWit ソフト フォークが含まれています。

参照: アップデートノート

2016 年 11 月 1 日: アラート システムの廃止

ネットワーク層の警告システムはビットコインの強力な集中力を表しており、現在では過去のものとなっています。

参照: お知らせ

2017 年 3 月 8 日: Bitcoin Core v0.14 がリリースされました

このバージョンのソフトウェアでは、最初のブロックのダウンロード速度が大幅に向上しました。

参照: アップデートノート

2017 年 8 月 24 日: SegWit のアクティベーション

SegWit はビットコインメインネット上で有効化されています。

2017 年 9 月 14 日: v0.15 リリース

このバージョンでは、グラフィカルインターフェースでサービス料金を追加できるサービス料金見積り機能、マルチウォレット機能、スクリプトキャッシュ機能が追加されています。

参照: アップデートノート

2017 年 11 月 11 日: v0.15.1 リリース

このバージョンは、将来のネットワーク フォークを防ぐために P2P ネットワークのセキュリティに重点を置いており、いくつかのバグも修正され、0.15.x シリーズの最適化とアップグレードも行われています。

参照: アップデートノート

2018 年 2 月 26 日: Bitcoin Core v0.16 がリリースされました

このバージョンでは主に Bitcoin Core ウォレットに SegWit サポートが追加されます。

参照: アップデートノート

2018 年 10 月 3 日: Bitcoin Core v0.17 がリリースされました

このリリースでは、ウォレットにいくつかの機能が追加されています。その 1 つは、部分的に署名されたビットコイン トランザクション (PSBT) のサポートです。

参照: アップデートノート

2019 年 3 月 20 日: Square Crypto の開始

ジャック・ドーシー氏は、Square Cryptoがビットコインエコシステムにフルタイムでオープンソースに貢献するエンジニア3~4名とデザイナー1名を採用すると発表した。

参照:ツイート

2019 年 5 月 2 日: Bitcoin Core v0.18 がリリースされました

このバージョン更新には、多数の新機能といくつかの小さな変更が含まれています。

参照: アップデートノート

2019 年 5 月 6 日: Taproot が提案されました

Pieter Wuille 氏は、ビットコイン スマート コントラクトのプライバシー、効率性、柔軟性を向上させるために、ビットコインにシュノア署名とタップルートを実装する複数の BIP を提案しました。

参照: メーリング リストの投稿

2019 年 8 月 9 日: Bitcoin Core v0.18.1 がリリースされました

このマイナー リリースには、新機能、いくつかのパッチとパフォーマンスのアップグレード、更新された翻訳が含まれています。

参照: アップデートノート

2019 年 8 月 19 日: ミニスクリプトの開始

Pieter Wuille は、ビットコイン スクリプト プログラミングにとってより使いやすい言語である Miniscript を提案しました。

参照先: メーリング リストの投稿、プロジェクト ページ

2019 年 11 月 24 日: Bitcoin Core v0.19.0.1 がリリースされました

このバージョンには、新機能、いくつかのパッチとパフォーマンスのアップグレード、および更新された翻訳が追加されています。

参照: アップデートノート

2020 年 3 月 9 日: Bitcoin Core v0.19.1 がリリースされました

このバージョンではいくつかのバグが修正され、パフォーマンスが向上しています。

参照: アップデートノート

2020 年 6 月 3 日: Bitcoin Core v0.20.0 がリリースされました

このバージョンではいくつかのバグが修正され、パフォーマンスが向上しています。

参照: アップデートノート

2020 年 8 月 1 日: Bitcoin Core v0.20.1 がリリースされました

このマイナー バージョンの更新には、不正ピアに対処するさまざまな方法、ウォレット リマインダー、証人の有無にかかわらず UTXO に対する PSBT サポートが含まれています。

参照: アップデートノート

2020: ビットコインプロジェクトと個人貢献者に対する開発賞

BitMEX、Square Crypto、OKCoin、BTSE、Kraken を含む企業、および Human Rights Foundation、Paradigm、Coinbase 取引所は、ビットコイン プロジェクトや個人の貢献者に対していくつかの開発賞を創設しています。

最初のレベルのタイトル

結論は

結論は

過去 10 年間で、ビットコインの開発文化は、サトシ ナカモトを中心とした高度な集中型から、数千人の GitHub コントリビューターを中心とした分散型へと変化しました (2018 年のデータ)。明らかに、高水準のコードレビュー、コード品質、セキュリティがすべて必要です。これらの基準は遵守され、継続的に改善されています。

これらの歴史的出来事を理解することは、ビットコイン開発の現状の背後にある哲学を完全に理解するために不可欠であると私は信じています。そこで、より多くのイベントをつなぎ合わせたタイムラインを作成しました。さらに調査が必要な場合は、Alex B 著の『The Tao Of Bitcoin Development』を読むことをお勧めします。()、エリック・ロンブローゾ著『ビットコイン・コア・マージ・プロセス』、ジェイムソン・ロップ著『誰がビットコイン・コアをコントロールするのか?』 (ビットコインコアを管理しているのは誰ですか?)。

ありがとう

ありがとう

(未完成)

元のリンク:

https://b10c.me/blog/004-the-incomplete-history-of-bitcoin-development/

以太坊爱好者
作者文库