こんにちは。
Bitcoinのプロジェクトに参画したのをきっかけに、Blockchainに興味を持ち続けている松永です。
今回は、最新のBlockchainにまつわる最新動向を調査しました。

BitCoin、Blockchain、Proof Of Workについての概念的知識を持つ方や、
Golangを使い、関連機能を自分でビルドできるくらいのエンジニアの方、
昨今のBlockchainの話題と技術に興味がある方の参考になれば幸いです。

目次

  •  StablecoinはBlockchainとの交換にイノベーションをもたらすか
  •  Stablecoin型のBlockchainについての疑問点
  •  担保を取るBlockchainについての先例:RMG 
  •  Facebookによるlibra 
  •  中国人民銀行のStablecoin 
  •  Stablecoinを調査した結び 
  • StablecoinはBlockchainとの交換にイノベーションをもたらすか

    近年、暗号通貨の中でStablecoin型Blockchainが注目を集めています。

    Stablecoin型Blockchainとは、どのようなものでしょうか。
    Stablecoin型Blockchainとは、暗号通貨に資産の担保を最初から設定した暗号通貨です。
    元々は、「値動きが激しすぎて売買できない」といわれるBitcoinやEthereumを補うものとして登場しました。

    暗号通貨では、自己完結する分散型台帳機能(DLT)*と、その外の世界が関わるところで意義が消失してきました。通貨との交換所を免許制・許可制にすることで、交換所に登録した個人情報によって取引履歴をさかのぼれる性質から資産の所在や把握が可能になったといわれます。

    このブログでは、担保を取り、交換があたかもシステムの一部のように仕様を定めようとするStablecoinが、「どのように、“デジタル化されない担保”と“DLTの交換”を実現しようとしているのか?」を調査してゆきます。

    *分散型台帳機能とは、中央集権サーバーが取引履歴などのトランザクションを集中管理するのでなく
    取引参加者すべてが同じ記録を持つことで、取引発行者の信用を分散管理できるBlockchainの機能

    注目を集めるきっかけは、Facebookの発行するlibraや、中国政府が発行を宣言したといわれる暗号通貨にあります。

    これらのBlockchainを使った暗号通貨は、これまでに流通しているBitcoinなどと違い、最初から資産担保を前提としています。libraでは、資産を発行済みのドル・ユーロ、人民元などとの〈ペッグ〉を行うことで、交換する価値の根拠を設定し、信用や流通に関する問題を解決しようとする目論見があります。

    Stablecoin型のBlockchainについての疑問点

    金融における〈ペッグ〉(杭のこと)で多くの人が想像することは、自国経済の輸出入の安定化を図るために、ドルの外貨準備高を使い、保有割合に比例させる形でドルの売り買いを行い、ドルと自国通貨の為替レートの緩衝を行うドルペッグ制です。

    ドルペッグ制は、ドル準備高を超えるタイバーツの売りを行った投資家によりアジア通貨危機の引き金となり、問題となったこともあります。

    疑問1:ペッグ制を採用することで、担保を上回るlibraと通貨の交換、つまり取り付け騒ぎは起こらないのでしょうか。


    また、価値の根拠を近代通貨に設定するStablecoin型Blockchainの発想は、不換銀行券から兌換銀行券を逆に作ることにもなります。

    近代国家の法定通貨は、金などの担保なく中央銀行の政策と主要銀行の判断でいくらでも発行できる不換銀行券です。不換銀行券は経済を成長させるため、政府が公債を発行し借金を作ったり、中央銀行の貸出準備率を引き下げることで年々増えてゆきます。

    通貨が増えても価値のある物質の量は有限であるため、付加価値の高い金や高級品は年々値上がりし、
    一般のモノの価格が2~3%上昇して、弱いインフレが起きているのが正常な姿です。

    疑問2:Stable型のBlockchainは、ドルなどの近代国家の法定通貨である不換銀行券を担保に取るそうですが、運用しなければ政府の新発債によって物価に対し希釈するのではないでしょうか。


    なんといっても、分散型台帳技術(DLT)はサーバークライアント型の権威サーバーを排除し、信用根拠の分散化をBlockchainで実現しました。

    疑問3:近年の担保を取るStablecoinは、誰がどのようにDLTを活用し、交換しているのでしょうか。さらに言えば、活用する主体は担保に対する証明を偽造できない仕組み、あるいはさせないような防止策があるのでしょうか。


    ここでは、Stablecoin型のBlockchainが、既存のBlockchainの交換の問題の解決策を提示するのか上記の疑問に絞って検討してゆきます。

    担保を取るBlockchainについての先例:RMG

    昨今のStablecoin であるlibraや、中国政府主導のBlockchain技術の導入には経緯があります。

    それは、2017年に休眠となった英国王立造幣局(The Royal Mint)と、世界最大の先物取引所であるCME(Chicago Mercantile Exchange)の共同プロジェクト「ロイヤルミントゴールド(RMG)」です。

    このプロジェクトはBlockchainのコア技術を使い、英国王立造幣局が保有する金を担保としてその保有者を分散型台帳技術(DLT)で管理するというものです。

    RMGは、公式の中で、このように紹介しています。


    It aims to provide the investment performance of the London Gold Market with the transparency of an exchange-traded security. Each RMG represents direct ownership of physical gold bullion held in the form of fully allocated, segregated London Bullion Market Association (LBMA) Good Delivery bars within the highly secure storage facilities, The Royal Mint vault.

    RMGは、ロンドンゴールドマーケットの投資パフォーマンスに、取引所で取引される証券の透明性を提供することを目的としています。RMGは、非常に安全な保管施設である英国王立造幣局保管庫内に安置された、ロンドン貴金属市場協会(LBMA)のグッドデリバリーバー(Good Delivery Bars) 認定を受けた地金の形で保持される、物理的な金塊の直接所有権を表します。

    まず先例として、英国王立造幣局内の保管庫の金の直接所有権を扱うRMGについて見てゆきます。

    ロイヤルミントゴールド(RMG)

    もしRMGがここに書かれているように直接所有権の移転技術なら、とりわけ革新的ではないかもしれません。

    地金の取引で実物の取引を行う場合、流通コストや保管コストがかかる問題はすでに以前からあるため、
    保有する権利だけの売買は既に行われています。
    その売買が越境取引によっても、国際送金手数料や為替手数料がかからなくなればメリットがあるかもしれません。

    実物資産とのペッグという観点から、調査するこのブログでは流通コストや保管コストが安くなるかどうか、が検討の対象ではありません。

    近年、安全性の検証がほぼ終息しつつあるBlockchainの基本的な仕組み以外に追加された<ペッグ>機能が検討対象です。そのため、ここではRMGがどのように実物資産と分散型台帳の記録の一致を計画しているのかを検討します。

    RMGのエンジニアリング体制

    RMGは、Blockchainの米国コア企業、BitGoによるPROVAというBlockchainの派生で作られています。
    PROVAは、Bitcoinのコアである分散型台帳機能だけを取り出したようなものです(github)。
    *BitGoには日本政府や欧米系の金融機関の顧客がいるといわれています。

    Bitcoinでは、トランザクションの検証や確定のインセンティブをマイニングという新規Blockのハッシュ値の発見をめざす競争に委ねていますが、PROVAにはそれがありません。

    これは、PROVAの権威者がトランザクションの検証や確定の負担を負うということを意味します。

    PROVAは、btcdというGolangで書かれたノードフレームワークを改良して作られています(github)。

    btcdにはwallet機能がありません。Blockchainには、概念的な分散型台帳機能を実現するcore nodeと、core nodeの中の記録を書き換える起点となるedge nodeがあります。
    Bitcoinにおけるwallet機能とは、このedge nodeのことを言います。

    btcd派生であるPROVAにも、wallet機能はありません。
    この時点では、PROVAは移転手段ではなく、地金の権利者の確認手段に過ぎなかったことを意味します。
    (btcdの場合、wallet機能は別アプリで実装できます)

    重要なポイントは、PROVAの開発元のBitGoは企業向けBitcoin Walletの世界最大手ということです。
    暗号通貨の取引所の後ろ盾を行っており、wallet機能を実装することは可能だったでしょう。

    PROVAの特徴と実装

    PROVAが、通常のGolang製のbtcdだけでなく、その派生であり独自プロダクトである点はどこにあるのでしょうか?

    PROVAには、walletであるedge nodeを作る権限が最初からありません。
    edge nodeを誰でもが作ることはできません。
    (所有者の確認や変更の記録を見ることはできる)

    Blockchainはデジタル署名を使って、トランザクションを記録しますが、そのデジタル署名が自分の署名
    つまり、台帳の更新を行いたい当事者だけでは、更新ができないマルチ署名で行います。

    マルチ署名の自分以外の当事者は、造幣局自身やその許可を受けた者になるでしょう。
    PROVAは、決済というよりも、RMGによる保管庫の中の金の偽造されない証明手段のようなものです。

    実物資産とDLTの一致は、そもそも課題ではないようです。
    言い換えるならば、王立造幣局の信用と同程度(に高い)ということです。

    ここで、1つの結論として
    疑問3:活用する主体は、担保に対する証明を偽造しない、しないような防止策はあるかという問いに対し、
    RMGはシステムの偽造防止策はないが、王立造幣局の信用と同程度(おそらくポンドの信用と同程度)の信頼を持っていると言うことができます。

    もう少し、実装を調査し機能を調べます。

    ここからはPROVAを実際にインストールして、動作を確認してみます。
    Goをインストールし、通常通りGo homeやGo pathを設定し、go versionでinstallを確認してください。
    その後、/home/go配下で、依存パッケージ管理ツールのインストールなどを行ってください。

    手順は主に公式通りです。

    glideは少し前のGolangのパッケージ管理ツールです。
    installコマンドを実行すると、インストールされた依存関係のあるパッケージの一覧が確認できます。

    そして、PROVAと入力すると、何も設定されずにPROVAが起動します。
    公式にあるとおり、設定ファイルが必要ですが、基本動作はこれで確認できます。

    PROVAはbtcdの派生であるため、オプションやテストの仕方はbtcdとまったく同じです。

    また、btcdも通常のP2Pが土台にあるため、ネットワークの確認は同じようにできます。

    PROVAでは本番を意味するmain nodeは、プロジェクト凍結後の2017年以降動作していません。
    現在使えるのは、自分で作るオリジナルのP2Pネットワークか、テストを意味するtestnetだけのようです。

    testnetは、テスト用に立ち上げられている数個のnodeとIP接続し、そのnode内の入力ブロックを共有してきます。ブロック署名者が不明なため、最初に迷子ブロックを大量に送ってきますが、2回目以降は安定します。

    wallet機能を独自で実装できない為、あまり意味がありませんが独自ネットワークを起動するには、以下のようにします。

    2つのローカルノードをシミュレートするregtestのProvaでは、ディレクトリ~/regtest/1と、~/regtest/2を作成し以下のtest.sh bashスクリプトを実行することで、2つのノードを相互実行できます。

    #!/bin/bash
    LOCAL=127.0.0.1
    nohup prova --listen=$LOCAL:6001 --rpcuser=user --rpcpass=pass --rpclisten=$LOCAL:7001 --datadir=$HOME/regtest/1/ --connect=$LOCAL:6002 --regtest --txindex --miningaddr=TCq7ZvyjTugZ3xDY8m1Mdgm95v4QmNuqYXYbutQgDgHtW > $HOME/regtest/1/prova.log 2>&1 &
    nohup prova --listen=$LOCAL:6002 --rpcuser=user --rpcpass=pass --rpclisten=$LOCAL:7002 --datadir=$HOME/regtest/2/ --connect=$LOCAL:6001 --regtest > $HOME/regtest/2/prova.log 2>&1 &
    sleep 1
    provactl -u user -P pass -s $LOCAL:7001 setvalidatekeys "[\"d36c82406d3c77ebc342aaa16f24a985fbfe63c75e6fd2afeffa1ba69632d252\"]"
    provactl -u user -P pass -s $LOCAL:7001 generate 101
    

    PROVA 以降に、たくさんのオプションが羅列されていますが、これらも公式に解説があります。

    PROVAの実装を深堀しても、Blockchainと金の担保を保証するシステム上の仕組みは見当たりませんでした。

    Facebookによるlibra

    どちらかというと、こちらのほうがずっと有名です。
    公式はこちらです。

    githubでは、発表後の数か月でスターが1万以上ついています。
    libraは、Facebookの開発したmoveというRust言語の派生で書かれています。

    Blockchainでは一般的なBFT(Byzantine Fault Tolerant)で実装されていますが、特に新しいことはありません。
    ただ、Bitcoinの問題である、決済手数料を高く設定した人が早くblockの中でトランザクションされ、
    決済手数料を低く設定した人は10分以上かかる、という問題を解消するような改良点はあるようです。

    あと、スケーリングできるような設計があります。
    libraは、core nodeの動作を確認していませんが、main nodeはまだ公開されていません。

    RESERVEの特徴

    Stablecoinである由来は、The Libra Reserveという機能にあります。
    これはいったい何でしょうか?

    公式は、このように紹介しています。


    The reserve is the key mechanism for achieving value preservation. By fully backing each coin with a set of stable and liquid assets (described later) and by working with a competitive group of exchanges and other liquidity providers, users can have confidence that they will be able to sell any Libra coin at or close to the value of the reserve at any time.

    リザーブは価値保全を達成するための鍵となるメカニズムです。各コインを安定した流動資産で完全に裏付けて、競合する通貨取引所やリクイディティプロバイダーと連携します。そうすることで、ユーザーは Libra コインをいつでもリザーブと同じか近い交換比率で売却できると確信できるようになります。

    すでに、一部の投資家やコイン愛好者には知られていますが、
    ドルやユーロなどの通貨バスケットを作り、それがlibraの担保になるそうです。

    後ろ盾となる通貨には当然すでに価値がありますが、libraはどのようにして生成されるのでしょうか。
    引き続き、公式にこのようにあります。


    The association will pay out incentives in Libra coin to Founding Members to encourage adoption by users, merchants, and developers.
    On the user side, for new Libra coins to be created, there must be an equivalent purchase of Libra for fiat and transfer of that fiat to the reserve. Hence, the reserve will grow as users’ demand for Libra increases. In short, there is only one way to create more Libra — by purchasing more Libra for fiat and growing the reserve.

    管理団体「Libra Association」は、は創立者へのインセンティブを Libra コインで支払い、ユーザー、販売者、開発者による採用を促します。ユーザー側では、新しい Libra コインの作成のために、法定通貨と等価の Libra を購入してその法定通貨をリザーブに移行する必要があります。したがって、リザーブは Libra に対するユーザーの需要が高まるにつれて増大します。つまり、Libra の作成を増やす方法はただ一つ、法定通貨による Libra 購入を増やしてリザーブを増大させることです。

    前段に、libra創設者協会のメンバーにはインセンティブを掻き立てるためにlibraを与えておくとありますが、一般ユーザーが使うためには、libraは、ドルやユーロや円などと交換所を通じて購入しなければいけないそうです。

    通貨には金利が生じますが、libraには金利は生じず、金利分は技術改良費に使われるそうです。
    ユーザーがlibraをリザーブと交換することもできません。

    ドルは基軸通貨で、libraのreserve構成はバスケットとありますので、ドル所有者にとっては、ドルが下落すればわずかに値上がりユーロや円などの所有者にとっては、通貨高が生じればわずかに値上がりますが、基本は購入した時点での通用力とほぼ同じです。

    預金には金利が付きます。
    金利は物価の値上がりに劣後する為、物価を補うことはできません。しかしlibraでは、法定通貨なら預金に発生する金利は自分のものではありません。libraは購入した時点の、ドルの価値がずっと続くことになります。

    これは、疑問1:ペッグ制を採用することで、担保を上回るlibraと通貨の交換、つまり取り付け騒ぎは起こらないのか、に対する答えです。

    関係者のインセンティブとして発行する以外は、ドルのreserveと同数しか発行されないわけです。しかし関係者を今後Facebookの支配から脱し、加盟店のように広く決済組織を拡充するそうなので、それを手広く行えばインセンティブは広く発行され、取り付け騒ぎは程度の大小はあれ、libraが売り込まれる局面では、可能性としてはあり得るということです。

    libraは、交換される法定通貨と同等なので、通貨の信用リスクや価格変動リスクではなく、発行体(libraのアソシエーション)への信用リスクで、取り付けは起こることになります。

    また、これはこのブログでの疑問2:stable型のBlockChainは、ドルなどの近代国家の法定通貨である不換銀行券を担保に取るそうですが運用しなければ、政府の新発債によって物価に対し希釈するのではないか、への答えです。

    libraは、不換銀行券の代わりにはなるが、物価に対して希釈する暗号通貨です。Bitcoinなどの貯蓄ではなく、決済用の暗号通貨です。ドル経済圏では、年間2~3%腐って価値が目減りします。

    reserveは、どのように管理されるのでしょうか?

    reserveに一度保存されると、「透明性のある管理者」によって保護されるそうです。
    どのように保護されるかについての説明はありませんが、通貨の管理ならテクノロジーが新たに介在せずとも専門家はたくさんいるでしょう。

    また、生成は具体的にはどのような手順で行われるのでしょうか?


    It mints and burns coins only in response to demand from authorized resellers. Users do not need to worry about the association introducing inflation into the system or debasing the currency. For new coins to be minted, there must be a commensurate payment of fiat by resellers into the reserve. Through interaction with authorized resellers, the association automatically mints new coins when demand increases and destroys them when the demand contracts.

    管理団体「Libra Association」 は通貨ポリシーを規定しません。コインの発行と焼却は認定再販業者からの需要に応じてのみ行います。協会がインフレを引き起こしたり、通貨の価値を下げたりすることについて、ユーザーが懸念する必要はありません。コインが新たに発行されるには、発行されるコインと等価の支払いが再販業者からリザーブに対して行われる必要があります。協会と再販業者の取引の結果、需要が拡大したときには新しいコインが自動で発行され、需要が縮小したときにはコインが自動で焼却されます。

    結局のところ具体的な説明はなく、テクノロジーで監視するというよりは、法の執行や金融機関の監査によって透明性を保つということでしょう。

    疑問3:誰がどのようにDLTを活用し交換しているのか、という問いに対して、libraは、システムによる手段ではなく、libraの協会が認定したリセラー(おそらく取引所)が行う、と言えます。
    reserveに貯めこまれた法定通貨は、金融機関や監査という既存のオーソリティが担い、信用は、libraの協会の信用と同程度と言えます。

    RMGが英国王立造幣局であるのに対し、見劣りするのは言うまでもありません。

    libraもcore-nodeから、どのnodeに入っている決済情報かを見ることができます。
    客観的な取引の確認手段はPROVAと同じですが、PROVAほど権威が強くありません。しかし、決済手数料が安く、速く約定できれば、ネットワークで簡単に伝播できるので口座のない人々の決済に使われたり、micro paymentに使われる可能性はあります。
    ですが、この使われ方だと、すでにBlockChainである意味はないように思います。意味があるのは、core-nodeを運営する協会参加が取引データを分析できるだけで、ユーザーのメリットはありません。

    中国人民銀行のStablecoin

    最後に、中国の中央銀行である中国人民銀行の計画するStablecoinです。まだ調査によって精査するには、尚早ですが概要は以下のようなものです。

    金融機関と中央政府を除いた、一国の経済主体が保有する通貨の合計であるマネーストックにおける紙幣、硬貨などを置き換えるものといわれています。

    日銀などではマネーストック*をM1(現金+普通預金)、 M2(M1+定期預金)、M3(M2+ノンバンク)で発表しますが、中国人民銀行の場合、M0(紙幣、硬貨)の発表もあります。

    そのM0に相当するものを発行主体は政府にありながら、発行権限を中国銀行や商工銀行などの主要銀行に与え、その分散管理にBlockchainを使うのだそうです。

    *マネーストックとは、「金融部門から経済全体に供給されている通貨の総量」のことです。 具体的には、一般法人、個人、地方公共団体などの通貨保有主体(金融機関・中央政府を除いた経済主体)が保有する通貨(現金通貨や預金通貨など)の残高を集計しています日銀)。

    都市銀行は中央銀行に預けた預金の倍々の貸付許可をもらい、銀行自身の判断でお金を発行できるのが信用創造の仕組みです。

    主に手形を使いますが、M0の発行権者は、先進国では一般的に中央銀行造幣局と政府です。
    これに対し、M0をBlockchainで最初から通貨の代わりに電子通貨とすると、発行権者がすべて主要銀行になるということになります。

    社会問題となっている偽札やロンダリングの防止に良い影響があります。

    まだ多くの紆余曲折が予想されますが、中国人民銀行のBlockchainはStablecoinというより、既存の金融メカニズムの中に取り込んでしまう企画です。

    一般ユーザーからは見えにくいものの、Blockchainの機能が意味を成しながら、市場から政府の手が離れる、非常に興味深い方針のように思います。

    このブログでの疑問対象であるstable型Blockchainの交換を問うというより、権威サーバーの運営者がBlockchainを取り込むことで、元々の金融が目指すより分散化の進んだトランザクションの管理が実現できそうです。

    Stablecoinを調査した結び

    この調査で、Stablecoin型のBlockchainと謳われているものに、Blockchainと法定通貨のトランザクションや金塊といったマテリアルの価値を結び付ける技術的な手段はありませんでした。すべてが既存の権威を持ち出し交換を担保していました。

    その点で、Blockchainには、Blockchain以外のモノとの価値交換を“誰が保証し担保するか?”という課題に対し答えを導き出すのには、まだ先が長そうです。

    しかし、RMGはトランザクションの透明性を王立造幣局の信用と同程度に高めることを目論む点では非常に画期的な企画であると思います。

    また人民銀行のBlockchainは、中国人民銀行における権威が逆にBlockchainを取り込むことで、先進国で標準的な金融システムを一歩進め、国家の管理から市場の管理への自由化を進める優れた企画であると思いました。

    天気の研究が地動説を生み出したように、Blockchainの新たな活用とイノベーションがより大きな社会課題の解決手段となって欲しいと思いました。

    Daichi Matsunaga
    CSVIT事業部 IT(インテグレーションテック)部 Daichi Matsunaga
    お役に立てれば幸いです