RGB Protocolとは何か
田中優貴(Newki)
こんにちは、リクルートATL(アドバンスドテクノロジーラボ)で仮想通貨関連のR&Dを行っている田中優貴(Newki)です。
2015年ごろから仮想通貨に関わり始め、2017年からリクルートにて仮想通貨関連のR&Dを行っており、経済産業省の調査事業や、海外プロジェクトへの投資を行っていました。
(個人的に興味があるのは暗号学だったりします)
今回紹介するのはRGB Protocolです。本ブログでは概要のみの紹介となりますが、技術的な詳細やデモ等の紹介を含めた調査をPDFに添付いたします。
RGB ProtocolはBitcoinで動く新しいスマートコントラクトプラットフォームです。
(*2021 / 7、Testnetで検証されています)
これまでもBitcoinに関係するスマートコントラクトプラットフォームは存在しており、代表的なものはRootstock(RSK)でしょう。(もちろんBitcoin自身もそうと言えますが、EthereumのようなスマートコントラクトをイメージするならRSKの方が適切かもしれません)
ではなぜ新しくRGB Protocolのような仕組みを必要とするのでしょうか
なぜBitcoinに柔軟なスマートコントラクトが必要なのか?
Bitcoinは既にスクリプト言語によって、スマートコントラクトは実現できています。
では何故BitcoinにとってEthereumのようなスマートコントラクトが必要なのでしょうか、事実からユーザーニーズを推測することができます。
Ethereum上には、擬似的にBitcoinを扱うためのトークンが存在しており、例えばWrapped BTC(WBTC)というトークンがそれに該当します。Kybernetworkら複数組織が運営するトークンではありますが、Ethereum上のBTCとしては一定の支持を受けています。(その他にもいくつかBTC on Ethereumは存在しています)
今やEthereum上でBitcoinとしてロックされている量がBTCの現在の発行量の1%超に相当しており、主にDecentralized Finance(DeFI)で利用されているようです。
Arcane Researchの調査、coindeskの記事より抜粋
BitcoinはLightning Networkの成熟が進むにつれてPaymentで利用しやすくなっていますが、資産として保持する以外の何らかのユースケースがあるならば、ある程度Centralizedなスキームを利用したとしても活用したいというニーズが読み取れます。
過去OpenAssetやCounter PartyのようなカラードコインによってBitcoin上でトークンの発行自体は可能でしたが、Ethereumのように複雑なロジックを実装することは難しく、その影響もあってか普及は進みませんでした。
Bitcoinの上で複雑なスマートコントラクトをDecentralizedに実現可能なのであれば、Bitcoinのユースケースがより広がると言えるでしょう。
RSKはベストな選択か?
RSKは現在も開発が進んでおり、DeFiを中心に様々なDAppsが既に実装されています。
またEVM互換であり、Ethereumのエコシステムを利用することができます。
しかし、サイドチェーンという特性上、独自のコンセンサススキームをもち、ある一定のトラストを必要とするブリッジ(Powpeg)を介してトークンを管理する仕組みであるため、これが本質的に Bitcoinと同等であると無条件には言えないかもしれません。
例えば、Merged Miningの仕組みにより、Bitcoinの半分以上のHashrateを出していますが(それ自体は時価総額で2番目につけるEthereumよりも上であり、充分かのように見えます。)、Bitcoinと半分のレベルのHashrateによって実現可能なセキュリティレベルでBitcoinと同じ価値のトークンを運用できるのか?という議論もあるでしょう。
Hashrate | 参照元 | |
Bitcoin | 130 EH/s (エクサハッシュ) | https://www.blockchain.com/charts/hash-rate |
RSK | 75 EH/s (エクサハッシュ) | https://stats.rsk.co/ |
Ethereum | 700 TH/s (テラハッシュ) | https://etherscan.io/chart/hashrate |
Hashrateの比較
RGB Protocol | Rootstock(RSK) | |
Layer | 2 or 3 Layer | Sidechain |
Consensus Scheme etc.. | 下位レイヤーに準拠 | Bitcoin Merged Mining |
Virtual Machine(VM) | AluVM (現状は未統合) | EVM |
Script language etc… | Schema + Simplicity Script | Ethereumに準拠 |
Bridge Scheme | 無し | Powpegと呼ばれる、複数の運営者(pegnatories)の合意のもと自律的に実施 |
Token | 無し | rBTC |
Global State | 無し | 有り |
RGB ProtocolとRootstock(RSK)の比較
Smart Contractとスケーリング、プライバシー
スマートコントラクトを語る上で重要になることの一つがスケーリングでしょう。Ethereumでは一時期、Layer1では送金やDAppsを動作させるために高い手数料を支払う必要があったり、安定しなかったりした時期がありました。現在スケーリングのために様々なプロジェクトが並行して進んでいますが、RSKも同様にスケーリングに関して解決できているわけではありません。
Ethereumの平均Gas Price Etherscanより抜粋
またプライバシーの問題も存在します。透明性が高いことはスマートコントラクトのメリットのひとつではありますが、自分の取引の全てが誰にでも見られてしまうというデメリットもあります。
RGB Protocol
上記のような現状を踏まえ、RGB Protocolではスケーラブルでプライバシーに配慮したスマートコントラクトシステムの実現を目指しています。
RGB ProtocolはBitcoinやLightning NetworkなどBitcoin型のTransactionモデル(UTXOモデル)を持つブロックチェーンであれば利用することが可能です。
(もちろんLitecoinやMonacoinでも利用可能でしょう)
RGB Protocolでできること
下記のようなスマートコントラクトの作成
・さまざまな形態のアセット(Fungible、Non Fungible)
・アイデンティティ、レピュテーションシステム
・監査に利用可能な、証明可能なイベントログ
・その他任意で複雑なスマートコントラクト
スマートコントラクトプラットフォーム、Ethereumとの違い
・ブロックチェーンではない
・新しいトークンはない
・Global Stateを持たず、意図的に公開しない限り、Owner以外は情報を見ることはできない
・スマートコントラクトの状態の情報はクライアント側にもち、ブロックチェーン上に判別可能な形式で持たない
RGB Protocolのメリット
・Scalability
→Lightning Network上で動作可能なため、同程度の取引スピードと手数料を実現可能
→クライアント上で必要なデータを保持するため(Client-Side Validatation)、取引の全データを保持する必要がない
・Privacy
→クライアント上でデータを保持し、Bitcoin Transaction Graph上にデータを判別可能な形式で持たない
・Abstraction
→スマートコントラクトがクライアント上で保持、実行され、ハードフォークではないBitcoinの変更に耐性がある
RGB Protocolの仕組み
RGB ProtocolはClient-Side Validationと呼ばれる仕組みを利用してスマートコントラクトを管理します。
クライアント側にコントラクト情報や状態を保持し、その整合性を担保する仕組みになっています。
RGB Protocolでは大きくBitcoin Transaction Graph側とクライアント側でそれぞれ異なる情報を保持します。
Bitcoin Transaction Graph上では、コントラクトの状態が暗号学的Commitmentの形式で保存されています。
RGB Protocolにおける二層構造
コントラクトの状態自体はコントラクトごとにDAGの形式で保持され、ユーザーはその情報の、自身に関係のある一部をクライアント側にて保持することになります。
つまり、あるコントラクト全体の情報を保持するユーザーは基本的に存在せず、またユーザー自身が利用していないコントラクトの情報は感知することができません。
(コントラクト自体の情報は発行者によって公開されていることもあるので、どのようなコントラクトは確認できますが、誰がどのような権利を保持しているかは全く見ることができなくなっています)
スマートコントラクトは例えばFungibleなトークンの場合、「誰がどれだけの数のトークンを保持しているか」などの状態があります。
当然ながらユーザーが保持しているトークンの数だけ他のユーザーに送信可能であり、二重で送信するようなことは防がなければなりません(Double Spend / Double Commit問題)
このようにスマートコントラクトの状態の変更は整合性を保ちながら実行される必要があります。
RGB Protocolでは、この整合性の担保をSingle Use Seals(詳細はPDFを参照)と呼ばれる技術で実現しています。
所感
今までもBitcoin上でスマートコントラクトは実行可能でしたが、スケーラブルでプライバシーを保った状態で実行可能な仕組みは興味深く、Lightning Networkと共にBitcoinのユースケースを拡大させる上で有用と考えられます。
ただしEthereumのようにGlobal Stateを持たないため、スマートコントラクトを利用したユースケース作りには制約があり、Ethereumと同様の方法で実現することは難しい可能性があります。
いずれにせよ、Bitcoinに関する操作の柔軟性が安全に増すのであれば、クリプトの普及には価値があると考えられるため、これからも注視したいです。