2020年10月1日(木)に起きた東京証券取引所のサービス停止から派生してこの週末は政府へのブロックチェーン導入の話題をよく目にした。ただ Blockchain as a 情報商材 な方面からは今でもとても幻想的な未来が語られて来るし、他方で技術サイドからは Bitcoin ベースのブロックチェーンから知識更新がされていない批判が出ていて、どちらも的を射ず個人的にすごくモヤモヤとした週末だった。
このエントリはそのモヤモヤを供養する放言であり、故に暗黙的にすべての文末に (個人的な意見です) が付随します。
"Bitcoin の" ブロックチェーンてどうなの?
汎用性は低く決済以外の用途は考慮していない
正直 Bitcoin のブロックチェーンはあの時代の暗号研究界隈のアイディアをごった煮にした壮大な社会実験のようなもので、暗号通貨の送金以外の用途を意図した設計にはなっていない。実装も負値の補数表現やエンディアンが場所 (実装者?) によって違っていて汎用性や仕様策定などは二の次といった作りになっている。一方で Ethereum 以降のブロックチェーンは SMR (ステートマシンレプリケーション) に基づく設計となっているものがそこそこあり、一定の制約はあるものの任意の決定論的な処理を各ノードで実行することができる (スマートコントラクトとか呼ばれているものがそのプログラム)。つまり SMR 指向な設計のブロックチェーンは単なる残高の足し引きだけではなくもう少し汎用的な使い方ができる。
とはいえ暗号通貨の代名詞とも言える知名度と取引実績を獲得してしまった Bitcoin はビジネスやプレゼンス面で (特に金融庁や政府方面へは) 非常に強いのは間違いない。昨年 Microsoft が発表した DID (分散型 ID) 基盤の ION (アイオン) に Bitcoin のブロックチェーンを使っているのもそんな事情が大きいんじゃないだろうか。
週末に見かけた「マイナンバーをブロックチェーンで」という提言は ION のような DID のタイムマシン提案を意図してのことだと思うが、出てくる話が Base58 の可読性で疎結合? printability のこと? 可読性なら数字で良いのでは? と ??? ばかりが浮かぶ話しかなかった (率直に言うとユースケースや技術適合性の理解不足を強弁で乗り切ってきたタイプか、あえてそれらを無視して予算調達が目的の羊頭狗肉に走っているのではという印象だった; 情報商材屋が跋扈するブロックチェーン界隈ではよくあること)。
まあ Bitcoin のブロックチェーンは脇に置くとしても DID のようなアイディアは悪くない。海外で本人確認と同時に運転免許証の有無が照会できれば、ある国では日本の免許証で車の運転を許可することも検討できて理想的だね、というのは昔から考えているところ。
国家規模の攻撃に改ざん耐性が有効かは何とも言えない
Bitcoin のブロックチェーンが持つセキュリティや一貫性は、誰でも参加できるオープンなネットワークというタフな環境でも一定の用途には耐えられる程度には機能する。ただしそれは完全な防衛手段を持つわけではない。
よく言われるのは 51% 攻撃。何かしら対処はあったと思うんだけど (忘れた)、何なら来たるべき日に備えてウクライナあたりのブロックチェーン基盤にロシアが大量の伏兵を潜ませておくことがっできる。ウクライナが借金を返済するトランザクションを発行し、返済期限が過ぎた瞬間にそのトランザクションを無効化する何かしらの攻撃を仕掛ければほら! デフォルト! その攻撃コストがウクライナ併合でペイできると判断すればロシアは GO でしょう。すんげー極端な例えだけど国家規模の攻撃ってそういう話。
技術的に不可能であることとコスト的にやる価値がないことは全く意味が違う。ブロックチェーンを設計/実装している人達はこのような国家規模の攻撃を意識してはいるんだけど、民族問題や紛争、戦争状態ともなれば通貨価値の毀損や国内市場を機能不全にすることを目的としたコスト度外視の行動は起き得ないという楽観論は正しくないですね。まあ現状は取引所を標的にしたほうが安上がりなのは事実ですけど。
脱中央集権と市場の健全性・安定性は対立する
では現実世界の 51% 攻撃として M&A の敵対的企業買収なんかはどうやって対処してるんだろうね、というとプライベート化したり何らかの特権的構造を持たせるしかないわけで、つまるところ市場の健全性と非中央集権は対立する概念ではないかなと考えています。
経済政策のない自由市場は大衆心理や地政学的リスクに脆弱な極めて原始的な市場主義にしかならないんですよ。米騒動が起きても幕府が放置するなら問屋は米の扱いを止め日本中から米の流通が消えます。2017 年末の Bitcoin ではそれと同じことが起き、投機マネーでカジノと化した Bitcoin 市場は暴騰暴落の為替リスクを警戒され今となってもほとんど決済手段 (本来の目的だったはず) には使われていませんよね。市場経済について考えれば考えるほど金融政策や税制の重要性に気づくことが多いです。
ところで、Ethereum 周辺なんかはその臭いが強いんだけど、脱中央集権を掲げていながら権力が国や企業からコミュニティに移動しただけで、脱中央集権というイカした言葉を隠れ蓑にして本当に作りたいのは「俺たちの共産圏」なんちゃうの君ら? と感じるところもありまして。共産主義とヒッピーと脱中央集権って共通する何かがあるよね。
今どきのブロックチェーン
パフォーマンスはどうなんでしょう
自動車の馬力表記にはグロス値とネット値の 2 種類があって、グロスってのはエンジン単体のシャフトから発生する出力、ネットは実車に乗せた上でのタイヤから発生する出力を表しています。ネット値の馬力は駆動ロスが大きいので当然ながら低くなるが、実情を表しているのはネット値の方であるため、現在はネットに統一されている(はず)。
データベースやミドルウェアで計測環境を明記しない公称値を出しても各方面からツッコミが入るだろうけど、ことブロックチェーン界隈はまだ第三者検証が難しいこともあり、特にスタートアップのオレオレブロックチェーンでは金を引っ張る目的なのか実装が追いついていないのかセキュリティに必要な処理まで省略した性能値を持ち込んで来ることもありまして。まあアルゴリズム構造に大きな革新がないのに特出した TPS を公称するブロックチェーンはグロス値を疑って実運用 3〜6 割性能で見ると良いかもしれないという個人的な所見があります。
という黎明期らしい事情を踏まえて。
パフォーマンスはそれほど悪くない
VISA のピークトラフィック 65,000TPS (1秒間に65,000決済処理)、PayPal のトラフィック 450TPS はブロックチェーンのパフォーマンス要件に対する目標値としてよく引き合いに出されている数値です。IOTA のような DAG ベースで概ね 1000〜4000TPS あたりを公称しているし (DAG は一貫性の責任をクライアントが実装する構造なのでそれ比較可能なの? という疑問はあるものの)、BFT ベースのプライベート/コンソーシアムチェーン実装は実測で概ね 400〜500TPS、公称で 500〜1000TPS 程度は出ているといったところ。完全プライベートで Byzantine 耐性を考慮しないモード (つまり Raft や Kafka 構成) の Hyperledger Fabric はもう少し高い TPS を期待できるのではないでしょうか。
RDB ほどの速さではないが、400〜500TPS 程度のスループットがあればマッチする要件の選択肢として検討できる範囲だと思います。
Bitcoin / Ethereum は旧世代だよ
ブロックチェーンは 10TPS 程度、さらに結果が確定する (覆されない程度の十分な確率に収束する) までに 10 分かかるというのは Proof of Work と最長/最重分岐優先に基づく Bitcoin や Ethereum の旧世代ブロックチェーンのことですね。今となってもブロックチェーン = Bitcoin な認識は 2020 年に jQuery の前提で Web 開発を語っているのと似ています。エンジニアならそろそろ知識を更新してください。
旧世代の派生系統だと PoW の極端な遅延を嫌って W を置き換えた Proof of XXX がいくつかあります。中でも Algorand は暗号論的にも興味深い設計で、ハッシュ計算(電力消費)の代わりに検証可能な乱数 (VRF) を使って当選該当者が瞬時かつ秘密裏に当選を "自覚" することができます。公称も 1000TPS 程度なので今どき世代と同等と言える評価でしょう。主導している Micari さん (2013 年チューリング賞) 的には何か思うところがあるようでまだパブリックチェーンではないんだけど。
Ethereum はといえば 2.0 で大改革となる予定なんだけど、これは… どうだろうね。昔、客から金を引っ張るために当時思いつく限りのすべてを載せて巨大化したまま企業システムではほとんど使われなかった CORBA というモノリス技術があるんだけど (私見です)、個人的にはあれと似た臭いがしているというか、大艦巨砲主義を通り越して宇宙戦艦か播種船か木星往還船でも作ってるんだろうかと遠巻きに眺めているところですが。コミュニティ主導でパブリックネットワーク上に構築するここまで大きく複雑なシステムはあまり前例を知らないのでなんとも言えないんだけど、投資家から金は引っ張れているようだし、実装して実需も追いつけば天下無双/天下一品なので覇権を握ることになるかもしれないですね。
まあ、旧世代ブロックチェーンと言っても駆動実績と知名度はあるし TPS が必要ないケースでは十分に考慮に値するとは思います。例えば人口や物的財産に起因する数値はあまり急激に変動することはないので、DID のようなマイナンバーや年金、運転免許、国際ライセンス、それに不動産登記や古美術品取引といった用途は今の Ethereum でも可能ではないでしょうか。
ただこの世代のブロックチェーンを公共用途で政府機関に導入するなんてのは誰も考えていないと思います。
一貫性を持つ
PoW ベースの Bitcoin や Ethereum は結果整合性よりさらに下の確率的整合性とでも言うべき一貫性を持っていて、時間が経てば確率的に十分に収束するものの 100% 確定することはない特徴を持ちます。まあこれも旧世代の特徴であって Ethereum 2.0 になるとある時点で確定することが保証される機構が導入される予定です。
他方で DAG ベースのブロックチェーンはある時点で Coordinator 役が確定させるし、BFT ベースのブロックチェーン (HotStaff, Tendermint-BFT, BFT-SMaRt, pBFT, etc.) はブロックの承認と同時に確定する。なのでブロックチェーンは完全な一貫性を保証しない、というのは間違いで、旧世代のパブリックチェーンである Bitcoin と Ethereum では保証しない (むしろそっちは少数派)、という表現が正確です。
分散データベースの変遷と同様に、過去の Bitcoin, Ethereum 世代パブリックチェーンが「可用性のみ、一貫性は考慮しない(確率的のみ)」だったのに対して今のブロックチェーンは「可用性の上での一貫性」か「一貫性の上での可用性」の方向で進んでいます。
最近はハブ化がトレンド
ブロックチェーンはネットワーク内のすべての処理を直列化し共有する SMR に基づいています。言い換えると、ネットワーク全体でたった 1 つのトランザクションスコープのみを持つという意味です。例えば RDBMS ですべての処理が単一のトランザクションを共有利用するとしたらシステム全体のスループットがかなり制限されるのは想像に難くない。ブロックチェーンはそれと同じ制約を潜在的に持っているということです。
なので現在のブロックチェーン設計ではどう頑張っても 1000TPS 程度で歩留まりだろうという暗黙の共通認識はできていて、新型ブロックチェーンの開発で TPS を上げることに注力するよりも、分離可能なトランザクションをサイドチェーンと呼ばれるサブシステムに分離したり、独立した複数のブロックチェーンを相互接続するハブを開発する方向に進んでいます。Polkadot や Cosmos はそのハブ役の実装のこと。ブロックチェーンを銀行とするとハブは中央銀行や全銀システムのような役割となる。
構想を抜けて実用を模索している段階
国内で取引可能な暗号通貨を新しく作るのは金融庁から厳しい条件を付けられるので現実的ではないです。その代わりに、ゲーム内通貨やショップカードのポイントといったものであれば金融関係の規制に抵触することはないので気軽にできます (換金できなければ)。
ゲームといえば NFT (ノンファンジブルトークン) を使用してゲーム内でアイテムの取引や交換をブロックチェーンの証左付きで行うユースケースはよく聞くようになりました。まあニッチなんですけど。同様に NFT を使って美術品や不動産の所有権移動ソリューションもあったり。AWS, Azure, Oracle あたりのクラウドは Hyperledger Fabric がデファクトスタンダートに設定したようでソリューションを売ってます。IBM は当初から暗号通貨には目もくれず海運などの貨物のトレーサビリティに使ってますね。
会計監査ではブロックチェーンの記録であれば書類上の抜けや改ざんを考慮する必要がなくなってかなり効率化できるという話。あとは国内金融だと CBDC が今は一番アツい領域かな。
様々な適用例は TechCrunch の最新1週間記事をまとめて読んで見ると雰囲気がつかめるのではないでしょうか。
- 暗号資産・ブロックチェーン業界の最新1週間(2020.9.13~9.19)
- 暗号資産・ブロックチェーン業界の最新1週間(2020.9.20~9.26)
- 暗号資産・ブロックチェーン業界の最新1週間(2020.9.27~10.3)
まあ応用分野としては構想を語って引っ張った出資で PoC を回していたフェーズからやっと抜け出し、実装を出して実需や市場を模索するフェーズに移行しつつある感じかな。機を最初に掴めるのはずっと準備していた人間だけという信条があるので個人的に実務や調査は継続しています。
日本のエンジニアの現状は
正直、海外の論文や成果物を見ていても日本国内のブロックチェーンというか P2P 技術全般に関する理解は大きく遅れているように感じざるを得ない。というのも 2000 年頃の P2P ファイル共有でアングラ/反社方面に走った先人たちの呪いによって、それらを表立って扱うことがはばかられるような暗黒時代を 10 年以上も引きずったことが大きかったんだけど。何というか、古参の分散システム屋と若手のブロックチェーンキディとで大きな世代断絶/ロスジェネが起きているのはずっと感じているところだし、それが社会や政府にブロックチェーンを正しくコンサルテーションできない今日につながっているというのは深く感じているところです。