こんにちは。伝説のスーパーサイヤ人で実はサトシナカモトの遠い親戚でもある
Yamoshi Nagatomo
です。先日予告したとおり、今日は『和らしべ』から衝撃の提案を致します。
仮想通貨の投機的なバブルが一段落し、仮想通貨を一般に広く普及させるために、価格変動がなく法定通貨の代わりに決済に使えるステーブルトークンの重要性が認識され始めています。取引所の避難トークンとして以前より幅広く利用されているTether社の発行するUSDTやその亜種の数々、フェイスブックが主導で進めるコンソーシアム(共同事業体)に創る仮想通貨Libraの衝撃も記憶に新しいと思います。
日本だと、LCNEMが前払い式支払い手段の制限付きのステーブルトークンを発行していたり、先日エクスコインという会社がステーブルを発行しようとして色々と規制の問題で日本での導入を延期したことが話題になっていたかと思います。三菱UFJが銀行口座連動のMUFJステーブルトークンを開発との計画もありましたが、これはどうなったのでしょうか?天下のバイナンスも先日USDとペッグされた独自のステーブルトークンBUSDを信託会社のPaxosと提携して発行したりしています。もっとも画期的なのは、MakerDAOのDAIでMKRによるガバナンスとETHを担保にする仕組みでトークンエコノミーとアルゴリズムによってUSDとのソフトペッグ(完全に1:1ではないがほぼ同じ)を永続する形でERC20トークンで実現しています。
このように、昨今ステーブルトークンの重要性が認識され世は戦国時代なのです。日本でも日本円とペッグに幅広く使えるステーブルトークンの登場は待望されていて、今後誰が一番信用の置ける日本円ステーブルトークンを創るかというのは、暗号資産・ブロックチェーン界隈、それから日本経済に置ける大きな関心ごとであるかと思います。それだけ、ユニバーサルに使える日本円ステーブルトークンの登場は革命的なことです。誰もが信用の置ける日本円ステーブルトークンの登場で、日本に仮想通貨が一気に広まるきっかけになります。近所のコンビニでお祖母ちゃんが日本円の代わりにスマホで『ピッっ』とできるからです。なんとかPAYも全てステーブルトークンに置き換わるでしょう。今後数年間、日本円ステーブルトークンの競争で世は戦国時代に逆戻りでしょう。
そこで、本日和らしべでは国内で誰が経済の覇者になるかを競う不毛なステーブルトークン戦争に突入する前に、先手必勝で終止符を打つ衝撃の提案をします。提案というより既に開発済みでテストネットで稼働中、DEXもあります。その名も
『WJPY』 ERC20完全分散型日本円ステーブルトークン
です。以下にWJPYの様々な画期的な特徴を説明していきます。
WJPYはERC20のステーブルトークンです。世の中には沢山のブロックチェーン規格が存在し、仮想通貨と一括りにいえど、様々な種類があります。しかし、現状で世の中に幅広く使われるトークンを発行するとしたら開発者エコシステムが巨大なイーサリアムのERC20トークンが最も将来性が高いでしょう。最も普遍的なトークン企画であるERC20であることで、既存の様々なインフラに即座に載っかれますしDappsや今注目度が急上昇中のDeFiエコシステムにも接続できます。というよりWJPY自体がDeFi(分散型金融)そのものです。トークン規格がERC20でないことはそれ自体がデメリットになるかと思います。同時にERC20のステーブルトークンというのは法定通貨の代わりに様々な用途に導入しやすいのでそれ自体が画期的です。
ERC20トークンというのは、ブロックチェーンにERC20のスマートコントラクトをデプロイ(設置)することによって発行できるのですが、当然コントラクト設置者がトークンの発行体・オーナーとしてミント(発行)やバーン(償却)等、様々な権限を有するわけです(発行時に制限できます)。例えばALISの発行体はALISトークンをデプロイしたALIS運営で発行体がトークンをミントしたりバーンしたりロックアップしたりできる権限を有しています。バーンは自分の保有分であれば誰でもできますが、発行はオーナーとオーナーが許可を与えたアカウントだけができます。このようにどのERC20トークンにも必ず発行者がオーナーとして存在します。トークンの総発行数がいくらでそのうち運営保有率が何%でロックアップが何%でなどといったことは、そのトークンのエコノミーを創ろうとしてる発行体が計画して世に提示していると思います。ERC20の仮想通貨は基本的に発行体の管理下にありその発行体を信用するからトークンを購入する等してその経済圏に参加する訳です。
しかしWJPYはサトシナカモトの精神を受け継ぎます。トークンの発行主体権限を完全に放棄してさらには分散化させる方法をハックしました。WJPYに発行主体は存在せず、同時に世の中の全ての人がトークンの発行・償却権限を分散的に有します。この実現に2つのハックを使っています。どういうことか説明します。
イーサリアムのアカウントには実は2種類あります。ひとつが
〆 EOA (Externally Owned Account)
でもう一つは
〆 コントラクトアカウント
です。EOAはプライベートキーによって管理されたアカウントで私たちのウォレットに紐づいている仮想通貨が保管されたアカウントです。ERC20トークンというのはEOAによってプライベートキーで設置されたコントラクトアカウントです。基本的にERC20コントラクトを設置したEOAがプライベートキーを使ったオーナー権限でトークンを管理できます。
WJPYはこのオーナー権限を放棄するために、EOAからではなくEOAによって設置された別コントラクトAの内部から直接自動的にERC20を設置することによってオーナー権限をEOAではなくそのコントラクトAに譲渡し、最初のコントラクトを設置したEOAがプライベートキーを使ってERC20トークンを操作できない仕組みにしました。ERC20のオーナー権を有するのはコントラクトAであってコントラクトAはEOAではないのでプライベートキーを持たず、コントラクトA内部に定義された方法でしかERC20トークンを操作できなくなります。スマートコントラクトの仕組みで、コントラクトAに定義されていない方法では絶対にERC20を操作できません。これによって、WJPYの設置者は発行体権限を完全に放棄することができます。これがハックその1です。
そして2つ目のハック。WJPYはそのオーナー権限を持つコントラクトAに定義された方法でのみ操作できると言いましたが、ミント(発行)とバーン(償却)の仕組みをコントラクトAにパブリック関数として定義し、世界中の誰もがそれを実行できるようにオーナー権限を分散化させました。パブリックなブロックチェーンに設置されたスマートコントラクトのパブリックは関数は誰もがプログラミングを使ってブロックチェーンにトランザクションを送ることによって実行可能です。これによって、設置者が発行体としての権限を放棄すると同時に発行と償却の権限を世界中に分散化させたのです。発行体なき分散型ERC20トークン、それがWJPYです。ALISで説明するとALIS運営がALISトークンのオーナー権を放棄すると同時にALISISTA全員に公平に発行権限がある感じです。運営保有率が何%等といった中央集権的な話や力関係はなくなります。ERC20トークンは設置時にオーナーに一定量のトークンを発行し総供給量などを調整する仕組みですが、WJPYの発行時総供給量は『ゼロ』です。世界中の誰もが公平な仕組みを使ってしか発行できません。
法定通貨と価値を1:1にしたステーブルトークンを発行するということは、発行されたトークンの価値を何らかの形で担保する必要があります。ステーブルトークンの担保の仕方は現状大きく3つに分けられます。
〆 法定通貨担保型
〆 仮想通貨担保型
〆 無担保型
です。WJPYは仮想通貨担保型をさらに一歩推し進め
『ステーブルトークン担保型』
という形を提案・実装します。
まず、法定通貨担保型についてですがこれは発行されたステーブルトークンと同額以上の法定通貨を何らかの形で別に保管しているということです。一見、この形が最も安全に思えますが本当にそうでしょうか?法定通貨担保型の欠点は仮想通貨の価値を発行体の担保管理に依存していることと担保の保管がオフチェーンでブロックチェーンと連動していないことです。USDTの過去事例のように本当に担保を持っているのかという信用問題もありますし、何らかの原因で発行体が破綻したら仮想通貨の価値が終わるというリスクを常に抱えることになります。担保の法定通貨が全額盗まれたらどうしますか?突然その通貨の終焉ですか?問題は担保がオフチェーンにあることで、たとえいつのまにかオフチェーン担保が消えていてもオンチェーンには一切連動していないということです。担保がなくなってもそれに気がつかずにブロックチェーン上の仮想通貨は回り続けます。これは法定通貨担保型ステーブルトークンの完全な脆弱性でオンチェーンで完結する無担保アルゴリズム型より信用のできない担保方法です。
無担保型というのは、トークンの発行益を使って市場の状況に合わせて需要と供給をアルゴリズムで調整することで価値を維持する方法ですが、僕自身この無担保型の可能性を深く検証していないのであまりコメントしないで置きます。無から価値を生み出して操作してる感じがするのと、何らかのパラメーターが極値に傾いたときに破綻する感じがするのですがですがどうなのでしょう?とりあえず詳しくないのでノーコメントで。
3番目が仮想通貨担保型でこれを高い次元で実現しているのがETHを担保にUSDとのソフトペッグステーブルトークンDAIを維持しているMakerDAOです。ETHを担保にする仕組みとMKRによるガバナンスの仕組みで価格がUSDと常に1:1に近づき破綻しない何重ものセーフティネット的な仕組みを創り上げています。発行以来価格が崩壊したことはなく、今後その安定性はさらに強化されていくものと思われます。ポイントは、担保の仕組みが全てオンチェーンのスマートコントラクト上で完結するところです。法定通貨担保型とは違って、担保に変動があればそれは即座にオンチェーンの他の全てのパラメーターに影響を与えます。知らないところで破綻する可能性がないので管理体を信用する必要がないトラストレスな仕組みなのです。現在最も筋のよいステーブルトークン発行方法であらゆる金融システムを置き換えそうなEthereumのDeFiイノベーションはこのDAIのステーブルな存在が基軸になっています。
WJPYはこの仮想通貨担保型を一歩推し進めてステーブル仮想通貨担保型で実装されています。DAIはMakerDAOがトークンをステーブルにする画期的な仕組みを自ら創り上げていますが、既に画期的な仕組みが確立されているのであればそれに載っかればよいだけでは?という発想です。これは、MakerDAOのような仕組みを一から築き上げるよりもはるかに安定していて、MakerDAO自体が同じ仕組みで日本円ステーブルトークンを発行するよりも筋がよいと思っています。なぜならDAIと同じ設計で新たなトークンを発行するということは、それを支えるエコシステムやガバナンスの仕組みを一から築く必要があり、新しいトークンが破綻する可能性はDAIが破綻する可能性よりも恐らく高くなるからです。であれば、オンチェーンで世界一安定しているDAIに載っかることでDAIが破綻しない限りWJPYのステーブルな価値も破綻しない仕組みを創ればよいわけです。DeFiの様々なプロトコルはDAIに依存していると思いますが、DAIを担保にしたステーブルトークンという発想は意外に少ないのかもしれません。WJPYはステーブルトークンDAIを担保にDAIが破綻しない限り価値が破綻しない日本円ステーブルトークンです。そしてDAIが破綻する可能性は極めて低いです。
さて、DAIに担保させるといってもDAIはUSDとのソフトペッグで価値が微変動し、USDとJPYの相場も仮想通貨ほどではないにせよ日々微変動します。DAIに日本円のステーブルな価値を担保させるという事はDAI<->USD<->JPYのレートを調整してWJPYを発行する必要があるわけです。そこで必要となるのがブロックチェーンに外部から相場を読み込むオラクルです。ブロックチェーンとは元来、内部完結する絶妙なインセンティブ設計で動いているため、外部から情報を読み込めない仕組みになっておりスマートコントラクトで相場などの不確定な外部情報を扱うためにはその情報を提供するオラクルという仕組みが必要です。Ethereumには様々なオラクルプロジェクトがありますが、ブロックチェーンが分散型で永続する仕組みなのに対し、オラクルが中央集権的ではその大半の意義を失います。
例えばWJPYが発行体なき分散型トークンであるのにその価値を調節する相場オラクルを誰かが集権的に管理していたらどうでしょう?その誰かが単一障害点(SPOF)になり、相場情報の提供が止まったり不正なレートを流されると分散型トークンの意義がなくなります。そこで登場するのが、オラクル自体も分散化させてしまったChainlinkというプロジェクトです。オラクルに情報を提供することで報酬を貰えるインセンティブ設計により正しい情報の提供が永続的に成り立つ仕組みを創り上げています。ChainlinkはGoogle等とも提携しており今後グーグルBigQueryのデータ等とも連動して使えるようになる将来有望なプロトコルです。というより、Ethereumの分散型オラクルといったら選択肢はこのプロジェクト一択でしょう。WJPYはChainlinkのオラクルからDAI<->USD<->JPYのレートを読み込んでいて、分散型オラクルによりこの部分も永続する仕組みです。
ここでWJPYの仕組みを説明します。まず、前述したとおりWJPYはERC20トークンデプロイ時にオーナー権限を放棄しています。その代わりに、『ミント(発行)』、『バーン(償却)』、『レート更新』という3つの機能を世界中の誰もが実行できる形で分散管理されるトークンにしています。
裏でUniswapを使ってトークンの自動変換をしていますが、パブリックにアクセス可能な機能は上記した3つだけです。UniswapはDeFiでETHとあらゆるERC20トークン、またはERC20トークン同士をアルゴリズムで管理されたレートで自動的に変換できる画期的なプロトコルで完全自動DEXのように機能します。取引所なくして簡単にトークンの交換ができます。
WJPYの総供給量はトークン設置時にはゼロで、誰かがDAIを担保にすることによってのみ発行できます。WJPYの発行機能を使ってDAIを送ると、まず手数料として1%がUniswapで自動的にLINKに変換されコントラクトにプールされます。残りの99%が現在のDAI<->JPYレートに合わせてWJPYとしてDAIの担保者に発行されます。また、発行時のレートと発行量は償却時に参照するためコントラクトに記録されます。
分散型オラクルの読み込みには時間差が生じるので、WJPY発行時に同じ関数内でデータをリクエストして受けとることはできません。また、発行がされる度に読み込む必要があるほど変動率の高い情報ではないので、レート更新は別のタイムラインで扱っています。レートの更新が5分に一回されようが、1日一回されようが、1週間に一回されようが実はあまり問題ではないと考えています。重要なのは更新の仕組みが分散化されていることです。
レート更新のトランザクションはプールされたLINKがオラクル読み込み手数料(テストネット: 1LINK、メインネット: 0.1LINK)以上の時に世界中の誰もが実行できます。レート更新トランザクションを実行した者はプールされたLINKから手数料を差し引いた額を報酬として受けとります。例えばテストネットで10LINKプールされているときにレート更新した人は手数料1LINKを差し引いた9LINKを受けとります。これによって、レート情報の提供自体もChainlink側で分散的ですが、それをWJPYに反映するプロセス自体も分散型にし二重の分散性を敷いています。こうしないと、誰かが定期的にレート更新トランザクションを実行する必要が出てくるのでその部分に永続性がなくなるからです。中央管理のcronジョブ等でレート更新の定期実行はできますが、そのサーバーが落ちたらどうしますか?ってことです。プールした手数料を報酬として貰えることでビットコインのマイニングのように自動でレートが更新される仕組みを創れます。ただ、この手数料1%の数字や報酬LINKの値は改善の余地があるかもしれません。が、ここを自動調節等で複雑にすることでハックの余地を与えることになるのかもしれません。ひとまず、永続的に動くシンプルな仕組みということで実装しています。
担保したDAIを取り戻すには発行したWJPYを償却する必要があります。ただし、この時に変換されるDAIは償却時の相場に基づいたものではなくアルゴリズムによってWJPYの仕組みが絶対に破綻しない方法で返却されます。仮想通貨取引所の板取引と同じ仕組みで、発行時に記録された変換レートの一番低いものから順番に取っていく仕組みです。これによって現在の相場に無関係に、
担保されたDAIの価値 = 発行されたWJPYの価値
が常に成立するので絶対に破綻しません。
具体例です。
DAI担保 => WJPY発行が
1 USD = 100 JPY で 20 DAI = 2000 WJPY
1 USD = 90 JPY で 30 DAI = 2700 WJPY
1 USD = 110 JPY で 10 DAI = 1100 WJPY
行われたとしましょう。この時点でWJPYを償却してDAIを取得したい人は記録された最もレートの低い
1 USD = 110 JPY で 10 DAI
から取って行くことになります。
2100 WJPY を償却すると
2100 WJPY = 110 JPY * 10 DAI + 100 JPY * 10 DAI
で 20 DAI が返却される仕組みです。
この仕組みを情報の書き換えや関数実行の負荷(Gas)をできるだけ少なくするためにArrayではなくてLinked Listというデータ構造を使ったシンプルなアルゴリズムで単一スマートコントラクトに実装しました。
以上がWJPYのシンプルな仕組みの全てであり、発行体権限を放棄分散化して絶対に破綻しないWJPYのアルゴリズムと、ステーブルトークンDAIと分散型オラクルのChainlink、自動トークン変換のUniswapを組み合わせてビットコインのように誰も信用する必要なく永続的に価値が保たれて回るERC20完全分散型日本円ステーブルトークンの爆誕です!
WJPYがなぜ画期的なのかを説明しましょう。まずひとつが発行主権がなく破綻せずトラストレスに永続するトークンであることですが、すなわち一度メインネットにデプロイされたら誰にも止められません。
そしてもう一つが、その普及方法です。仮想通貨で物々売買にイノベーションを起こす『和らしべ』プラットフォームでも使えるようになりますが、発行や償却の仕組みが分散的に開放されていることで、誰もが自分のDappsやシステムにWJPYを組み込むことが可能です。Dapps内のステーブルトークンとして使うことも可能ですし、取引所がUSDTのように日本円の避難トークンとして使うことも可能です。また、Uniswapを使ってあらゆるERC20からERC20<->DAI<->WJPYを自動変換するシステムも簡単に実装することができます。和らしべでDEXを提供していますが、WJPY自体は和らしべが管理しているものではなく、スマートコントラクトにアクセスするUIを提供しているだけなのです。同じものを誰もが勝手に実装できます。誰もがWJPYを発行する銀行のようなシステムを実装することができます。他のDeFiプロトコルとレゴのように組み合わせて新しい金融システムを構築できます。これがDeFiの画期的なところで、日本円でトラストレスにそれができる世界を開くのがWJPYです。(※開いていいのかについては後述)
また和らしべでモノの売買に使われ実績ができると、実社会へのWJPY実装が促進されるかもしれません。昨今流行りのキャッシュレス、何とかPAYPAYも軒並みWJPYに置き換わる可能性すらあるでしょう。僕は日本円ステーブルトークンの誕生が仮想通貨普及の鍵であると考えていて、それが爆発的に広がるためにはERC20でビットコインのように発行主体がいてはいけないと思っています。
発行主体の存在 = トラストフル = 脆弱性
であるからです。WJPYの発行自体が直接和らしべに利益をもたらすものではありません。一度デプロイされると和らしべにも管理権限が一切ないからです。ですが、仮想通貨が普及して決済に当たり前に使われる世の中になると当然モノも仮想通貨で買うのが当たり前になるので、間接的には直接的な利益以上の恩恵を受けることになります。これが和らしべメインネットに先立ち、今回WJPYを創った理由です。和らしべが新しい巨大市場を開き次世代のAmazonになるために必要なピースが分散型日本円ステーブルトークンの存在と仮想通貨のマスアダプションなのです。
ちなみに和らしべでは共にグローバルに戦える第三の創始者を大募集しています。和らしべの目指す世界観に共感し、我こそは本物の起業家だと自負される方、是非募集要項をご覧下さい。
さて、実はWJPYのアイデアを話していた時に僕は和らしべチームのある方(誰かは非公開)に脅迫を受けました(笑)。既存の法律で問題がなくても今後開発者の僕がWinnyの開発者(無罪)のように逮捕される可能性があるから慎重になった方がよいとのことです。幸いなことに僕はジョージアに住んでいますのでロシアに亡命する準備はいつでもありますが、もしこれで僕が逮捕されるのであれば、契約民主主義へ向けたZeitgeist(時代精神)が一気に高まる創造的破壊になるでしょう。僕は関係省庁と対話して物事を進めていきたいという暗号資産古物商協会の在り方にリスペクトを持っていますし、当然日本の法律を破る気もさらさらありません。
WJPYのやっていることはカストディ業務でもなければ僕や和らしべが発行体でもなく、スマートコントラクトで自動的に動いてる仕組みなので管理者もいなくて仮想通貨交換業でもありません。が、この議論が今後も金融庁に通じるのかという部分は不透明です。和らしべでも散々議論しましたが、おそらく法整備がされてない部分を内部でどれだけ議論しても何も変わりません。それはDeFi全般にも言えることだと思います。DeFiの解釈はまだ日本ではされていないでしょう。ですので今回僕は、実社会の金融と接続しないテストネットにこれを実装公開することでDeFiの議論を一歩先に進めたいとの考えもあります。
WJPYはまだPoC(概念実証)の段階で、改善点が沢山あります。Githubでコードも公開していますが、まだコメントを付けたり綺麗に書いたりしていません。この仕組みが本当に永続するのかと細かい部分を詰めに詰めた後で和らしべのメインネット公開に合わせてデプロイしようと思っています。是非皆さんの意見をお聞かせ下さい。WJPYの目的は管理主体のない完全分散型のトラストレスステーブルトークンで国内仮想通貨の大規模普及を促進することです。
◎ 和らしべテストネットにWJPYを実装
◎ スマートコントラクトに効果的なイベントを定義
◎ WJPYが破綻する潜在的原因を徹底的に検証
◎ オープンソースコードの整備・ドキュメント化
◎ 盛り上がり状況によってWJPYの開発コミュニティ開設
◎ コードの網羅的なテスト
◎ バウンティプログラムなどでコードの検証・監査依頼
◎ メインネットにデプロイ
WJPYはイーサリアムのRopstenテストネットで稼働しています。DEXウェブサイトに行って、メタマスクをRopstenに接続して下さい。
テストネットなので各種トークンを無料で手に入れることができます。DEX最下部の『テストネットフォーセット』からETHとLINKを取得。また、隣の簡易UniswapボックスでETHとDAIを変換できます。DAIにはフォーセットがないのでこの方法で入手して下さい。変換したいETHの量を入力すると受け取れるDAIの量が表示されるので『DAI取得』をクリックしてメタマスクで署名するだけです。
DEX中部にこの様に現在接続中のウォレットと、WJPY、DAI、LINKの保有額と許容額が表示されています。『許容額(allowance)』とは何かと言うと、ERC20の仕組みで外部のコントラクト(DEX)からトークンの移動をするには事前に移動可能な量を許可(approve)しておく必要があります。DEXを使って担保したり償却したりしたい量以上の許容額を事前に設定しておく必要があります。許容額の設定は値を入力して『変更』ボタンをクリックして下さい。これで、DEXを使う準備が整いました。
担保するDAIの額をボックスに入れて『WJPY発行』をクリックします。
バーン(償却)したいWJPYの量を入力して『WJPY償却』をクリックします。板取引の要領で現存するレートの高い(返還率の悪い)DAIから順番に返還されます。
LINKが手数料(テストネット 1 LINK、 メインネット 0.1 LINK)以上プールされているときに『オラクル相場読込』を実行すると、プール額から手数料を差し引いた分を報酬として受け取れます。相場の反映には5分ほどの時間差があります。
※ WJPYは現在テストネットに実装されたPoCの段階で今後様々な改善・改良を加えていくつかの新しいバージョンがリリースされた後にメインネットに実装します。
Facebookが中心となって企業連合体でコンソーシアムに管理されたLibraと発行主体なきトラストレスなWJPY、日本はどちらのステーブルトークンを使いますか?
答え合わせは5年後!
2020年 『和らしべ元年』 クラウドファンディングもどうぞよろしくお願い致します!