📜 [專欄新文章] Ethereum Plasma Prime
✍️ Kimi Wu
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
“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是A的一部分(比較精確的說法應該是 g³ 是A的一部分),只要可以在 (g³) ⁿ 中求得整數n,就代表3 是A的一部分,以這個例子來說,可以得到整數 n=55,因此 3 是A的一部分。但是實際應用上 n 可能會很大(因為coin數很多),所以會需要更有效率的確認方式,這部分牽涉到的數學比較多,就不在這裡討論,有興趣可以參考Wesolowski的論文跟Benedikt Bünz的演講。
回過頭來解釋這個範例,g 是generator(代表了初始的accumulator),A是accumulator,然後每產出一個block,accumulator就會累加上一個block的accumulator,也就是一開始accumulator A = g ⁿ,下一個block就accumulator A’ = A ⁱ,以此類推,一直累加上去。所以每個block就不需要帶著整個交易的Merkle tree,只需要多一個accumulator就可證明是否有交易過。
接下來,證明沒有交易過,代表要證明某數 v 不是A的一部分,很直覺會覺得無法因數分解即可,不過沒這麼單純(這邊我也不確定為何,可能要請數學好一點的人幫忙解答一下)。以上面的例子繼續解釋,7 不是165(3*5*11)的因數,只需要證明 0 < i < 7 可以得到 A * g ⁱ 即可,也就是 (g⁷)ⁿ 找不到整數解 n,但可以找到 A * g³ = g¹ ⁶ ⁸,然後 i = 3(滿足 0 < i < 7),可以得到因數24跟(g⁷) ² ⁴ = A * g³ = g ¹ ⁶ ⁸。
統整一下,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等級。
以上是介紹減少數據量的方法,但是Plasma Cash還有一個詬病的問題就是進來Plasma chain的coin/token是無法分割的,也就是你存進1 ETH進Plasma chain,沒辦法只轉0.5 ETH給別人。在Ethresear.ch 中有一系列關於這個的文章(Plasma Cash Defragmentation / Take 2 / Take 3),簡單來說,就是交易原本是從一個coin轉到使用者,變成從一個區間的coin轉給使用者,如下圖,A轉了33 ETH給B,就轉token 0–32這個區間的token給B
當然,這種方式也不是沒問題,交易次數多了之後,就會造成fragment,跟硬碟使用久了,會造成空間碎裂不連續一樣,每個人持有token的就無法是一個連續的區間,在Plasma Cash Defragmentation Take 3有解決的提案,概念上還滿簡單的,因為不是本篇重點,有興趣的可以自己去看(不過看Take 3之前還是需要看前兩篇,才能比較了解在幹嘛 XD)
以上是我所知道的Plasma Prime,利用RSA Accumulator減少資料量跟轉帳是轉一個區間的coin。
今天分享就到這邊,如果有錯誤或是缺漏的,歡迎指教!
other references :RSA Accumulators for Plasma Cash history reductionLog(coins)-sized proofs of inclusion and exclusion for RSA accumulators
同場加映:Elph 發表了Plasma側鏈OmiesGO 發表了Plasma Dog
Originally published at kimiwublog.blogspot.com.
Ethereum Plasma Prime was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有1部Youtube影片,追蹤數超過3萬的網紅孫在陽,也在其Youtube影片中提到,視覺化分析 20210512-02.自動分析 大數據分析中的自動分析,說明增加、減少的原因;關鍵影響因數,瞭解影響利潤的主要因數是折扣;交叉樹狀分析,指出各年的因數成長或減少。商業智慧的自動化分析,讓數據背後的意義,直接呈現。 孫在陽老師主講,[email protected] 範例...
32的因數 在 孫在陽 Youtube 的最讚貼文
視覺化分析 20210512-02.自動分析
大數據分析中的自動分析,說明增加、減少的原因;關鍵影響因數,瞭解影響利潤的主要因數是折扣;交叉樹狀分析,指出各年的因數成長或減少。商業智慧的自動化分析,讓數據背後的意義,直接呈現。
孫在陽老師主講,[email protected]
範例、講義下載:https://goo.gl/ytzRxT
時間軸
00:00 複習資料清理
00:55 下載範例
03:55 建立標題與利潤分類
11:26 圖表格式設定:標題
16:10 趨勢線
17:45 知識
25:09 視覺化分析
32:00 季節性、淡旺月分析
43:00 自動分析
00:55:10 關鍵影響因數
01:16:00 分解樹
![post-title](https://i.ytimg.com/vi/xfuzZ0H_2A4/hqdefault.jpg)
32的因數 在 网友问题:32的因数有哪些? - 三人行教育网 的相關結果
32 的全部因数有:1、2、4、8、16、32共6个。 网友问题:32有几个因数? ... <看更多>
32的因數 在 该数性质32 - 数字帝国 的相關結果
因式分解, 2 * 2 * 2 * 2 * 2. 因数, 1, 2, 4, 8, 16, 32. 因数个数, 6. 因数和, 63. 前一个整数, 31. 后一个整数, 33. 质数? NO. 上一个质数, 31. 下一个质数, 37. ... <看更多>
32的因數 在 32的因数和倍数是多少 - 百度知道 的相關結果
32的因数 有:1、2、4、8、16、32。 32的倍数有:32、64、96、128、160、以此类推。 因数,或称为约数,数学名词。定义:整数a除以整数b(b≠0) 的商 ... ... <看更多>