並列Plasma


#1

以下の提案のおかげでPlasmaへのIn/Outが高速化される未来の確度が向上した

これに伴い、子チェーンのユースケースが改善する。具体的にはネストの深いチェーンでガスの安いTxを用いることができるため、これまでTxの高価さ(t2.medium比で100万倍と言われる)から敬遠されていた処理も可能になる。

しかし、実際にどのようなコードを記述すれば良いのだろうか?

ここで提案・議論したいのは、単純な系として、イングレスのようなゲームを考える「HD Walletのアドレスを用いて (1)1st Plasmaにおけるゲーム内操作コントラクト と、 (2) 2nd PlasmaにおけるユーザーのGPS履歴記録コントラクト」という処理を並列に実行することは可能なのか。HD Walletで作られる2つのアドレスそれぞれに状態を保持する設計で、その状態を互いに紐づけるためにどのような準備が必要なのかである。

取り急ぎ問題提起までに


#2

ユーザが複数の秘密鍵を管理するか、もしくは( https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1077.md )のような方法で、複数のchainにおけるトランザクションの実行を委譲するためのコントラクトを作成する。という感じでしょうか?


#3

いつかの勉強会で @y_nakajo さん曰く、テストネットとメインネットでアドレスを同一にできる方法があり、実際そうなっているわけです(つまり公開鍵・秘密鍵が異なるネットワークで同じにできる)

それでいうと、Plasma間で秘密鍵を共有にできれば、上記のハードルは下がると思った感じです


#4

Contractを異なるネットワーク上で同じアドレスとして生成できる が正確ですね。

この場合、同一のEOAアドレスから生成する必要が有るので、厳密には公開鍵・共有鍵はそれぞれのネットワークで同一になります。。。。
もし、異なる秘密鍵同士をなんらかの方法で紐付けたいというのであれば、PlasmaもECDSAを使っているという前提であれば、
https://techmedia-think.hatenablog.com/entry/2018/04/30/152705
このような方法もあります。
ただこの方法はマルチシグ的な扱いになるので2つの署名が常に必要になるから少し違うのかな?
このアドレスからContractを作るとかすればかなり理想に近きそうな気がしないでもないです。