Please enable JavaScript.
Coggle requires JavaScript to display documents.
Ethereum Scalability Layer2 Solution - Coggle Diagram
Ethereum Scalability Layer2 Solution
應用場景
X_Payment Channel
原因
Payment chanel 主要是想解決
2個節點交易的速度
但我們的應用比較像是:
將聯盟鏈作為DB使用
讓此DB擁有的特性
有公信力
難被竄改
Side chain
Plasma
Plasma MVP
優化方案
Plasma Cash
2個修改
好處
不好被偷
找所有交易有關的東西,都很快速
ex. 紀錄、證明
缺點
存入2筆錢,需分開來用 (不能合併在一起)
Merkle tree 會很大(因為每比錢都有一個ID)
每筆存入Plasma contract的錢,都給一個unique token ID
Merkle tree 的index 存 tokenID,內容存這個token ID的交易紀錄
優化方案
Plasma XT
提出check point
定期做驗證
=>不需要全部歷史紀錄
解決問題:Plasma cash 資料量太大
解決方式:減少用來查證的歷史紀錄, 定期驗證
問題
Q2
2 more items...
Q1
2 more items...
Plasma Debit
解決問題: Plasma cash 每筆進帳不可分割
解決方式:
3 more items...
限制
因為channel結構上的問題
只限於一個Operator
流程
甲乙分別存入5ETH, 7ETH
甲: v=5, a=5
乙: v=7, a=7
甲轉給乙 2ETH
但乙的v=a 若甲轉過去,乙a>v的狀況是不允許的
給Operator手續費
Operator透過不同function存錢(某個coin)進入乙的帳戶,
=> 乙的v值倍增加 (乙: v=9, a=7)
所以甲就可以轉2ETH 給 乙
Plasma Prime
解決問題:Plasma cash 資料量太大
解決方式:利用質數&因式分解的特性,解決歷史紀錄過於龐大的問題
利用RSA accumulator取代原本的驗證需要整個Merkle tree branch的方式
More Viable Plasma
解決問題: 改進提款的流程 (exit game)
V.S原本的ExitGame
MoreVP ExitGame
兩段式挑戰期 (需要exit bond 跟 piggyback bond)
2 more items...
只需要送出交易的簽章,不需要confirmation signature
越新的input優先權越高
MVP Exit Game
單一挑戰期
送出交易需要簽章,離開也需要簽章
越舊的UTXO的優先權越高
解決方式:
新way=> 越新的input有越高離開plasma chain的優先權
原本way=> plasma chain的排序機制
兩段式的挑戰期
UTXO 模型
輸入= 輸出 (Bitcoin)
P.S以太坊是用Account模型
"所有者"的概念
Receiver需要拿到Sender的轉出證明,才能動用這筆款項[轉出證明只有Receiver會有]
若該Owner不關心自己的資產,可能造成"資產無效" (account-based 的設計)
因此每個交易者須有能力自行提出證明,無法委託第三方
證明方式:
將Plasma 鏈上的交易都下載,以此證明Operator做了不合法的事情
產生詐欺證明(fraud proof)
至L1上的合約 證明 operator作惡
此時需要"挑戰期" 確保詐欺證明可以安全地送到L1上
(2018年)目前MVP的設計是在主鏈外多一層而已,還沒有多層的概念
角色
Operator
似Restful API Server
(似 中心化管理者)
似 在DB insert一筆紀錄
負責產生block
操作流程
一般流程
user 先在主鏈的smart contract 作為存款
才能進入到Plasma chain
Plasma chain 每產一個block 必須跟主鏈回報merkle root
這樣這邊的block才算confirm
每個Plasma chain 是獨立的,所以不能跨鏈交易,必須先轉回主鏈
安全流程
挑戰期 7 天
=> 確保詐欺證明能順利取得及提交
依照transaction 從最舊到最新的逐一驗證
=> 避免合作作假
離開流程
離開意味"有人要把錢提出"
需要大家的簽章 (confirmation signature)
(送出交易&離開 都需要簽章)
但簽章對User很不方便
但若沒有confirmation sign,operator很容易作怪
Ex. 不打包使用者的tx(in-flight tx)
甚至可以憑空鑄幣
單一挑戰期
(需要exit bond)
越舊的UTXO的優先權越高
Q 問題
何時會發現詐賭?
會不會發現詐賭的時候 operator已經將該筆資料產出block回報給主鏈了?
缺點
資料的可取得性(data availability)
所有交易資料都在Plasma鏈上
Operator(Plasma鏈的礦工)只需繳Merkle root 到L1 的合約做公證
若Operator作惡,在Plasma鏈上交易者,就須有能力證明operator作惡
UTXO V.S 帳戶餘額模型(Account)優劣比較
UTXO 可簽發多筆交易,並廣播到區塊鏈網路
帳戶餘額模型易理解且容易編寫程式;而UTXO要考慮到輸入與輸出之間的關係,在程式上比較難編寫
帳戶餘額模型的每一筆交易都只需要一個簽名,而輸入與出都是地址,能節省儲存空間。
UTXO只要驗證當前的交易是對的,不用去追朔先前交易;而帳戶餘額模型只要金額有問題必須追朔先前交易
Account模型要有更多的機制去保護資金;而UTXO對於雙花攻擊(Double Spending)與重放攻擊(Replay Attack)有先天的保護
小總結
UTXO模型在比特幣網路多年運行下證明UTXO模型可受得住考驗,對於金融業來說,可以說是新的一種金融交易模式。
不過,UTXO與Account模型各有優缺點,在應用場景上可能Account模型比較有優勢而UTXO則最差,所以對於應用上,還是得選擇最合適的模型。
Rollup
zkRollup
2019產品化=> zkSync
歷史
Plasma Ignis ->semi-layer2
是什麼?
資料放在鏈上的Layer2解決方案
解決的問題: 資料的可取得性
&through put
=>延伸問題: 使用者需要常在線上 & 需下載部分資料
解決方式:利用Merkle tree 架構,將多筆交易縮減成一筆上鏈
解決方案:資料都在L1鏈上,且透過zk-SNARK做驗證
=> 代表著上鏈的資料都是被驗證過的
=>所以沒有一開始Layer2遇到的問題,需要挑戰 & 下載資料等等
=>代表,不需要信任Relayer,因為他們無法做壞。最多不幫你送交易。
整體架構
有一個智能合約做擔保
(此點與Plasma相同)
在合約裡記每個參與者的帳(與ERC20相同)
不同之處
標準的ERC20交易由Ethereum這系統做驗證
=>因此不能合併 (這就是Ethereum的標準交易)
Rollup中,將好幾筆交易包成一個標準交易
這樣對Ethereum這個系統而言,這就是一個交易
而驗證交易的有效性,則是由智能合約做驗證
智能合約流程
用兩個merkle tree做紀錄
一顆樹: 紀錄地址
=> 所以只需要樹的index值就可以代表一個位址(未註冊的索引值為0)
=>所以位址的資料量可以從原本的20bytes減少至只有3bytes
一顆樹:紀錄balance & nonce
From || To || Value || Fee || Nonce
3 bytes || 3 bytes || 6 bytes || 1 byte || 2 bytes
地址:因為索引值當地址的代表,所以只需要3bytes (2^24個位址)
Value:以10^-6做為基底
以上就只需要15byte代表一筆交易
大部分交易可能4bytes即可
1 more item...
有中繼者(relayer)幫忙送交易到智能合約
relayer可對比為Plasma的 operator
relayer送交易時,需要產生SNARK證明,一起送上練做驗證
https://vitalik.ca/general/2019/08/28/hybrid_layer_2.html
期望達成目標
資料放在鏈上,又不會造成資料過大
Github
待解決問題
需要初始設定
需要大量運算力
Barry提供的數據中
Relayer的電腦 若為 8G記憶體+20G的硬碟swap
=>只能產生20tx/sec
(遠遠小於理想值500tps or 實作值268tps)
Solution
平行運算
基於
多中繼者模型
Matter Labs提出了"上鏈-驗證"兩階段的方式
中繼者先把資料上鏈
下一階段再上傳證明做驗證
=>做到平行運算
再加上資料的最佳化
=> 測試結果可達1600tps
多中繼者模型
像小型的區塊鏈
使用了DPOS(Delegated Proof of Stake)
&
隨機挑選區塊產生者:可收集交易、產生證明、上鏈
=> 避免中心化,若Relayer被惡意攻擊,整個網路還是能運作
延伸問題
交易被分2段上鏈
(送出~被驗證,會是好幾個block)
=> 時間比原本單純上鏈時間更久
定義
在Layer2上交易
但L1上會記錄每一筆交易
Off Chain
X_Cross chain
原因
我們的應用不需要協調兩種鏈的交易紀錄
Reference
Ethereum Plasma Debit and More Viable Plasma
介紹 Plasma MVP 與 Plasma Cash
從 Rollups 來聊聊以太坊 Layer2 的演進
Ethereum Plasma Prime
ZK Rollup & Optimistic Rollup
評估項目
優缺點
實用性
對交易的影響(整合、安全性)
隱私性影響
公信力
不可竄改姓
可驗證姓
對個體節點的影響