393 / 736SIPA

Pieter Wuille

sipa として知られる開発者

Pieter Wuille は、Bitcoin ウォレットが鍵を作り、アドレスを表記し、支払いに署名する仕組みの設計に携わってきました。sipa という名前を知らなくても、その成果を使っているかもしれません。

Pieter Wuille は sipa の名で知られる Bitcoin 開発者で、BIP 32、SegWit、Bech32、Bech32m、Schnorr/Taproot の著者または共著者です。BIP は公開された技術提案を指します。彼の貢献は、仲間と具体的な問題を解くことにあり、ネットワーク全体の決定権を持つことではありません。

ウォレットが新しいアドレスを表示したり、支払いの署名を準備したりするとき、簡単なボタン操作の裏には多くの開発者の仕事があります。その一人が Pieter Wuille です。GitHub では sipa を名乗り、プロフィールがその名前と開発活動を結び付けています。ただし、ある設計を誰が生み出したかは、ユーザー名だけでなくプロジェクトの履歴や文書で確かめる必要があります。以下の提案から、誰とどの問題に取り組んだかが見えてきます。 [1]

注文ごとに別の支払先アドレスを使いたい店を想像してください。Wuille の BIP 32 は、seed と呼ぶ最初の秘密データから、木のように枝分かれする鍵の集合を導出する方法を説明します。拡張公開鍵 xpub からは、その枝の公開鍵をさらに作れますが、支出する権限は得られません。署名に使うのは秘密鍵です。ただし、xpub と、hardened の段階を経ずに導出された子孫の秘密鍵が一緒に漏れると、親の秘密鍵まで分かる場合があります。hardened 導出はこの経路を断ちます。xpub は支払い同士の関連も明かすので、むやみに公開すべきではありません。 [2]

後続の支払いが前の取引に依存する場合、その取引の識別子は重要です。Eric Lombrozo、Johnson Lau、Pieter Wuille による BIP 141 は、署名などの検証データを witness として分離し、従来の識別子 txid を決める部分から外します。新しい識別子 wtxid には witness も含まれます。そのため、署名データの変更が、別の取引から参照される txid を必ずしも変えなくなります。署名の検証は続きます。witness はブロックの最初の取引である coinbase 取引内の暗号学的コミットメントによって保護されています。 [3]

アドレスを書き写すと、わずかな文字の間違いが起こり得ます。Wuille と Greg Maxwell は BIP 173 でネイティブ SegWit アドレス向けの Bech32 を説明しました。チェックサムは、表記の破損を検出するための文字列です。ただし確認できるのは符号化の正しさであり、意図した受取人の身元ではありません。誰かが別の有効なアドレスに差し替えた場合、チェックサムはその詐欺を見抜いてくれません。 [4]

アドレス形式にも改善の余地があります。Wuille の BIP 350 は、文字の挿入や削除に関する特定の弱点を修正するため、チェックサムを変更しました。それが Bech32m です。ウォレットは witness のバージョンと符号化方式の一致を確かめなければなりません。バージョン 0 は引き続き Bech32、バージョン 1 から 16 は Bech32m を使います。利用者が手作業でアルゴリズムを選ぶ必要はありません。正しいアドレスの作成と確認はソフトウェアの役割であり、何らかのチェックサムが通ればよいわけではないのです。 [5]

デジタル署名を使うと、所有者が秘密鍵を公開せずに、支払いの権限を検証できます。Pieter Wuille、Jonas Nick、Tim Ruffing による BIP 340 は Schnorr signatures を規定し、署名は 64 バイト、公開鍵は 32 バイトです。バイトはデータ量の単位です。その数学的性質を利用すれば、複数人が共同で署名する仕組みを作れます。ただし鍵を単に足し合わせるだけでは足りず、参加者を安全に協調させる別のプロトコルが必要です。 [6]

ウォレットには通常の支出方法と、予備の条件を用意できます。Pieter Wuille、Jonas Nick、Anthony Towns は BIP 341 で Taproot を説明しました。key path、つまり鍵による経路なら、署名だけで支出でき、代替スクリプトの存在さえ明かさずに済む場合があります。スクリプトとは支出条件を表すプログラムです。script path が必要なら、使ったスクリプトとその包含証明を公開しますが、使わなかった選択肢をすべて公開する必要はありません。容量を節約し、ウォレットの構成情報の一部を隠せますが、すべての支払いが自動的に匿名になるわけではありません。 [7]

これらの変更は具体的な問題を解き、他の人が設計とコードを検討できるようにしています。Bitcoin.org は、BIP が公開で議論され、採用はネットワーク参加者に委ねられると説明しています。ノードは、自分が動かすソフトウェアに従って取引やブロックを検証するコンピューターです。提案の著者やリポジトリの管理者になっても、合意ルールを一方的に変える権限は得られません。Wuille の重要性は貢献と協力にあり、Bitcoin の上司であることにはありません。 [8]

理解を深めるには、この項目とあわせて次もお読みください Craig Wright, Gregory Maxwell, Satoshi Nakamoto. 次の項目からも参照されています Craig Wright, Gregory Maxwell.

DOC · 001GitHub — Pieter Wuille (sipa)文書 DOC · 002BIP 32 — Hierarchical Deterministic Wallets文書 DOC · 003BIP 141 — Segregated Witness文書 DOC · 004BIP 173 — Bech32文書 DOC · 005BIP 350 — Bech32m文書 DOC · 006BIP 340 — Schnorr signatures文書 DOC · 007BIP 341 — Taproot spending rules文書 DOC · 008Bitcoin.org — FAQ文書
改訂日: 一次資料を優先 · 投資助言ではありません