Tuesday, June 12, 2018

小学生でもわかる、イーサリアムのステートチャンネルについてまとめ


 ぼくみたいなかなりバカな部類の人にもわかりやすいようにEthereumのState Channelはなんぞや、ということについてまとめてみた。ざっくりいうと、

すてーとちゃんねるとは、ブロックチェーンのなかから、状態を取り除いてあげることです。

ブロックチェーン 引く、じょうたい、が、すてーとちゃんねる。です

おしまい。

で、この状態をデポジット(あずける金)にします(一時的に保留というかあずけておく)。

 で、後でイーサリアムの上で泳いでるアプリたちが、このじょうたいをいつでも使えるようになるわけです。

なんでこんなことをしないといけないかというと、みんなのブロックチェーンの中にいっぱいこものが溢れかえってると重いです。地域の回覧板のことを考えて見ましょう。あの回覧板に20キロのダンベルがついてたら「しね?」と思いますよね。そういうことです。

メリットとして、すてーとちゃんねるは、通常のブロックチェーンに比べて速いです。

また、プラズマというやり方もあるのですが、こいつとの違いは、すてーとちゃんねるは参加者がみんなオーケーして初めて確定(最終的に決まる)します。

 これまでのブロックチェーンも、似たような考えはあって、ライトニングネットワークっていうのがあったんだけどこれはカネのみ扱うのに対し、すてーとちゃんねるは、カネ以外も扱うよ。



で、実際にどうやってすてーとチャンネルが動くかみていこう。

まず、ありす(A)とぼぶ(B)が、将棋ゲームをやっていたとする。

まずありす先攻で、ありすが動く。(M0) その時にイーサリアムにショバ代を払わないといけない(T0)、で、この動きに対して、ありすは「わたし、ありすがこれを実行したのよ❤️」という証明をするために、署名をする(SA)

なので左の上の図みたいになる。ちなみに Cは契約(コントラクト=将棋ゲーム) m(ブロックチェーン)

M(0)T(0)S(A)   → C(m) .... 1

したら、もしありすが買ったらC(m)(将棋ゲーム)はありすに 「んよしんよし、よくできたでちゅねー、お金あげるねー」といってご褒美にお金をあげないといけない。このお金をイーサリアムというんんだけど、これをあげるので、

if A.win
  Cm -(e) -> A

となる。

でもこのやり方だといちいちありすとボブが動くたびにイーサリアム大先生にショバ代を払い続けないといけなくて、貧乏になっちゃうよ。

だから「すてーとちゃんねる」が発明されたんだ。

まず、二人ですてーとちゃんねるを作る。

ステートちゃんねるの中で、ありすが自分のターンの動作にサインする。で、それをイーサリアム親分の上にある将棋ゲーム(Cm)に送るんじゃなくて、ボブに送っちまう。

M(0)T(0)S(A) -> B ....2

ボブはこいつをもらったら、それに「俺はボブだ」とサインする

M(0)T(0)S(A)S(B)  ...3

で、自分もこれの控えをとっておいて、これをアリスに送りつける。
なので、 アリスもボブも両方とも(3)を持っている形になる。


ボブからアリスに動作するときも全く同じことをしてやる。

それを繰り返して、最後にゲームが終わったら、チャンネルを閉じる。

閉じたら、「へい、イーサリアムの旦那、終わりましたぜ、」と言ってこのステートチャンネルでやりとりしていたやつを Jm (Cmと同じ)に投げる。

 ただ、この際に時間とかのバッファがあって、もし片方が悪いやつで古い状態を投げて、自分が勝っている時に確定させようとかしたときになんとかなるようにする。

以上かな。

おしまい。


参考記事:
https://l4.ventures/papers/statechannels.pdf
https://medium.com/statechannels/counterfactual-generalized-state-channels-on-ethereum-d38a36d25fc6
https://medium.com/l4-media/making-sense-of-ethereums-layer-2-scaling-solutions-state-channels-plasma-and-truebit-22cb40dcc2f4

No comments:

Post a Comment