ビットコイン・インスティテュート

マイク・ハーンから​サトシへ​:BitcoinJリリースと​プロトコルに​関する​質問​(2011-03-07)

サトシ、こんにちは。

お元気でいることを願っている。ようやく弁護士たち全員になんとか納得してもらえて、BitCoinJをGoogleの名前で、Apache 2ライセンスで公開できることになった:

http://www.bitcoin.org/smf/index.php?topic=4236.0

まだ不完全で、特にブロックチェーンの分岐を適切に処理できていないが、残りの部分は順次実装していく。ドキュメントとコメントに多くの労力を費やしたので、現在のコードを理解・ビルドできなかった新しい層にBitCoinを開放できればと思う。今後1〜2ヶ月で、完全なクライアントモード実装に必要な大きな欠落部分を仕上げる予定だ。

忙しいところ申し訳ないが、いくつか質問に答えてもらえないだろうか。

完全なSPVの実装の一環として、プロトコルにgetmerklebranchメッセージを追加することを考えている。これはトランザクションハッシュを指定すると{blockhash, branch}のペアのセットを返すもので、フルチェーンを保存せずにブロードキャストされたトランザクションをブロックに組み込まれる前に検証できるようにするものだ。このアプローチはよさそうだろうか?

また、最近さまざまなトランザクションタイプの探求を考えている。例えばtestnetでIsStandard()チェックを削除するなどだ。単純なコインの移動以外のトランザクションについても、最初から多くのことを考え抜いていたのは明らかだが、残念ながら、そのどれも論文にもコードのドキュメントにも書かれていない。エスクローやマルチペイなどはどれも面白いが、スクリプト言語で何ができるかのアイデアを、いつかリストにまとめてもらえないだろうか。

最後に、トランザクション置換を可能にするコードは無効化されているが、コメントにはその理由が書かれていない。これは単に攻撃対象領域・複雑さを減らすためだろうか、それともより深い理由があるのだろうか? シーケンス番号がトランザクション自体ではなくトランザクション入力のプロパティである理由も完全には理解できていない。

早く戻ってくる時間とエネルギーが見つかることを願っている! これを見たかどうか分からないが:

http://bitcoin.sipa.be/speed-lin.png

ネットワークにとってエキサイティングな時期だ!

ありがとう!
/mike