みなさんはBitMEXと聞くとどのようなイメージがありますか?レバレッジ100倍、No KYC、アーサー・ヘイズの独特なブログなど色々あると思いますが、個人的には数ある取引所の中で一番ビットコイナーな取引所だったというイメージが強いです。
2年ほど前に幹部が米国の圧力により追い出され、コンプライアンス重視の体制に変わったBitMEXの存在感は往時と比べると非常に小さくなってしまいましたが、現在もBitMEX Researchは技術研究および研究支援によってビットコイン周辺に貢献をしています。
そんなBitMEXが今年8月に実験的に預かり資産の保有証明である"Proof of Reserves"を公開しました。今回は一般的なProof of ReservesスキームとBitMEXによる改善点、そして業界で採用が広がる可能性を見ていきたいと思います。
PROOF OF RESERVESを導入している取引所
Proof of Reservesを導入している取引所は非常に少ないです。有名なのはイギリスの小規模な取引所であるCoinFloorです。他にはKrakenなど数社が実証実験をしていましたが、正式導入には至っていません。Krakenは監査人を用いた、ユーザーから見ると透明性の低いプロセスによって預かり資産の保全を主張しています。
一方で、そもそも資産を預からないという方針の取引所 (販売所と呼ばれる形式に近い)もいくつかあり、それらはある意味Proof of Reservesを必要としない形態といえます。
PROOF OF RESERVESの仕組みとデメリット
Proof of Reservesの実現方法はいくつかありますが、共通点として「資産と負債の両方を監査できる形で提供し、資産>負債を証明する」という点が挙げられます。具体的な方法を見ていきましょう。
まず、資産の部の証明は比較的カンタンで、保有しているビットコインアドレスすべてから負債の部のデータに署名をしたり、あるいはアドレスが少ない場合は新しいアドレスに移しながらブロックチェーンにデータを書き込むOP_RETURNという機能を使う手もあります。
問題なのは負債の部で、各アカウントが自身の残高を検証できるようにする必要があります。実現方法としては、アカウント番号と残高の単純なリストの公開から、プライバシーを高めるためにマークル木を用いたものまで考えられます。
マークル木はビットコインや仮想通貨関係でよく出てくるデータ構造です。自分のデータと他のデータのハッシュ値(または他のデータの部分集合のハッシュ値)から、自分のデータが頂点の計算に使用されたことを証明できます。
一般的に、これらの情報を公開して、ユーザーは任意で自分のアカウントが負債の部に正しく含まれており、負債総額の計算に使われていることと、資産の部の証明が正しいことを自身のノードを使うなどして検証することでProof of Reservesは成り立ちます。大事なのは「検証されるかもしれない」ことであり、必ずしも全員が検証しなくても不正の抑止効果があると言えます。
さて、大味な実装でも定期的に資産>負債の証明をすることができることがわかりましたが、これだけではプライバシー面まで考慮しているとはいえません。今回、BitMEXがどのようにプライバシーに配慮したProof of Reservesを実現したのかを説明していきます。
ちなみに「絶対に照会してこないとわかっているアカウント」があればそのアカウントをマークル木から省くことで負債を小さく見せる不正を行えるためProof of Reservesは完璧ではありませんが、監査自体がなかったり監査人を用いるよりは優れた証明方法だと感じます。
BITMEXのやり方はプライバシー面の問題を改善
先程説明したProof of Reservesのマークル木では、1アカウントあたり1つの葉ノードでした。あるいは、CoinFloorのように単純にアカウントIDと残高のリストを公開する場合も考えられます。