201805 Plasmaの論点


#1
  1. exitに2週間かかるとアプリケーションの作り方が制限されるので数十秒くらいにしたい問題

  2. block withholdingが起こる蓋然性が高すぎると長期間のdepositを前提としたチェーンのdappは資金の出し入れが激しくなるため、withholdされにくいかexitが早いかどちらかがあると望ましい問題

  3. ブロックチェーンを持つPlasmaがどんなコンセンサスアルゴリズムを採用するか、SlasherつきPoSを採用する場合はcheckpointではPoSを用いるとして、各ブロックでは現実的にはdPoSになるのではないか問題(Casper phase2と似た課題)

  4. Plasma PoSのdPoS block generation部のdecentralizationとblacklistingにKYCを使えないかという議論(KYCというよりもIdentity(同一性)というべきで、現実世界の内縁および収賄によるビザンチン性があるIdentityではない方法で、かつ「あるアドレスの同一性の程度」という確率論的なアプローチをとれないか、と考えている)

  5. Rootchainの任意のコントラクトからPlasmaコントラクトへのdeposit txを作り、その完了をクライアント側で受け取りPlasmaでのhighthroughput処理に入り、それが終了する際に上記1で解決される高速exit txを発行し、exit txの完了をクライアント側で受け取る一連の流れをシームレスな体験にするための通知を含んだSDKの必要性

  6. PlasmaCashやPlasmaXTから地続きなマイナーチェンジによる改善のキャッチアップ


#2

・LNのようなWatchtowerが使えないんじゃないか説

・Golang SDK や JS SDKで子チェーンにコントラクトを書かせる際に、非決定論的(毎回結果が変わる)関数がかけてしまうのをケアしてないとどうなる?


#3

ここって、現状のEthereumで考えるとstateDBの値自体は伝搬してなくて、あくまでtransaction実行後のstate’のmerkle root hash値が一致するかどうかでしかデータの妥当性を検証してないので、blockに取り込んだminer以外のnodeが渡されたmerkle root hashを生成できるまで永遠とContractを実行し続ける みたいな感じになりそうですね。

非決定論的なアルゴリズムを許容するのであれば、それによって生成された値の保存先storageにマークをつけて、その値も一緒に伝搬するとかが必要そう。でもこの解決策だとtraffic めちゃくちゃ増えそうですね。。。

それに、伝搬された値の妥当性が検証できる必要もあるのか。。。確率論的に数%に収まるものじゃないとダメとかなんかうーん考えれば考えるほど無理筋な気がしてきた。


#4

tendermintの https://github.com/keppel/lotion なんかもJS SDKでコントラクトを書かせるわけですが、コンセンサスアルゴリズムをPoA(tendermintはpBFTですが、どちらにせよ参加者は不特定多数からの選抜ではないのでここでは同一視)にした場合はリーダーが決定したランダム値を少数のnodeに伝えるだけでよいので問題ない(先にランダム値を知ったリーダーノードが経済的に有利を働こうにもPoAでは争う必要がない)んですよね。「参加者を不特定多数からの選抜する」これがキーワードな気がします。

翻って、Golang/JS等のSDKでコントラクトを書けると謳うプロジェクトはその時点でノードが限りなく少なく、謀反を起こせない程度にトラストで縛ってあるノードで構成されている肌感があります。

つまり、プロトタイピングとしてgaming usageでのみGolang/JS等のSDKを提供し、centralizedなサイドチェーンを試してもらい、のちにEVM対応のCasper的コンセンサスを持ったサイドチェーンをローンチする段取りではないかと推測しました。


#5

なんとなくイメージが分かりました。
MMOみたいなものではなく、あるフィールドに少数のみが参加するMOや1vs1するTCG的なものでまずは~みたいなイメージですね。

その場合は、PoAだとしてもブロック生成者はゲームに直接参加していないnodeが担当したほうがいいでしょうね。経済的なインセンティブがない場合でもゲームの時はとにかく勝敗にこだわるユーザがチートしまくっちゃうので。
PUBGとかを見ても、やはり参加者に乱数決定権を渡すのはまずそうです。
そうなるとブロック生成のリーダーノードには別のインセンティブを渡さないといけないですね。素直にゲーム内通貨とかでもよさそうですが。


#6

もはやここまで開き直った実装だと、実務上ビジネスライクに契約で縛って金銭取引になるんじゃなかろうかと思っています。Identityとかわざわざ取らなくていいし。ただこの場合国をまたいだ契約になりうるので揉め事のときとかダルい