エンタープライズブロックチェーンの特性とプロトコル設計

自己紹介
●

安土茂亨/Shigeyuki Azuchi●CTO at chaintope, Inc○ エンタープライズ向けブロックチェーンTapyrusの開発○ 秘匿化/スケーリングプロトコルの研究開発

●

OSS:
○
○
○
○
○
○
○

●

共著/監訳

bitcoinrb
bech32rb
bip-schnorr
kzg
minisketchrb
bls12-381
etc..
Copyright © 2023 chaintope Inc. All rights reserved.

ブロックチェーンの代表的な課題
●
●
●

●
●
●
●
●
●

管理主体の存在しない分散型のパブリックブロックチェーンにおいては、特定の団体・個人を信頼するのではなく、プロトコルを信頼する一方で、管理者がいないため、機能追加などのプロトコル変更の合意形成が難しい。
オンチェーンガバナンス？オフチェーンガバナンス？

パブリックブロックチェーンのトランザクションスループットは既存の集権型の決済システムに比べて限定的である（10〜15 TPS）
多くのユーザーや少額決済マシンtoマシンのような決済をサポートするためには、トランザクションスループットの向上が不可欠
単純に処理できる容量を増やすのは集中化に繋がる
チェーン上に直接個人情報が載ることはないものの、アドレスやアカウントと実世界のアイデンティティが結びつくと、その行動をトラッキングすることが可能になる
自分が手にした通貨がいつでも利用可能であるためには通貨のfungibilityが担保される必要がある
プライバシーは予め対策をしておかないと、既にリークされてしまっている情報を後から強化することはできない
Copyright © 2023 chaintope Inc. All rights reserved.

Govenance

Copyright © 2023 chaintope Inc. All rights reserved.

4

ブロックチェーンの分類

署名ネットワーク→ブロック生成を承認① Open（Proof of Workなど）

台帳ネットワーク→ データを共有③ Hybrid（Tapyrus）
ガバナンス層Openなセキュリティモデル
Bitcoinなどオープンなブロックチェーンは、参加者の母数が不明でも合意が可能

レッジャー層② Permitted（BFTなど）
Permittedなセキュリティモデル

予め母数を決めた上で合意し、アクセス可能なクライアントを認証する
プライベート / コンソーシアム型のチェーン
現実的な合意形成のためには母数に制約もPoWとコンソーシアムのハイブリッド型
ガバナンス層を限定、レッジャー層をオープンにCopyright © 2023 chaintope Inc. All rights reserved.

Tapyrus Network【ガバナンス層】（許可型）
予め決められた複数の Signerの多重署名によりブロックを作成する Signer Network を導入し、ブロック生成の高速化および安定化およびチェーンのガバナンスを管理【レッジャー層】（非許可型）● 誰もが自由に参加可能● 機能：○ トランザクションの作成/配信○ 台帳データの検証/保持

Copyright © 2023 chaintope Inc. All rights reserved.

Tapyrus Network
Signer Networkのノードは、t-of-nの閾値署名方式に基づいて、●セットアップ時に設定された集約公開鍵と、●新しく生成されるブロック（メッセージ）に対して有効なデジタル署名を生成することでブロックをマイニング

Signer Bshare B

share A

Signer A

Aggregated
Signatureshare C

Signer C

既存のSignerの合意があれば、Signerノードの追加・変更・削除も可能（更新の合意・適用はオンチェーンに記録される）コンセンサスの変更（SF/HF）を伴う変更にはSignerの認可が必要

Ledgerノードは、Bitcoin Coreをフォークし、カスタマイズ
●
●
●
●
●

Signerによるブロックの承認アルゴリズムの適用
TXID malleabilityの修正
ネイティブトークン機能のサポート
Oracle機能のサポート
etc…
Copyright © 2023 chaintope Inc. All rights reserved.

Scaling

Copyright © 2023 chaintope Inc. All rights reserved.

8

オンチェーンスケーリングの課題
Big Block
Block
Tx 1
Tx 2…
Tx 3000

Tx 1
Tx 21…

Tx 100,000

Blockに格納可能なトランザクションのサイズ＝ブロックサイズを増やす●

2017年 Bitcoin（1MB）→Bitcoin Cash にフォークし、ブロックサイズを 8MBにするチェーンの誕生（2022年、32MBまで拡大）●

2018年Bitcoin Cashからフォークした Bitcoin SVのブロックサイズは 4GB
Copyright © 2023 chaintope Inc. All rights reserved.

オンチェーンスケーリングの課題●

ノードのリソース要件の増加：○

ブロック内の全トランザクションの有効性の検証コストの増加（CPU/メモリ/IO）○

ブロックを受信するためのネットワークの帯域の確保○

増え続けるディスクの確保
4GBの場合→年間約 205 TBのデータが増え続ける○●

新規参加ノードのチェーンの同期問題

ネットワークの中央集権化：

オープンなブロックチェーンもリソース要件から実質的にPermittedなチェーンにリソースコストの問題からノード運営者が減少し、ネットワークが中央集権化する●

セキュリティの低下：
セキュリティは全ブロックを検証することで担保されるが、検証可能なユーザーが限定され、取引の有効性の検証を外部委託するようになり、セキュリティは低下する

Copyright © 2023 chaintope Inc. All rights reserved.

ブロックチェーンの同期問題
Node
Node

Node

Local chain
Local chain

Local chain

New Node

Node

Local chain
Local chain

オンチェーンスケーリング戦略を採る場合は：● 既存ノードのコスト削減（ステートプルーニング）● ノード同期問題への対応（zkProof + State Commitment）
OR
オンチェーンフットプリントを如何に小さく保つかネットワークに参加したばかりのノードは、接続したピアからブロックをダウンロードし、ローカルのブロックチェーンのコピーを構築する。
他のノードが持つ全ブロックのコピーが終わるとブロックチェーンの同期が完了する。
※ 同期が完了しないと状態が分からない→トランザクションを処理できない
Copyright © 2023 chaintope Inc. All rights reserved.

ブロックチェーンの同期問題
Node
Node

Node

Local chain
Local chain

Local chain

New Node

NodeLocal chain
Local chain

オンチェーンスケーリング戦略を採る場合は：● 既存ノードのコスト削減（ステートプルーニング）● ノード同期問題への対応
OR
オンチェーンフットプリントを如何に小さく保つかネットワークに参加したばかりのノードは、接続したピアからブロックをダウンロードし、ローカルのブロックチェーンのコピーを構築する。
他のノードが持つ全ブロックのコピーが終わるとブロックチェーンの同期が完了する。
※ 同期が完了しないと状態が分からない→トランザクションを処理できない
Copyright © 2023 chaintope Inc. All rights reserved.

ブロックチェーン・トレーサビリティ

Copyright © 2023 chaintope Inc. All rights reserved.

ブロックチェーン・トレーサビリティ【シンプルなTacking Protocol】
Tx D
Tx A

Product A

Tx C

Product B
Product C・・・
Product X

Tx G

Tx

DLT

Tx I

Tx B
Tx E

移動対象のモノのIDをセットしたTxをブロックチェーンに記録

Tx F

Tx H

トランザクショングラフで移動を追跡

DBを使用するように商品のIDを共にそのまま直接ブロックチェーンに登録すると、最低でも一意な商品ID✕商品の数分のデータがブロックチェーン上に記録され、データスペースは追跡対象の商品数に対して線形増加する
Copyright © 2023 chaintope Inc. All rights reserved.

RSAアキュムレーター●

RSAアキュムレーターのセットアップ（初回のみ）a.
巨大な素数pとqをランダムに選択しN = p ✕ qを計算。
b.
計算したNを法としたRSA群を形成する
c.
RSA群の中からジェネレーターとなる要素gを選択
d.
アキュムレーターを初期化するA0 = g

●

要素の追加
a.
商品ID＝xのハッシュ値H(x)を計算（素数を出力するハッシュ関数）b.
現在のアキュムレーター値に対してaで計算した値の冪剰余を計算する
A1 = A0H(x) mod N
A1が更新されたアキュムレーター値。
※ Nを法としてるため、アキュムレーター値は固定サイズ内になる●要素のメンバーシップ証明○
要素xがA1に含まれていることのInclusion ProofはA0○
A1に対してA0とxを提供すれば、検証者はA0H(x) mod N = A1が成立するか検証する

Copyright © 2023 chaintope Inc. All rights reserved.

ブロックチェーン・トレーサビリティ【アキュムレーターを利用したTracking Protocol 】
RSAアキュムレーター

Accumulator

Tx

Item A

Item B

Accumulator 1

Accumulator 2

Item D
Item D
Item C

Accumulator 3

商品のIDを直接格納するのではなく、商品のIDを格納したアキュムレーター値を格納する●●●要素の追加/削除の順番が計算結果に影響しない生成されるアキュムレーター値は必ず固定サイズ（例：2,048 bit = 256 byte）
要素の包含証明と非包含証明が生成可能
オンチェーンTxのアキュムレーター値とオフチェーンのInclusion

Tx

Proofを組み合わせてオンチェーンフットプリントを最小にした
Inclusion Proof トラッキングを実現

Accumulator 1

Copyright © 2023 chaintope Inc. All rights reserved.

ブロックチェーン・トレーサビリティ
製品に関する情報から、ID（Root Hash）を生成することで、製品情報も間接的にコミットする
マークルツリーの機能により、各製品情報は選択的に開示可能
Accumulator

Root Hash

H1H2H3H4H5H6H7

製品名

製造日時

品質情報

…

…

…

ランダム値

Copyright © 2023 chaintope Inc. All rights reserved.

Privacy

Copyright © 2023 chaintope Inc. All rights reserved.

18

Material Tracking Protocol
製品の部材のトラッキングをしたいが、部材の構成割合は秘匿したい
Tracking Tx A
In
電池X
電池Y

Tracking Tx C

OutIn

部材セットA

部材セットA
部材セットB

Tracking Tx BOutIn

リサイクル電池C

電池PNiCoMnOut
部材セットB
Copyright © 2023 chaintope Inc. All rights reserved.

Confidential Transaction
取引の金額（v）をPedersen Commitment としてエンコードすることで、取引金額を秘匿する
Commitment = rG + vH
（r = ブラインドファクター、 G=楕円曲線の生成点、 H＝NUMS Point）

TxIn
Commitment A
Commitment BOut
Commitment C

Commitment A = r1G + 150 H
Commitment B = r2G + 70 H

準同型性を備えているため、金額を秘匿したまま加算/減算が可能

Commitment C = r3G + 220 H(r1 + r2 - r3)GHの係数が0になると、(r1 + r2 - r3)を秘密鍵としてデジタル署名を生成することができ、金額のバランスが検証できる

Copyright © 2023 chaintope Inc. All rights reserved.

Vector Pedersen Commitment
Hash to Curve(Ni)

HNiHash to Curve(Co)

HCoHash to Curve(Mn)

各部材のNUMS Pointを定義

HMn

各製品の構成情報をVector Pedersen Commitment（楕円曲線上の点＝公開鍵）としてエンコード
Commitment = rG + ○HNi + △ HCo + □HMn（r = ブラインドファクター）Copyright © 2023 chaintope Inc. All rights reserved.

バランスの証明
Tracking Tx
In
部材セットA
部材セットB

Commitment A = r1G + 150 HNi + 75 HCo + 43HMn
Commitment B = r2G + 70 HNi + 105 HCo + 63HMn

Out
リサイクル電池C

Commitment C = r3G + 220 HNi + 180 HCo + 106HMn

A + B - C = (r1 + r2 - r3)G部材の量が変化していなければ、NUSM Pointの係数は0になり、● 公開鍵(r1 + r2 - r3)Gに対するデジタル署名を提供● r1 + r2 = r3とすればA + B - C = 0のいずれかを証明※ 量を秘匿したままの取引を実現
Copyright © 2023 chaintope Inc. All rights reserved.

開示プロトコル
Commitment C = r3G + 220 HNi + 180 HCo + 106HMn

Tracking Tx●

ブラインドファクターを含むすべての部材の量を開示し、コミットメントを計算し、トランザクション内の値と合致するか検証●

ブラインド公開鍵＝r3Gとすべての量の量を開示し、コミットメントを計算し、トランザクションの値と合致するか検証。かつ、公開鍵＝r3Gに対して有効なデジタル署名を検証

In
部材セットA部材セットB
Out
リサイクル電池C

Copyright © 2023 chaintope Inc. All rights reserved.

部分開示
多項式を利用したコミットメント方式を用いると、Hash to x(Ni)

XNiHash to x(Co)

XCoHash to x(Mn)
各部材に割り当てるx値を決める

XMn① 各部材の量をy値として、部材の（x, y）ペアを準備●（XNi, 220）
② 全ペアを使って多項式を算出（多項式補間）●（XCo, 180）f(x) = ax2 + bx + c●（XMn, 106）
続いて、コミットメント ax2G + bxG + c（楕円曲線上の点）を計算③ 公開したい部材（XNi）とその量の値（220）で商多項式q(x)を計算
商多項式から作ったコミットメントとペア（XNi, 220）と、部材をエンコードした多項式f(x)のコミットメントで、○ペアリング暗号を使って剰余の定理の検証ができ、○コミットメントの評価値が（XNi, 220）であることを証明
Copyright © 2023 chaintope Inc. All rights reserved.

COMMITMENT SCHEME

マルチレイヤープロトコルの開発

Fat Protocol

Copyright © 2023 chaintope Inc. All rights reserved.