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


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

查看所有标签

猜你喜欢:

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

白话机器学习算法

白话机器学习算法

[新加坡] 黄莉婷、[新加坡] 苏川集 / 武传海 / 人民邮电出版社 / 2019-2 / 49.00元

与使用数学语言或计算机编程语言讲解算法的书不同,本书另辟蹊径,用通俗易懂的人类语言以及大量有趣的示例和插图讲解10多种前沿的机器学习算法。内容涵盖k均值聚类、主成分分析、关联规则、社会网络分析等无监督学习算法,以及回归分析、k最近邻、支持向量机、决策树、随机森林、神经网络等监督学习算法,并概述强化学习算法的思想。任何对机器学习和数据科学怀有好奇心的人都可以通过本书构建知识体系。一起来看看 《白话机器学习算法》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具