Ethereum Plasma Prime

栏目: 编程工具 · 发布时间: 6年前

内容简介:這是Ethereum Foundation researcher, Karl在Devcon 4 所說的。用這句話作為開場,代表著Plasma Prime離最終目標已經不遠了。Plasma Prime是什麼呢?其實在Plasma Prime利用RSA accumulator來取代原本的驗證需要整個Merkle tree branch的方式。這邊用的概念很簡單,直接看範例不看數學式,假設有3, 5, 11這三個質數,可以得到

" 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$的一部分,很直覺會覺得無法因數分解即可,不過沒這麼單純(這邊我也不確定為何,可能要請數學好一點的人幫忙解答一下)。以上面的例子繼續解釋,7不是165(3*5*11)的因數,只需要證明 $0 < r < 7$ 可以得到 $A * g^r$ 即可,也就是 ${(g^7)}^x$ 找不到整數解x,但可以找到 $A*g^3 = g^{168}$ ,然後 $r = 3$(滿足 $0 < r < 7$),可以得到因數24跟 ${(g^7)}^{24} = A*g^3 = g^{168}$

統整一下,Plasma Prime是利用上面講的RSA Accumulator減少了交易的歷史資料,那說好的質數在哪裡?! 在Plasma Prime每個coin的id都會是一個質數,而不是Plasma Cash中只是一個亂數id。再來,看看實際應用的的狀況,若有你所屬的coin在block n ... n+k都沒有做過交易,只需要拿block n(的input state)的當作generator,然後n+k(的output state) 當作accumulator,根據上面的例子,只需要簡單的驗證就可以證明你的coin沒做過交易,相當簡潔。整個數據量會從GB等級減到MB等級。

Ethereum Plasma Prime

NFT issue?!

以上是介紹減少數據量的方法,但是Plasma Cash還有一個詬病的問題就是進來Plasma chain的coin/token是無法分割的,也就是你存進1 ETH進Plasma chain,沒辦法只轉0.5 ETH給別人。在Ethresear.ch 中有一系列關於這個的文章( Plasma Cash DefragmentationTake 2Take 3 ),簡單來說,就是交易原本是從一個coin轉到使用者,變成從一個區間的coin轉給使用者,如下圖,A轉了33 ETH給B,就轉token 0 - 32這個區間的token給B

Ethereum Plasma Prime

當然,這種方式也不是沒問題,交易次數多了之後,就會造成fragment,跟硬碟使用久了,會造成空間碎裂不連續一樣,每個人持有token的就無法是一個連續的區間,在 Plasma Cash Defragmentation Take 3 有解決的提案,概念上還滿簡單的,因為不是本篇重點,有興趣的可以自己去看(不過看Take 3之前還是需要看前兩篇,才能比較了解在幹嘛 XD)

以上是我所知道的Plasma Prime,利用RSA Accumulator減少資料量跟轉帳是一個區間的coin。今天分享就到這邊,如果有錯誤或是缺漏的,歡迎指教!

other references  

RSA Accumulators for Plasma Cash history reduction

Log(coins)-sized proofs of inclusion and exclusion for RSA accumulators

同場加映:

Elph 發表了Plasma側鏈

OmiesGO 發表了 Plasma Dog


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

来吧!带你玩转 Excel VBA

来吧!带你玩转 Excel VBA

罗刚君、杨嘉恺 / 电子工业出版社 / 2013-7 / 85.00元

本书旨在普及Excel VBA 基础理论,以及通过VBA 的高级应用扩展Excel 的功能,提升读者的制表效率,解决工作中的疑难,同时亦可借此开发商业插件。 本书主要分为操作自动化引言篇、入门篇、进阶篇和疑难解答篇,覆盖从入门到提高的所有内容,以满足不同层次的读者需求。其中操作自动化引言篇简述了操作自动化的需求与方式,借此引出VBA 入门篇。VBA 入门篇包含第2 章到第13 章,主要介绍了......一起来看看 《来吧!带你玩转 Excel VBA》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试