Rippleの仕組み

Bitcoinの初期の開発者達が集まって目下開発中のRipple。
Bitcoinの欠点を補った暗号通貨として注目が集まっていますが、こちらも国内の情報がほとんど無いので、その仕組みについて説明していきたいと思います。


1.Rippleとは
ややこしいんですが、Rippleとは新しい通貨そのものではなく、暗号通貨を使った新しい取引プロトコルです。
後述する仕組みのため、取引に使う独自の暗号通貨としてRipple(XRP)を使っていますが、Rippleの目的はdecentralized(非中央集権)された取引ネットワークを作ることにあります。

このdecentralizedというのはBitcoinの時からあったように、取引を仲介する第三者が増えるほど取引コストは高くなっていくんだから、仲介機関がゼロになれば取引コストは極限に下がるよね、という考え方に立脚しています。

2.Rippleの開発者
Rippleを中心的に開発しているのはOpenCoinという会社です。ファウンダーはソーシャルレンディングの大手Prosperを立ちあげたChris Larsenと、Bitcoinの初期の開発者であり、Mt.Goxを立ち上げたJed McCaleb※1の2人です。
このChris Larsenが関わっているというのが結構重要ポイントで、RippleはBitcoinの取引にソーシャルな関係を持ち込んだ仕組みなんです。

Rippleの肝は、IOUという債務を使った取引なんです。この仕組みによって極めて低コストな取引を可能にしているのです。

もうお分かりの方もいるかもしれませんが順を追って説明していきます。

3.IOUを使った取引の仕組み
ここにAlice, Bob, Carolという3人がいます。この3人はお互いに友人で、一定の信頼関係があり、100ドルくらいのお金なら貸しても良いと思っているとします。

今、AliceはBobから100ドルを借りていたと仮定しましょう。この状況でBobはCarolから100ドル分の物を購入しました。この時、BobはCarolに対して「支払いの100ドルはAliceから貰ってね。」と伝えます。
これがIOU(あなたに借りがある)を使った取引です。BobはCarolに対してドルで支払うのではなくAliceのIOUで支払いを済ませたのです。

CarolはAliceに今すぐ100ドルを現金化してくれと要求することも出来ますし、いずれAliceから100ドル相当の何かを受け取る時の対価としてIOUを返しても良いはずです。

つまり、この3人の中では、100ドルを上限とした、円やドルを使わない通貨圏が成立しているのです。

では、この3人の通貨圏はどの様にして拡張することが出来るのでしょうか。

ここにDaveという新しい人物が加わりました。彼はCarolとは友人だけれども、他の2人のことは知りません。Carolは彼のことを信頼していて、他の2人と同様に100ドルまでなら貸しても良いと考えています。

ある日、DaveがAliceから100ドル分の買い物をしました。この2人は知り合いでは無いので、基本的にDaveは現金でAliceに100ドルを支払わなくてはなりません。しかし、Daveは3人とは別の国に住んでいるため、支払いにコストが掛かってしまいます。

ここでDaveはCarolがAliceと友人であることを知り、Carolにこう頼みました。
「いつか君に100ドル返すと約束するから、君からAliceに100ドルを支払っておいてくれないか?」
Carolはこれを了承し、Aliceに対して自分のIOUを100ドル分発行すると共にDaveから100ドル分のIOUを受け取りました。
Carolに仲介してもらうことで、DaveはIOUによる支払いネットワークに参加することが出来ました。

次に、EveというDaveと同じ国に住む人物を加えてみます。
彼女はDaveとは知り合いだけれども、他の3人とは知り合いではありません。Daveは彼女のことを信頼していて100ドルまでなら貸しても良いと考えています。
そして、ある日EveはAliceから100ドル分の買い物をしました。
Eveは、DaveがCarolを知っていて、CarolがAliceを知っていることを突き止めます。
そして、Daveにこんなことを頼みます。
「私があなたに100ドルのIOUを発行するから、あなたはCarolに100ドル分のIOUを発行して、Aliceへの支払いをお願いしてくれないかしら」
Daveがこれを了承すれば、EveはDaveとCarolを通じて支払いネットワークに参加することが出来ます。
この支払い方法の優れているところは、AliceがCarolからドルを貰い、EveがDaveに支払いをすれば取引コストが発生しないことです。
もっとも、CarolとDaveのどちらかが100ドルを超えて貸借しない限りといつ条件付きですが。

もうお分かりの通り、RippleはP2Pを使ってこのIOUを使った取引を再現しようとしています。

ネットワーク上で、自分が信頼出来る人物を探して彼らに与信枠を設定します。
するとネットワーク上にIOUのトポロジーが出来るので、これを元に買い手と売り手の間にある最短のノードを作り買い手側のノードから売り手側に向けてIOUを発行していきます。

与信枠を超えた場合は、自分のIOUを何らかの手段で回収すれば良いのです。この時の手段は現金で支払ってもいいし、物や労働を売ってIOUを買い取っても良いです。

買い手と売り手がIOUのネットワークによって繋がっている限り、Rippleの通貨圏では極めて低コストにお金を動かすことが出来ます。

3.通貨としてのRipple
IOUという借金のカタは、受け手が了承してくれれば、色々な通貨で発行することが可能です。それこそ円で発行しようが、ドルで発行しようが、Bitcoinで発行しようが自由なのです。もちろんRipple内の独自通貨で発行しても構いません。
これがRippleが純粋な暗号通貨ではなく、取引プロトコルと言われる所以です。

では、なぜRippleという通貨を新たに作ったのでしょうか?

答えは、悪意あるネットワークの取引に対抗するためです。

Ripple上での資金移動コストは完全なゼロではありません。実は取引する度に極めて小額ですが、ネットワークの利用料としてRippleを支払う必要があります。
また、ここで支払われたRippleは誰かの手に渡るわけでは無く、単純に破棄されます。

なぜそんなことをするかと言うと、Rippleのネットワークに大量のトランザクションを流す参加者を防いで、ネットワークの信頼性を保つためです。

RippleもBitcoin同様、通貨の発行量の上限を始めから定めています。1,000億ripple(XRP)がネットワーク上に存在し、これ以上増えることはありません。

Bitcoinでは、ネットワークの信頼性を高めるためのproof of workに貢献するというマイニングという行為に対してBitcoinを発行しています。一方、Rippleでは1000億通貨単位を最初からネットワークに供給し、以後、ネットワーク上でトランザクションが起こるごとにRippleが減少していくという設計になっています。

Bitcoinが悪意のある攻撃者からネットワークを守るため&Bitcoinを入手するために多大なネットワーク負荷がかかっている※2のに対して、Rippleではネットワークに負荷をかけ過ぎると価値が減少するという逆の仕組みになっています。よって、スキャルピングやHFTといった短時間で何回もの取引を起こす投機的な活動はすればするほど損をするので防がれることになります。そういった取引が流動性を提供することはあるので、100%正しいとは思いませんが。

いずれにせよ、これもBitcoinとRippleの大きな違いの1つになります。

4.Proof of workに代わる仕組みConfirmation
Bitcoinのproof of workは美しい仕組みでしたが、一方でBitcoinが普及すれば普及するほど非エコであることは先述の通りです。
また、取引がネットワークで承認されるには平均10分待たなくてはならないという制約も大きいです。Bitcoinの相場が現状のように乱高下していると、10分経つ間に自分が受け取ったBitcoinの価値が半減する可能性だってあります。

Rippleはproof of workに代わる仕組みとしてConsensusを採用しました。

Rippleでも全取引の記録をLedgerとして分散データベースに持ちます。ここまではBitcoinと一緒です。
しかし、Rippleはハッシュ値計算という数学的な問題を解く解くことによって取引記録を作ることはしません。
その代わりに、特定の承認者達によって取引記録の合意が得られた時に新規の取引をLedgerに追加します。

この承認者のことをValidatorと呼びます。この承認者達はネットワークの信頼性を担保出来る人物というわけではなく、単に結託してネットワークを騙そうとする人間では無いという条件で選ばれます。
結託する可能性は無いので、そういったValidator達の合意を得た取引は信頼されるに足るだろうという理屈になっています。
この合意形成のプロセスは5-10秒に1回行われます。数学的な計算が必要ないため非常に早く取引をLedgerに追加出来るのです。

これ以上の細かい説明は省きますが、Rippleは取引記録の承認にも参加者間の信頼という要素を使うことで、proof of workほど確かではありませんが信頼性を担保しています。

5.Rippleの課題
以上、Rippleの解説を簡単にしてみました。
オープンソースであり、Decentralizedであり、暗号通貨であるというBitcoinとの共通点を持ちつつも、IOUやConsensusといったBitcoinとは全く違う要素によって、新たな通貨を目指すRipple。

Ripple内の通貨を現実世界の通貨に変える時に使うゲートウェイサーバや、内蔵型の為替取引機能など説明を省いてしまった点が多々あるのですが、Rippleを理解する上で大事なのはIOUを使った取引とConsensusの2点なので、残りの仕組みは後日改めて説明したいと思います。※3

Bitcoinの改良版としてRippleも良く出来ているなと思います。
しかし、Rippleには取引プロトコルとして大きな欠点が1つあります。
それは貸し手が借り手のカウンターパーティリスクを把握せずに与信枠を設定出来てしまうことです。

全参加者が借り手の信用力を正しく計算して与信枠を設定していれば良いのですが、親しい友人や家族だということだけでその人の与信枠を設定してしまうと、結果的に信頼性の低いノードが各地に生まれてしまいます。

ノード間は貸し借りの関係で繋がっているため、あるノードが債務不履行になった時は、そのノードに与信枠を設定していたノードが債務を負います。そうすると、参加者の共倒れを生むリスクが高まります。

一度そんなことが起こればそんな通貨は信頼されないでしょうし、一方でIOUの与信枠を家族や親しい友人だけに限定すればクリティカルマスを超えずに、局所的に使える単なるPC版LETで終わってしまうかもしれません。

個人的には既存の暗号通貨にはこのリスクという視点が欠けており、これを補った取引プロトコルが生まれるまでは、暗号通貨は未来の通貨になれないと考えています。

このリスクという視点を取り入れた取引プロトコルについてはまた後日書くことにします。

※1
Jed McCalebは一部ではSatoshi Nakamotoでは無いかと噂される人物ではあります。初期のBitcoinの開発者であり、Mt.Goxの創業者でもある彼は、同時にBitCoinフォーラムの出資者でもあります。いずれにせよ、Bitcoinの開発者の1人が別の暗号通貨の開発に携わっているというのは興味深いです。
http://www.bitquestion.com/question/1/satoshi-nakamoto

※2
一見、Bitcoinの取引コストは少なく見えますが、実はネットワークにはこんなコストがかかっているんですよね。
http://jp.techcrunch.com/2013/04/15/20130413the-cost-of-a-bitcoin/

※3
Rippleのwikiに大概のことは書いてあるのでご覧になってください。
https://ripple.com/wiki/Main_Page