ブロックチェーンの最前線から重要トレンドを解説するニュースレターDIVE INTO CRYPTOへようこそ!1,700を超える投資家や開発者、クリエイターのコミュニティに飛び込んでみてください🧑💻🚀
東京大学ブロックチェーン公開講座2024年第03回を受講しました。今回は、そのサマリです。前回は以下の記事です。
前回までのあらすじ
ビットコインの秘密鍵から暗号によりで公開鍵が作られ、公開鍵からビットコインアドレスが生成される流れを見ていました。
第3回はその続き。公開鍵からアドレスにエンコードを行う仕組み、Base58Checkエンコードの解説からです。
秘密鍵からどのように公開鍵が作られるのか
公開鍵を匿名性を維持しつつ扱う仕組みとは
トランザクションの形式、UTXOの仕組みはどう維持されているのか
といったことが勉強できると思います。
東京大学ブロックチェーン公開講座2024年第03回
Base58とは、ビットコインで使われている0と1のバイナリデータをテキストに表現するエンコード形式
チェックサムが組み込まれてるのが、Base58Check
Base58Checkは、転記ミスが起きないようにするチェック機構がついている。エンコーディングの流れと、アドレス表記のながれは以下。
秘密鍵の表現方法には複数あるが同じ秘密鍵。
公開鍵のフォーマットは以下より。
トランザクションでは、公開鍵を含める必要がある。できるだけ小さいバイト数に圧縮すれば手数料を抑えられる。
ビットコインでは、1メガバイトの中に含められる必要がある。ここでは、アドレスには秘密鍵から公開鍵を作るプロセスの結果、圧縮されている・されていないアドレスの2種類があることを理解しておきたい。
ここからは、ウォレットについて。
秘密鍵は乱数アルゴリズムから生成されていた。
非決定性ウォレットは、秘密鍵は1つずつ乱数でアドレス(ウォレット)を生成するタイプ。
決定性ウォレットは、何らかの法則で匿名性を維持しつつ複数のウォレットを管理する場合に利用するウォレット。Bitcoin coreでは推奨されているタイプ。
シード値とインデックス番号を組み合わせて、複数の秘密鍵を生成する。ニーモニックコードワードは、シード値とを表現する英単語列。
人間が乱数を転記ミスする可能性を防ぐため、人間が読み取れる形で扱いやすくする手法。
エントロピー=128bitの乱数。11bitずつ12ワードを導出する。
階層的決定性ウォレット:決定性ウォレットのツリー構造でアドレスを管理できるタイプ。
シードからマスターの鍵の生成の仕組み。シードから暗号によりマスタープライベートキー、マスターパブリックキー、マスターチェインコードが作られる。
チェインコードは、子どものアドレスを作ること、管理するのに利用される。
マスターから子どものアドレスを生成する仕組み。
子どもの鍵を使う。子どもの公開鍵から、親や兄弟の公開鍵は導出できない。
買い物カゴごとに違うアドレスを作ることができるので、匿名性を維持できる。
以下が、秘密鍵、公開鍵、ウォレットのまとめ。
ここからは、トランザクションについて。
トランザクションのライフサイクル。生まれてからブロックに取り込まれるまで。
UTXOの仕組みの振り返り。トランザクションのお釣りからトランザクションが作られる。
Json形式にして見やすくできるが、ビットコインに記録されるのは上のデータ形式。
Vin→UTXOを指定する。
Vout→送金先のアドレスを指定している。
チャリティのトランザクションは、データサイズが大きいので手数料を多く積まないとブロックに含めてもらえない可能性がある。マイナーは、1メガバイト以内でより高い手数料を得たいから。
ロックキングスクリプト、アンロッキングスクリプトは、UTXOとして残ったトランザクションを所有者だけがそこからトランザクションを始められるようにする仕組み。
ビットコインにおけるスクリプトの例。
最終的に、TRUEになればアンロックしてUTXOを使えるようにする。
代表的なのは、P2PKH。アリスからボブに送金、みたいな一般的なトランザクション。
本日は以上です!
📜 Disclaimer
このニュースレターは、教育目的の情報提供を主旨としており、投資や金融、税に関するアドバイスではありません。ご自身での調査やデューデリジェンスが必要です。