Ethereum Plasma Prime
" We finally hit the peak of the mountain! " 這是Ethereum Foundation researcher, Karl在Devcon 4 所說的。用這句話作為開場,代表著Plasma Prime離最終目標已經不遠了。 Plasma Prime是什麼呢?其實在 Ethereum Research 上找不到這個主題,Plasma Prime是Plasma Cash延伸的提案。Plasma Cash有一個很大的問題就是交易的歷史紀錄過於龐大(每個coin每年大約有1-3GB的歷史紀錄),如果沒有這些歷史紀錄,就沒辦法驗證作challenge 的動作。而Plasma Prime就是利用質數跟因式分解的特性,解決歷史紀錄過於龐大的問題。 Plasma Prime利用RSA accumulator來取代原本的驗證需要整個Merkle tree branch的方式。這邊用的概念很簡單,直接看範例不看數學式,假設有3, 5, 11這三個質數,可以得到 $A = g^{3*5*11}$ ,若要證明3是$A$的一部分(比較精確的說法應該是$g^3$是$A$的一部分),只要可以在 ${(g^3)}^x$ 中求得整數$x$,就代表3是$A$的一部分,以這個例子來說,可以得到整數 $x=55$ ,因此3是$A$的一部分。但是實際應用上$x$可能會很大(因為coin數很多),所以會需要更有效率的確認方式,這部分牽涉到的數學比較多,就不在這裡討論,有興趣可以參考 Wesolowski的論文 跟 Benedikt Bünz 的演講 。 回過頭來解釋這個範例,$g$是generator(代表了初始的accumulator),$A$是accumulator,然後每產出一個block,accumulator就會累加上一個block的accumulator,也就是一開始accumulator $A = g^v$ ,下一個block就accumulator $A` = A^y$ ,以此類推,一直累加上去。所以每個block就不需要帶著整個交易的Merkle tree,只需要多一個accumulator就可證明是否有交易過。 接下來,證明沒有交易過,代表要證明某數 $v$ 不是$A$的一部分,很直覺會...