寄付窓口はこちら

プラズマR&Dの現状 #nodetokyo Day1-9

誰でもアクセスできて変更できる、ブロックチェーンというのはお金がかかるデメリットが有る。それに対応するためにPlasmaがある。スケーリングのフレームワーク

f:id:niwatako:20181119143852j:plain

Ethereumはとてもセキュア。しかし高く付きます。Plasmaチェーンというのを確立しました。独自のコンセンサスメカニズムを採用しています。何をどう変更していくのか、オリジナルなものがあります。

Plasmaチェーンのスナップショットは定期的に更新されます。Ethereumチェーンに記録されるので改ざんしてもセキュリティが担保される。

なにか問題が発生したらExitして自分の資産を守ることができる安定性があります。

Plasmaのホワイトペーパーは何年も前に発表されています。

f:id:niwatako:20181119144047j:plain

いろんなコンテンツがいま出てきます。いろんな考え方が発表されています。

Plasma Flavorがいろいろある。MVPとCash、大きく2つのFlavorがある。

MVPがリファンダブルトークンを使う。Cashでは、より良いセキュリティ成約が使われているという特徴もある。どちらが良いかはバランス。

MVPとCashと比較していただいてフィットする方を使ってください。きょうはCashを中心に話します。Plasmaチェーンを使うとPlasmaコントラクトにデポジットします。大きなプールのように見えるわけですね。Plasmaチェーンのコントラクトの中にもこのように貯蔵されたプールの中に入っている。これはすごいことですね。そこでのファンダビリティがある。でもマイナス面もありなにか間違えるとプール全部が盗まれてしまってみんなが失ってしまう可能性がある。

PlasmaCashはすべてを細かくしていきます。一つのところにすべてがあるのを分割していく。小さなプールがたくさんある。このプールをNFTと読んでいます。

いろいろなバリューがグループ化されているということになりますが、一つ盗まれるにしても全体が盗まれることがないという安全性があります。追加機能としては

f:id:niwatako:20181119144354j:plain

ユーザーが気をつけなくてはいけないのは自分の分割部分だけ気にすればよいということになる。それによって演算の必要が少なくなり、プラズマチェーンの検証も少なくなる。自分がストアしなければいけない情報が減る。

f:id:niwatako:20181119144436j:plain

データ構造がどうなるか

NFTアセットをそれぞれ管理しています。基本的に送金されたコイン、ブロック内の部分だけを見る、トランスファーされたコインだけを含めていく、=ブロックサイズが小さくなる。トランスファーするときにトランザクショントランスファーでサインしなければならないが、受け取り側もコインの履歴を受け取り検証する。

f:id:niwatako:20181119144615j:plain

履歴をトランザクションごとに全部引っ張ってくるので、各コインたくさんの情報を積んでいかなくてはいけなくなる。

こちらがPlasmaCash

f:id:niwatako:20181119144658j:plain

このように分割しているので、かなり小さいサイズから扱えばFungibleと考えられるのではないか

f:id:niwatako:20181119144743j:plain

近接するコインを持っていればブランチを持てばいいので運ばなければいけないデータが減る。

近隣のものを同じブランチで扱うことが有効。

f:id:niwatako:20181119144845j:plain

ユーザーの値をできるだけひとまとめにしてデータを小さくしたい。それぞれ一つずつトークンを持っていて順番がバラバラなので非効率。個別のExclusion Proofを持っている必要がある。

Aliceがボブに送金したいとします。コインを近接させて効率を上げたい。Aliceは単純にトークンをBobに送るのではなくて、可能ならですが、一つにまとめて贈ろうとする。それがAtomicSwapと呼ばれている作業。

f:id:niwatako:20181119145010j:plain

f:id:niwatako:20181119145018j:plain

近接させて

f:id:niwatako:20181119145025j:plain

送金させたい分をボブのものに変換する

値を送金するときにプラズマのコンセンサスメカニズムを使ってこれを常時行っていく。

左下のオペレーターが効率を良くする方法を提案する。

f:id:niwatako:20181119145110j:plain

オペレーターはSwapの一つしか扱えない。2つの値があるときにブロック1つあたりに1方向のSwapしかできない。トランザクション履歴を残すために、1つしかできない。何百というSwapをやって、10万ぐらいの最後に不正を行ったとき、Swap全部の履歴を見なければいけない、それはコストが高く攻撃ポイントになるため。

Exclusion Proofについて見ていきましょう。

f:id:niwatako:20181119145224j:plain

ユーザーがProof of Exclusionを各コインごとに確保しなくて良くする。

詳細は説明はできないのでブラックボックスと思ってください

f:id:niwatako:20181119145310j:plain

たとえば6という値を入れると、これが101ではないことを証明でき雨量なものと考えてください

f:id:niwatako:20181119145352j:plain

RS Accumulator が登場します。累積を見る。累積なので一つ一つのブロックのProofを見なくても良い

f:id:niwatako:20181119145447j:plain

Bobが送金したい

f:id:niwatako:20181119145514j:plain

f:id:niwatako:20181119145520j:plain

Proofをどんどん追加していくのが、Accumulatorで一つにまとめられるので効率性が上がる。

クリプトはキリマンジャロに似ている。

f:id:niwatako:20181119145557j:plain

高度が高いが登るのはそんなに難しい山ではない、ちゃんと装備すれば登れる。同じようなものなので皆さんも是非飛び込んでみてください。