Hatena::ブログ(Diary)

Evolution of the Means of Payment

2013-05-01

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で支払いを済ませたのです。

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

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

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

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

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

ここでDaveはCarolAliceと友人であることを知り、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を知っていて、CarolAliceを知っていることを突き止めます。
そして、Daveにこんなことを頼みます。
「私があなたに100ドルのIOUを発行するから、あなたはCarolに100ドル分のIOUを発行して、Aliceへの支払いをお願いしてくれないかしら」
Daveがこれを了承すれば、EveはDaveとCarolを通じて支払いネットワークに参加することが出来ます。
この支払い方法の優れているところは、AliceCarolからドルを貰い、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

iyaaaiyaaa 2013/06/08 23:23 日本語での情報が不十分で、僕も英語が得意なわけではないのでこういった分かりやすくて丁寧な記事はとてもありがたいです。
質問なのですが、Mt.goxやBitstampのような取引所についてはどう思いますか。
Bitcoinではあくまで貨幣でしかないBTCの取引をほぼ独占していたMt.goxのサーバーが重くなったことでBTCの値段が下がったりする事件もありましたが、XRPの場合にもそういうことは起こりうると思いますか。

syncnsyncn 2013/06/25 21:51 Rippleでも同様のことは起こり得ますね。
Rippleでは仮想通貨と現実通貨の間に入るサーバをゲートウェイと呼んでいます。
ユーザはより流動性のあり、堅牢で、スプレッドの小さいゲートウェイに流れていくでしょう。
Mt.goxのように先行者利益を得て一人勝ちするゲートウェイが出てくるかもしれないですね。
そして、そういったゲートウェイのシステムが不安定だと同様のリスクは起こり得ます。
ただ、ゲートウェイが各国に適正な数だけ設置され、暗号通貨の未来に気付いた金融機関がゲートウェイとして参入すればそうはならないかもしれません。
やはり、これからのことなので現時点ではまだ何とも言えませんね。

u4114u4114 2013/07/26 17:29 こんにちは。Rippleの記事読ませて頂きました。ありがとうございます。
実際問題、bitcoinとの違いがいまいち理解できない、というのが大方の感想ではないかと思います。確かにトランザクションは早いので、『早く届くbitcoin』という感じ・・・
Rippleのサイトから、 https://www.snapswap.us へのリンクが新たに追加されました。これがいわゆるゲートウェイというモノなんでしょうか・・・?

syncnsyncn 2013/07/29 16:14 snapswapがUS初のゲートウェイですね。Rippleは(Bitcoin)もそうですが、周辺環境に事業メリットを生み出し、金融機関を巻き込むことで主流通貨に食い込んでいくことを狙っています。

Ripple自体をBitcoin同様の暗号通貨ととらえると、「早く届くBitcoin」ですが、より重要なのは下記の2点です。(通貨として決済が早いというのは非常に重要であるということは置いておいて)
・信用創造が出来る(自分がネットワーク上で与信を与えて貰っていれば、現実にお金を入金することなく経済活動が行える)
・Bitcoin、ドル、円等どんな通貨でもRippleのネットワーク上で流通出来る。
Rippleは分散された与信枠の残高帳みたいなものなので、為替レートさえ決まっていればドルで売っている品物をBitcoinで決済しても良いし、円で決済しても良いのです。

Rippleは暗号通貨というよりは分散外国為替市場ですね。よってRippleがBitcoinを駆逐するといった関係にはならず、Bitcoinを含めた暗号通貨圏をより使いやすくする仕組みといったところでしょうか。

u4114u4114 2013/08/11 15:01 与信枠をどう設定するかも気になるところですが・・
単純な話として、1bitcoinあたりのrippleの相場ですが、
http://bitcoincharts.com/charts/rippleXRP#rg60ztgSzm1g10zm2g25zv
これを見ると、8000から24000と、rippleの価値が(bitcoinに対して)ひと月で3分の1に下がっています。
このようにどんどん動いてしまうと、とても与信枠をどうするかというところまで話が発展しないのではないかと思うのですが・・・

u4114u4114 2013/08/14 17:49 実際にやってみました。ripple.comから
"1btc"をwithdrawすると、29950xrpかかります。
"1usd"をwithdrawすると、313xrpかかります。ということは、
ripple内部では、1btc=95.68usdという相場。

Bitstampの同時点の取引相場は1btc=99.70usd程度。
Bitstampではusd,bitcoin,rippleどれでもdepositできますが、ripple.comからusdでdepositすると、bitcoinでdepositするより約4%損することになります。

fx conversion feeが4%というのは、paypalなみに高額な、なかなかの手数料でありました・・・

ripple内部の advanced > trade で、もっと狭いスプレッドでbid/askを提示するユーザーがいれば、単純に3%、2%・・と下がっていくのでしょうが。マーケットメーカーの役割もユーザーに依存するということなんでしょうね。

syncnsyncn 2013/08/21 10:24 実際の実験までありがとうございます。

おっしゃる通り、ripple側のボラも高いと結局rippleが意図しているところのBitcoinをより使いやすくするという目的は達成出来ないですよね。
暗号通貨は価値の裏付けの無い通貨ですので、価格変動リスクにはつねに晒される事になりそうですね。
こういったリスクを上手くヘッジして、安定してrippleやBitcoinが使えるようになると良いのですが・・・

そして、現状のrippleのconversion fee高いですね。ご指摘の通り、ユーザの競争によってより狭いスプレッドが実現するという前提があるのですが、アーリーアダプターにとってこの為替機能はあまりメリット無いですね・・・

hidesuguhidesugu 2013/11/21 00:43 rippleは、日本円で買えないのですかね??

narucynarucy 2014/02/04 21:38 bitcoinとまったくコンセプトが異なる点で、面白いですね。つまり、ヤフオクを p2p 化したようなものでしょうか。双方が認めれば、ひとまずトランザクションはできたことにすると。トランザクションが失敗したり、なにか偽造複製二重支払いうんぬんをやろうとしたら、アカウント停止出金不可能。これらのデータベースを p2p 上に構築するもの理解しました。実装するのは、たしかに、物理的なコインの性質を無理やりp2pネットワーク上で再現するように実装した bitcoin より、よほど簡単かつ高速です。

osieterippleosieteripple 2014/08/20 01:54 とても分かりやすい説明ありがとうございます。
おたずねしたいのですが、普通のリップルユーザーはゲートウェイを通じてAlice,Bob,Carolらのネットワークに参加するということだと思いますが、ゲートウェイが突然消えてしまったら、ネットワークから外れ手元にはそのゲートウェイのIOY、つまり借用書が残り、現金化しようにもそのゲートウェイがつかまらない、みたいなことが起こるのでしょうか?

osieterippleosieteripple 2014/08/20 02:14 重ね重ね質問してすいません。
あるノードが債務不履行になる、とは
保有リップルが急激に値上がり
ゲートウェイが出金できない(代わりに手にするリップルが担保になるから大丈夫?)
というようなことでしょうか?
勉強不足ですみません。よければどなたかお教え願います。

nakanohitonadoinaiyonakanohitonadoinaiyo 2014/08/21 07:17 >>osieterippleさん
まだリップルネットワークがそれほど大きくないので僕もきちんと想像できているのかわかりませんが、アリスやボブ、カトルのネットワークにはゲートウェイを通じる必要はありません。最初のこの3人の例では、ゲートウェイを必要せずに成り立たせることができます。ただ、普通のリップルユーザーは、ということで、信頼するIOUでやり取りするようになると思うので、ゲートウェイを介したやり取りが基本です。
ゲートウェイが突然消えてしまっても、3人でトラストし合ったり、他のゲートウェイをトラストしておけばネットワークから外れることはありません。ゲートウェイが突然失踪してしまったら、そのIOUは無価値になります。。XRPや、例えば、他のゲートウェイのUSDを持っていれば、現金化は他のゲートウェイを利用すればいいだけです。だから信頼できるゲートウェイを利用する必要があります。

ノードが債務不履行になるとは、例えば友人間で、お金の貸し借りをしていたときに、お金が返せなることです。
相手からお金を借りているという証に自分でJPYか何かのIOUを発行して(仮に10,000JPY発行する)、それを友人に渡します。すると、友人は10,000JPY(私発行)の資産を持っているということになります。ところが、私が経済的な事情で友人に発行した10,000JPYの価値の保証ができなくなった場合には、友人も10,000JPYの資産を失うことになります。もしも、その友人が他の友人にもIOUを発行して負債を持っているのであれば、連鎖的に債務不履行になるノードが増える可能性があります。
また、保有リップルやリップルが担保になるとはどういうことでしょうか?IOUのこと?XRPのこと?

リップルは初心者バイバイな構造であり、しかも日本語情報が少ないので最初は難しく感じます。しかし、ビットコインなどの他の暗号通貨と比べて格段に優れていると私は感じます。
リップルの仕組みについて知りたいのであれば、ここがわかりやすいです。
http://smile.wiki.fc2.com/
また、疑問に思って誰かに聞きたいことがあれば、
http://cryptpark.com
このサイトか、2chの仮想通貨板を利用することをオススメします。XRPtalkやredditなども英語ができるのであればよろしいかと思います。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。