はじめに
本記事は、過去にコンセンサス・ベイスが主宰していたオンラインサロンの記事です。記事は2017年~2018年にかけて執筆されたため、一部は、既に古くなっている可能性があります。あらかじめご了承ください。
本レポートでは、前回の記事で紹介した自律分散型の銀行「DAO銀行」について技術的な側面から解説していきたいと思います。
今回も引き続き、DAO銀行を実現するべく活動中のプロジェクトBABBを例に挙げています。
彼らがどのようにしてブロックチェーンを活用し、新たな金融システムを作り出そうとしているのか、ホワイトペーパーを元に読み解いてきましょう。
対象読者
自律分散型の組織、ブロックチェーンの国際送金への利用、”Unbanked”問題に興味のある方を対象にしています。
前提知識
基本的なブロックチェーンの知識、仕組みの理解があれば望ましいです。
加えて、前回の記事を読んでいない方は先にこちらをご覧下さい。
・「世界中の誰もが使える「DAO銀行」は実現するのか 前編」 https://block-chain.jp/others/daobank1/
BABBがブロックチェーンで送金を実現する仕組み
Federatedブロックチェーン
BABBのブロックチェーンは、Federation(連合、連邦制)と呼ばれており、複数のノード群の集合により構成されています。
図:BABBのFadarated Blockchain(引用元:BABB Whitepaper full-length ver.)
BABBブロックチェーンでは、BABBによって運営されるプラットフォーム上のノード群(図の左下の青いサークル:BABB UK Bank)に加え、各所の中央銀行などの大口の参加者も自身のノード群(緑と赤のサークル:Central Bank #1,2)を運営することができるようです。
これらの異なる主体によって運営されるノード群が、互いに連携をとり監視しあうことで透明性を担保するような構想がなされています。
各ノード群の連携方法について、Whitepaperの図では単に「P2P transaction」としか記されていませんが、 代わりに下記のような注釈がつけられています。
While not exactly at the core of our solution, some relevant points are presented in this article: http://jonathanpatrick.me/blog/federated-ethereum-blockchains
これは「BABBそのものの話ではないので、Federated Blockhainについてはこの記事を見てください」程度の意味ですが、紹介されているリンク先を見るに、BABBのFederated Blockchainでも普通に2way-pegなどの方法でチェーン同士の接続を図る方針のようです。
Fiat(法定通貨)とBABBトークンの連携
BABBの提供するブロックチェーンの主な使用目的は、今のところ、銀行口座の残高やそれに関連する取引(トランザクション)を記録・保管しておくことです。
これの実現のためには、旧来の銀行のシステムによって管理されているFIat(法定通貨)を、BABBのブロックチェーン上で扱えるようにする必要があります。
BABBのチェーン上では独自のトークンが使用されるわけですが、FiatをBABBトークンに変換し、BABBのチェーン上でやりとりするまでの流れをホワイトペーパーで紹介されている2つのケースを通じて見ていきましょう。
ケース1: ユーロをBABBアカウントに入金し、他のアカウントに送金する
この例では、ユーザーA(以下、A)が1,000ユーロを自身のBABBアカウントに入金し、その後保有する1,000ユーロ相当のBABBトークンのうち、300ユーロ分のトークンをユーザーB(以下、B)に送金するという処理を見ていきます。
なお、図中に登場するSEPA(単一ユーロ決済圏)とは、SEPA加盟国同士であれば、自国内と同様に送金、引き落とし、カード決済の処理を行えるようにすることを目的としたユーロ圏での共通決済スキームのことです。
図:ユーロをBABBに入金する際のステップ(引用元:BABB Whitepaper) このケースにおける処理の流れは以下のようになります。
- 銀行のネットワークからBABBのアカウント(図中「BABB FIAT Reserve」)に1,000ユーロを預け入れる
- BABBは預け入れられたFiatを、準備金としてreserve(ロック)する
- 預け入れられたFiatと同額の1,000ユーロ分のBABBトークンを、チェーン上にあるAのアカウントに発行する
- Aは自身のアカウントに保有する1,000ユーロ分のBABB EURトークンから、Bに300ユーロ相当のトークンを送金する
なお蛇足ですが、最後のAからBへの送金の後、なぜか破線でB→Aへの矢印が出ており、あたかもUTXOsのような雰囲気を醸し出していますが、ホワイトペーパーにUTXOの語は一切出現しないことと、基本的にBABBはEthereumベースなのでアカウント方式であると思われます。
この破線の矢印はUMLのシーケンス図における「応答(reply)」を示すもので、UTXOのようなトランザクションの流れを意図するものでは無いでしょう。
ケース2:BABBアカウントからユーロを引き出す
次に紹介されているのは、Aが自身のBABBアカウントに保有する1,000ユーロ相当のBABB EURトークンのうち、500ユーロ分を銀行の口座に引き出すケースです。
(なお、ホワイトペーパーの図では€1,000と表記されていますが、ペーパーの本文では€500の送金と表記されているので、ここでは€500で説明します。図はそのまま引用していますので€1,000を€500に読み替えてください)
このケースにおける処理の流れは以下のようになります。
- BABBのアカウントに準備金としてロックされていたFiat残高から、SEPAで500ユーロをAの銀行口座に送金する(※Bank wire = 送金手続き)
- 送金した500ユーロと同額のBABB EURトークンをチェーンから消失させる
まとめ
今回は、BABBのFederation Blockchainの紹介と、Fiat(法定通貨)とブロックチェーン上のトークンをやりとりする仕組みについて解説しました。
まだ実装が出ていないため未確定な部分はありますが、BABBでは今回取り上げたもの以外にも、P2PでのKYC(顧客確認)や、シュノア署名を用いた秘密鍵の分散・集約によるアカウントの回復など、興味深いアイデアが多く提案されています。
今後もこれらのトピックを始め、DAO銀行系のプロジェクトの動向を随時紹介していきたいと思います。
参考資料
BABB WHITEPAPER V1.0
https://resources.getbabb.com/whitepapers/en/babb-whitepaper.pdf
Federated Ethereum Blockchains
http://jonathanpatrick.me/blog/federated-ethereum-blockchains
欧州におけるSEPA自動引落し(SDD)導入の影響と今後の課題
http://www.hitachi.co.jp/products/it/finance/insights/essay/1003-sepa.html