見出し画像

Cryptoeconomic Finality

PlasmaとFinality

子チェーンはルート(親)チェーンとは独立したブロックタイムを持つ。しかし、子チェーンオペレーターを信用しない基本思想なので、merkle rootがルートチェーンに取り込まれてから、ルートチェーンのconfくらいは必要
子チェーンのTxを親チェーンのマイナー(オペレーター兼任)がひっくり返すことも想定すると6confとか。金額依存。

KelvinのFast Finality提案

OmiseGOの8ヶ月前の提案を参照されたし。
簡単に言うとVISAや東証のように、受け手側から追加手数料をとっておき、決済失敗時でもfinalityを保証するもの。保険に似ている。
Plasmaにおける決済失敗は検閲や故障で、Operatorの全責。1st layerにおける決済失敗はminer or stakerによる検閲。

Merchantに帯域を貸し出すモデル

なぜ受け手から手数料を取るのか。

以下はKelvinおよびSyuheiが辿り着いた具体的な実装。

上記リンクより抜粋。
コーヒー屋みたいな小売だけニーズが強いだろうからインターネットの帯域みたいにFast Finality権を貸しだす。帯域は供託金額(補填可能金額)によって決まる。一方で、個人間送金は普通のFinalityにする。個人的にこの柔軟性は好き。子チェーンのブロックタイムを遅くしうるので、Plasma維持費をSerenity前に更に安くできる。

1st layerにも拡張したFast Finality

これがうまく動けばPlasmaは不要なはずなので研究したかった。以下に考察を書く。

EthereumにFast Finalityを適用した場合の攻撃

一部ノードしか供託していない場合、供託していないノードがコーヒー屋に(Penny Attack的に)二重支払いを仕掛けると、コーヒー屋も支払い者も懐を傷めずに供託だけ減っていく。

緩和: 全ノード強制供託

全ノードが供託していれば上記攻撃ベクタは緩和される。しかしPermissionlessなPoWに供託必須にするのは筋悪。SerenityにしてもPoSに加えてFast Finalityの供託を一律に求めるのはdecentralizationを阻害するので認められにくそう。

二重支払い被害を按分したときの必要供託額

百歩譲ってSerenityで採択されたとする。
二重支払いへの補填費用を皆で按分するモデルを考える。

攻撃: Merchantとの結託

そこそこ流通のある小売と内密に結託し、商品を渡さず二重支払いだけ引き起こして、小売にdispute(異議申し立て)してもらう。
※dispute関数の詳細はchamberのpull-reqにある。exit-gameみたいなもの。

この場合、バトルロワイヤル化する。
我先に強力な小売を味方につけ供託を搾取しようと試みる。
遠慮しているFast Finality Stakerは一方的に供託を失うが、全員参加ルールなので回避不可。
協力や停戦協定のありえない焦土戦。
FFが維持されない。

緩和: 供託増額とBurnによる連帯責任化

10000ノードで考えると、300円分の帯域を作るために300万円の供託が必要という馬鹿げた状況にしないと攻撃ベクタが緩和されない。よってルートチェーンでのFast Finalityは極めて筋悪。

ノード数を減らしたときの資本効率

1ノードで考えると300円分の帯域を300円の供託で作れる。

Fast Finality をオペレーターがひとりしかいないPlasmaで作ると、

(帯域の最安値)
=(帯域額)×(年利2%)×(貸出日数)÷(365日)


で計算できる。平たく言うと、「ロックするんだから最低でも金利分くらいは払えよ、取り合いするならオークション頼むぞ」と。
この価格を基準にイングリッシュオークションを開始し、市場価格で帯域が貸し出される。

このオークション部分をオフチェーンにしたくないな…。
オークションコントラクトってのはオンチェーンでやるとこんな感じか。 https://github.com/brynbellomy/solidity-auction/blob/master/contracts/Auction.sol
厳密には、供託量から算出される帯域を、貸出量・貸出時期ベースで、貸出予約と再販ができるようなイングリッシュオークションを作らなければならない。
先んじて予約権を得た枠を再販することによって先物のような動きをすることになるが、仕手による買い占めで帯域が枯渇すると小売企業としては困る。
この場合、オペレーターは供託の増額という形で帯域を増やすことができるが、同時に帯域先物の暴落を意味するために価格操縦が可能なので、「供託増資可能幅」に関しては現状トレードオフが存在すると言えるだろう。
まあ、実際に帯域がある日付で枯渇したとして、実際に困るまでに時間差があるので、それまでになんとかすればいいのかもしれない。

値付けに関しては、一旦DAIで想定するなら、「1ブロックの1DAI分のFF帯域貸出権(DPB=DAI per Block)あたりに、何DAIで入札するのか」という単位になると思う。これをDAI/DPBという単位で表現しようと思う。1帯域あたりいくらなのか、という単位である。たとえば、1/1時点で1000DAI供託がロックされていることが確実で、ブロックタイムが1分なら、その日のブロック数は1440個だ。したがって、あるコーヒーチェーンが0.01DAI/DPBで50DPB分を1440ブロックにわたって入札するなら、0.01*50*1440=720DAIということで、1日720DAIによって1日分、毎分50DAIの出力のFast Finality決済機能の権利をそのコーヒーチェーンは得たことになる。もしそのbidが他のbidと重複した場合は、そのブロックの帯域残量が許す限りはそれぞれのbidは残存し、安全に権利は購入される。一方で、帯域残量を越す入札がそのブロックのDPB(帯域)に入った場合は、より低価格なbidのほうから約定候補から除外されていくことになるだろう。

ちなみに、年利はヤフー知恵袋の元本保証安定投資金利の相場観を参考にした(笑)
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1241348367

結論

Single Operator Plasma以外でCryptoeconomic Finalityは得られることはない。

未解決課題

Single Operator Plasmaにおいて補填イベント発生後、供託が減っているはずである。供託再増資をしない限り帯域が減っていることになる。ここのエコノミクスを詰めたい。

あと「なぜPlasmaだけがこうもいいとこ取りできるのか不思議でしょうがない」というのがある。なんとなくやるには恐ろしすぎるので理由付けしたい。

追記

考察過程も後進のために残す。

未解決課題の延長で、「ルートチェーンでの供託の非効率性の源泉」について考えていた。

「百歩譲った」PoS全ノード供託状態の仮定のもと、ブロック提出者が責任を持ってFF補填をやると考えれば、何ノードあろうが補填に際するBurn効率は一定である。

この場合、FF供託量はPoS供託量と相関していれば十分であり、Serenityにおいては32ETHかけて1ノード建てるにつき、定数量のFF供託があればよいということになる。

欠点としては、補填イベント発生後、再度そのノードがやらかすと、補填できなくなるため、再供託するまでそのノードは復帰できない制約があることが望ましい。この点でコミュニティからは嫌われそうな提案ではある。

あとは帯域の定義と、帯域の値付け。参加ノードが多く、かつブロック提出者から補填を得るなら、いわゆる「樽の板が低いところから水が漏れる」の例えではないが、補填が引かれたノードの供託残量に帯域が律速する。また、全ノードで帯域を構成しているために、帯域購入利益は按分することになりそう。したがってやはりPlasmaのFFよりも高価になりそうな予感がしている。

この記事が気に入ったらサポートをしてみませんか?