Plasmaのdefragmentationについて


#1

前提はrange chunkingが入ったCashやPrimeです。

Plasma CashやPrimeでは、送金するたびにsegmentが分割していき、exitがしにくくなったり履歴の量が価値の割に多くなってしまいます。

前提としてsegemntに対する操作はsplit, merge, atomic swapがあるものとします。

現在私が考えているのは

  • splitを伴う送金はoperatorへのfeeが必要
  • mergeはoperatorへのfeeが必要ない
  • atomic swapはoperatorへのfeeが必要ない

何か全体として、うまくデフラグされるような設計を考えています。
何かアイデアがあれば議論したいです。


#2

まだアイデアが思いつけるほど fragments 管理について理解できていないので疑問点になってしまうのですが、、そもそも Plasma Prime における split 時、新しい fragment への素数の割り当てがどうなるのかが気になっています。素数は全て root chain contract で管理されていないといけないはず?なので、deposit 時に可能な範囲で細かい fragments に分割して素数を割り当てておく必要があるのかなと思っていましたが、split と merge が入ってくるとこれがどうなるのかなと。


#3

ちょっと僕もそこをしっかり考えていなかったことに気づきました。。

  • splitやmerge時にできたfragmentへの素数の割り当て。

ここは少なくともChamberでは、まずchunkに素数を割り当てて、そのsegmentが属するchunkの履歴を全て監視したり提出する必要がある、という前提で進めていました。

でもそもそもchunkへの素数割り当ても、それはそれでroot chainで管理できないといけないんですよね。これは以下でも語られていると思いますが

一回別スレッドで整理しましょうか。


#4

まずGlossaryとして

Chunk - CashのSlot, 履歴監視はこの単位. 部分的にChunkにかかるSegmentを保有してても履歴監視必須.

Segment - Deposit直後はChunkと同じ金額のSegmentとして存在する. Transfer, Split, Merge, Atomic Swapを通じて所有者を変えながら細分化されたり再び大きな塊になったりする

Fragment - SplitやExitの果てにスパースに小さなSegmentだけが残るChunkは機能不全になる. その現象の名前?

不明点: ExitはTxを提出することから、Segment単位で行われるという理解でokですよね。


#5

そうですね。まず用語を揃えましょうか。自分は最近 RSA accumulator 系の板を見ていたがゆえに、そこで Vitalik が fragment という言葉を使っていたのを意識していましたが、 Plasma Prime design proposal では chunk と segment で語られているので、chunk と segment にしましょう(下図も同スレより引用)。

このスレは defragmentation を扱うこととして、素数の割り当ては別スレッドで整理した方がよさそうですね。自分はまず Plasma Prime design proposalPrimeHash game for Plasma Prime をまじめに読んできます!(RSA accumulator 分かんない!ってなって途中で離脱していたので。。。)


Chunkへの素数の割り当てについて