本稿について
様々なブロックチェーンにインスピレーションを与えているプロトコルBitcoin-NG(Bitcoin Next Generation)の論文を見ていきます。本稿では「4. Bitcoin-NG」の4.1と4.2を見ます。
原文はこちらになります。
スポンサードサーチ
今回のまとめ
- Bitcoin-NGについて
- 時間をいくつかの「エポック」に分割する。1エポックに1リーダーである。
- 「キーブロック」と「マイクロブロック」という2種類のブロックがある(後述)。
- キーブロックについて
- リーダー選出に用いる。
- ヘッダ情報として、前ブロックへの参照、現在のUnixタイム、コインベーストランザクション、目標値、ナンスフィールドを持つ。
- また、キーブロック以降のマイクロブロックで用いる公開鍵情報が含まれており、これはBitcoinのブロックと異なる点である。
- ブロック生成に当たり、プルーフオブワークを行う。これに伴い、ディフィカルティの調節機構を持つ。
- ブロック間隔は指数分布である。
- チェーンの「重み」に影響する。フォーク発生時には最も多くのワークが行われたチェーンを正とする(Bitcoinと同じ)。
- マイクロブロックについて
- リーダーが生成する台帳のエントリを含むブロック。
- ヘッダ情報として、前ブロックへの参照、現在のUnixタイム、台帳のエントリの暗号ハッシュ、ヘッダの暗号署名を持つ。
- ブロック生成に当たり、プルーフオブワークを行わない。タイムスタンプを活用してブロックの有効・無効を判断する。
- ブロック間隔はキーブロックと比べて非常に短い。
- チェーンの「重み」に影響しない。(プルーフオブワークを行わないため。)
※以下、今回まとめた範囲の論文和訳になりますので詳細をご覧になりたい方は読み進めてください。
4. Bitcion-NG
Bitcoin-NGはBitcoinと同様、トランザクションをシリアライズするブロックチェーンプロトコルだ。しかし、レイテンシと帯域幅はより良質で、他の特性を犠牲にすることもない。
このプロトコルは時間をエポックに分割する。各エポックでは、一人のリーダーがステートマシン遷移のシリアライズを担当する。ステートの伝搬を促進するためにリーダーはブロックを生成する。このプロトコルは2種類のブロックを導入している。すなわち、リーダー選出のためのキーブロック(key blocks)と台帳のエントリを含むマイクロブロック(microblocks)である。各ブロックにはヘッダがあり、ヘッダは先行ブロックのユニークな参照、すなわち先行ブロックのヘッダの暗号ハッシュとその他フィールドを含む。
本章ではプロトコルのオペレーションについて詳述し、第5章ではインセンティブシステムについて説明する。
4.1 キーブロックとリーダー選出
キーブロックはリーダー選出に使う。Bitcoinのブロック同様、キーブロックには前ブロック(キーブロックかマイクロブロックのいずれかだが、通常はマイクロブロック)への参照、現在のUnixタイム、報酬として支払うコインベーストランザクション、目標値、任意のビットを持つナンスフィールドが含まれる。Bitcoinと同様にキーブロックが有効であるためにはそのヘッダの暗号ハッシュが目標値より小さくなければならない。他方、後続のマイクロブロックで利用される公開鍵がキーブロックに含まれている点はBitcoinと異なる。
Bitcoinと同様にマイナーがキーブロックを生成するためには暗号パズルの条件に合致するまでナンス値を通じて反復せねばならない。その結果、連続するキーブロックの間隔は指数分布になる。設定された平均レートを維持するため、キーブロックヘッダのUnixタイムに基づいて目標値を決定論的に変更することでディフィカルティは調整される。
フォークが発生した場合、Bitcoinと全く同じように、ノードは全てのキーブロックを集約して最も多くの仕事がなされたブランチをランダムタイブレークで選ぶ。
4.2 マイクロブロック
あるノードがキーブロックを生成すると、そのノードがリーダーになる。リーダーとしてそのノードは予め定められた最大値よりも小さく設定されたレートでマイクロブロックを生成することができる。最大レートは決定論的であり、キーブロック間の平均間隔よりもはるかに大きい。マイクロブロックのサイズは予め定められた最大値により制限される。具体的には、マイクロブロックのタイムスタンプが未来を指していたり、先行ブロックのタイムスタンプとのが最小値よりも小さかったりするとそのマイクロブロックは無効である。この制限によりリーダー(悪意があったり、強欲だったり、故障していたりするリーダー)がシステムをマイクロブロックで窮地に陥れてしまうのを防ぐ。
マイクロブロックには台帳のエントリとヘッダが含まれる。ヘッダは前ブロックへの参照、現在のUnixタイム、台帳のエントリの暗号ハッシュ、ヘッダの暗号署名を含む。この署名はチェーンの最新のキーブロックの公開鍵と対応する秘密鍵を用いる。マイクロブロックが有効であるためにはステートマシンの仕様に従って全てのエントリが有効でなくてはならず、署名も有効である必要がある。図1に構造を示す。
マイクロブロックにはプルーフオブワークが含まれないため、チェーンの重みに影響しないという点には留意されたい。第5章で述べるが、これはインセンティブがきちんと調節された状態を保つのに非常に重要である。
(Bitcoin-NG論文を見てみる3 ←← 前)|(次 →→ Bitcoin-NG論文を見てみる5)
免責
邦訳には誤りがある場合がございます。予めご承知おき下さい。
確実な情報を知るためには冒頭に示した原文をご参照くださいますようお願いいたします。