Tapyrus Core
Tapyrusは、任意のビジネスユースケースに応じて独自のブロックチェーンネットワークを構成可能なエンタープライズ向けのブロックチェーンです。 各ブロックチェーンネットワークは、ビジネスを推進するフェデレーションが管理するSigner Networkと、 誰もが参加可能な共有台帳ネットワークであるTapyrus Networkで構成されます。
Signer Network
Signer Networkは、ネットワークのセットアップ時に予め定められたフェデレーションのメンバーによって運営されます。 フェデレーションのメンバーはTapyrus Networkにブロードキャストされたトランザクションを収集、検証し、 有効なトランザクションを含むブロックを生成します。生成したブロックはTapyrus Networkにブロードキャストされます。
ブロックは、フェデレーションメンバーによるブロックに対するデジタル署名により作成されます。
このデジタル署名はブロックにproof
としてセットされ、Tapyrus Networkの各フルノードは、この署名が有効か検証することでブロックの有効性を検証します。
署名鍵
ブロックの有効性検証を行う際の公開鍵は、フェデレーションメンバーの集約公開鍵を使用します。
チェーンのセットアップ段階で、フェデレーションの各メンバーは、それぞれブロックを承認するための楕円曲線暗号の鍵ペアを用意します。
これらの公開鍵をメンバー間で共有し、全メンバーの公開鍵を加算して集約公開鍵を生成します。
この集約公開鍵はパラメーターとしてチェーンのジェネシスブロックのxfield
に埋め込まれ、
各フルノードは埋め込まれた集約公開鍵を使用して署名検証を行います。1
Signerノード
Signer Networkを運営するためのノード実装として、Tapyrus Signerを提供しています。 フルノードと一緒に実行することで、フェデレーションメンバーと通信し、ブロックの署名を完成させます。 この時、StinsonとStrobl(2001)による検証可能で安全な分散Schnorr署名と(t, n)閾値署名方式2を基に、 各フェデレーションメンバーの秘密鍵を明かすことなく、集約公開鍵に対して有効なSchnorr署名を作成します。
※ Tapyrusのプロトコル上、有効なSchnorr署名が作成できればよく、Tapyrus Signer以外の実装も使用可能です。
Tapyrus Network
Tapyrus Network は誰もが参加可能な共有台帳ネットワークで、ジェネシスブロックから最新のブロックまでブロックチェーンのすべての オンチェーンデータの提供、新規トランザクションの発行、伝播をサポートします。 Tapyrus のフルノードTapyrus Coreは、 Bitcoinの参照実装であるBitcoin Coreをベースに、以下の変更を行ったノード実装です。
- コンセンサスアルゴリズムの変更
- トランザクションIDのマリアビリティの修正
- オラクルを利用したコントラクトのサポート
- Colored Coin機能のサポート
プロトコルの詳細や、機能についてはTapyrus Technical Overview を参照ください。
セットアップ
Tapyrus Core
各環境毎のTapyrus Coreのセットアップ方法は、以下のリンクを参照ください。
- Tapyrus Coreノード構築方法(Ubuntu版)
- Tapyrus Coreノード構築方法(macOS版)
- Tapyrus Coreノード構築方法(Docker版)
- Tapyrus Coreノード devモード起動方法(MacOS/Ubuntu版)
- Tapyrus Coreノード devモード起動方法(Docker版)
-
フェデレーションメンバーに変更がある場合、切り替わりのブロックの
xfield
にメンバー変更後の集約公開鍵がセットされ、それ以降のブロックでは更新された集約公開鍵を使用して署名検証が行われます。 ↩