Plasma Prime
スケーリングソリューションのPlasmaの一種。intmaxはPlasma PrimeのzkRollup版らしい(?)。 Plasma Prime = Plasma Cash + RSA Accumulator。素数を使うのでPrimeという。
Plasma Cash
UTXOタイプのPlasma。
ユーザー間で送金する際は、送金元がinputに用いるtransactionがunspendであることを証明する必要がある。これはSparse Merkle Tree(SMT)によるnon-membership証明により行うが、そのtransactionが生まれてから現在までのブロックにおけるSMT証明が必要で、データサイズが膨大になってしまうという問題がある。そこで考えられたのがRSA accumulator。 RSA Accumulator
Accumulatorとは、要素のmembership/ non-membershipを証明することのできる短い証明のこと
$ gは位数不明の群$ \mathbb{G}_?生成元とする。素数の集合$ \{e_1,\ldots,e_n\}(小さい順に並んでいるとする)に対しaccumulatorを$ a:= g^{\prod_{i\in 1..n}e_i}と定義する。
$ e_jのmembershipはwitness$ w_j := g^{\prod_{i\in 1..n/\{j\}}e_i}を使って$ a = w_j^{e_j}で検証することができる。
$ t \notin \{e_1,\ldots,e_n\}のnon-membershipは$ u:= \prod_{i\in 1..n}e_iとして、$ at + bu = 1なる$ a, bを見つけ、$ g^a, g^bをwittnessに選ぶ。$ (g^a)^t(g^b)^u=g^1で検証することができる。これは$ t \in \{e_1,\ldots,e_n\}ならば$ uと$ tは互いに素ではないので$ at + bu = 1なる$ a, bが存在しないため。
デメリット
証明のサイズは小さいが、証明生成に必要なデータ量は多い。
trusted setupが必要(RSAの素因数がバレてはいけない)
考察
参考文献