Nth Plasmaとセキュリティ


#1

この板はPlasmaの階層構造の深さのトレードオフを理解することを目的とする。

Nが十分に深いケースでは、そのPlasma PoSで51%のシェアを占めることは容易い。その一方で毎ブロックごとにMerkle HashをN-1th Plasmaにcommitしている状況においては、モナコインで起きたようなdouble spentを起こすために前のブロックと異なるフォークを「重く」したいのであれば、親チェーンも再帰的にフォークする必要があり、攻撃が難しくなるであろうという共通認識があるはずだ。

そうなると直感的にはNを圧倒的に大きくすることが最適戦略となるが、おそらくいずれかのタイミングでパフォーマンスボトルネックやセキュリティモデルの破れが露見することになる。それがなんなのかをここでは議論したい


#2

まずは世界人口と計算資源の量が間違いなくnを大きくする上でのボトルネックになる。逆にいうと、 十分に人口と計算資源があるならNは際限なく大きくできるのか? というのが重要な問いになる


#3

供託に必要な資本も重要なファクターになりそう


#4

あらゆる計算処理がPlasmaに乗るようになると、ルートチェーンは指数関数的に高価になる。するとNth PlasmaでのStakerの競争も激しくなり、必要供託金やガス代が上昇する。したがってN+1th Plasmaに引っ越すことになる。

これは不便だし、inter chain communication (例えばparseclabsのcomputation request)が必要になる頻度とその処理の遅さが問題になってきそう。

ただし、今は全く議論されていないPlasma MapReduceが真面目に議論されはじめる可能性も高い。


#5

おそらく需要(Tx)増加速度より供給(N+1th Plasma)増加速度の方が十分に早いことは想像できる。

いろんな階層にコントラクトをデプロイできるわけだが、
「なぜわざわざ中途半端な階層を選ぶのか」
「すでにその階層でサービスを開始してしまってmigrationが大変なので惰性で残っている」

のような状況が生まれることは想像できる。


#6

どうすればNth Plasmaを効果的に攻撃できるかを考えた方が答えに近そう


#7

Nがどんどん増えていくのは容易に想像できる(高速に処理できたほうが良いから)
とはいえ、Nが増える=あるサービスや処理に特化すると考えるとNの最大値もさして大きくはならない気もする。

例えば、10のレイヤーも重ねるほどの複雑さを持つサービスが存在するのか?という問題

10のレイヤーに分けて整理して考えられるほどの天才がいるのか?という問題があるとおもう。

またNが増えすぎると参加する人数が減っていくということと、新しいplasmaチェーンを作った時にそのチェーンの価値の担保が必要になるが、参加人数と価値は基本的にはある程度比例関係になるので、Nが増えるほど価値も減っていくと思う。
plasmaチェーンの価値が減ると多分challengerも減っていく(インセンティブが低いので他の価値あるplasmaチェーンに集中するほうが良いから)ので安全性も低下していくかも。

パッと思いついた問題点を適当に書いてみた。


#8

Nが十分に大きい時の動的平衡は、換言すると「OperatorやStakerやUserの流入と流出の速度が等しいこと」なので、「各Roleの別階層Plasmaへの流入・流出速度」をVoprin,Vstkin,Vusrin,Voprout,Vstkout,Vusroutとしたとき、単位時間あたりの該当処理Tx数でモデリングしたりしていくと、面白いことができそうな気がしました。物理っぽい。


#9

Plasmaは自分の上下のチェーンのdeposit/withdrawalしか関心を持たないはず
Nth PlasmaからRootchainへのwithdrawalを許容するには、RootchainはNth Plasma内の資本の裏付けとなるCollateralをコントラクト内に持っている必要が出てくる。これをN-k個(k=1…N-1)の階層に対して持っても、それはスケーリングソリューション足り得ない。N-k個のチェーンはRootchainにcommitを試みることになり、Txの圧縮効果を得られないから。
したがって、Nth Plasmaから資本をwithdrawalする場合は、N-1個のチェーンでwithdrawalを完了させる必要がある。


を引用して 引き出し摩擦係数(=1-引き出し割引率) を定義する。
便宜上引き出し摩擦係数をここでは Kwth とする。
上記リンクにおいては Kwth=0.9 での議論がなされている。

ここでN=10のケースを考える。
N=10のPlasmaからRootchainへのwithdrawalをfast withdrawalしたとき、(0.9)^10=0.348 ということで引き出しは高速に完了するが、資本が34.8%に目減りしてしまい実用性がない。Kwthの高い設計を考える必要性が非常に高い。また、fast withdrawalを行わなかった場合 2週間*10=140日 ものchallenge期間があり、これも実用的ではない。

これはNth Plasmaの実用性を律速させる要素であると考えられる。

P.S. Kwthは2週間での利回りに関わるので、1に近似しても年利では相当な利回りになると予想している


#10

ETHを2N週間貸し出すことになるので、とある資金ロックと攻撃リスクを取ってくれる人がいる場合、その人は何をするかというと、
1 fiat払ってETH調達
2 x%ディスカウントした量のETH渡すかわりにdepositの債権もらう
3 poloとかでETHショートしてfiat建価格リスクヘッジ
4 2N週間後にショート解除
5 債権のETHゲットしてfiatに変える

ここで登場するコストは、
1 最初に渡す用のETHを板で買うコストで0.1%
2 ETHショート2N週間にかかる金利
3 ショートポジション構築・解除にかかるコストで0.2%
4 債権のETH売却してfiatにするコスト0.1%

が考えられます。これらの金銭的トータルコストと攻撃リスクを加味してディスカウント率x%が決まるというのが僕の理解です。
ETHショート2N週間にかかる金利については、均衡状態ではETHのPoS利回り近傍になるはずで、ざっくり年利1%(1週間あたり0.02%)とすれば、
0.1%+0.2%+0.1%+0.02%*2N=0.4%+0.04N%
なので、N=15くらいでも1%で済みます。これに攻撃リスクプレミアムともろもろのオペレーションコストが乗ってきたとしても、2-3%とかで、経済圏としてワークする印象です。


#11

fiat調達金利を加味するの忘れてました。これに2週間あたりの金利0.2%くらいをざっくり0.2N%としてのっける感じです。


#12

カナゴールドさんのインサイトを再解釈するために書き下します。

N=13でexit引き受け手の資金が約半年ロックされることとなり、n層割引率がそのままその貸金投資の半年利回りということになり、この場合、この貸金投資を安定的な資産運用とみなしてもコストをのぞいて10%程度の年利周りを期待するでしょうから、実質13層割引率は6.5%以上ないといけないということになる

N=27でexit引き受け手の資金が1年ロックされることとなり、n層割引率がそのままその貸金投資の年利回りということになり、この場合、この貸金投資を安定的な資産運用とみなしてもコストをのぞいて10%程度の利益を期待するでしょうから、実質27層割引率は13%以上ないといけないということになる

こういう説明ができるようになりそうですね


#13

PlasmaのByzantine behavior発生率が支配的な気がしている。そのPlasmaの上に乗るトークン総額が上がると Adversarial Short Sellのインセンティブになるため、チェーンを止めかねない。親チェーンがByzantineなとき子チェーンは稼働を続けるがcommitはできないので、セキュリティの甘いブロックが積み上がることになり、(実装によるがMaticの場合だと)Validatorの不正に気付けるのがcheckpointでの署名前なので、不正に気づくまでタイムラグができてしまう。

N層のチェーンすべてがMaticのようなRestart機構を持っているならMass Exit回数を減らせるのでよいだろうが。


#14

さっきちょっと真面目にNth Plasmaを考えて見ました、面白半分で見てください

  • 1層目で2層目のmerkle rootを扱うのに、そのstateを含むUTXOは2層目にdepositされてる価値を全て持たないといけない
  • 1層目で2層目のblock(n-1)のmerkle rootからblock(n)のmerkle rootへの遷移を検証できる必要がある

ということは2層目はPlasma snapp?


#15