區塊鏈的可拓展性研究【03】擴容整理

為什么擴容:在layer1上,交易速度慢,燃料價格高
擴容的目的:在保證去中心化和安全性的前提下,提升交易速度,更快確定交易,提升交易吞吐量(提升每秒交易量)
目前方案有:
on-chain鏈上擴容
更改現有區塊鏈結構
off-chain鏈下擴容
不更改layer1區塊鏈結構

on-chain鏈上擴容,對區塊鏈本身性能進行提升
一層解決方案:
1·更改共識機制:PoW->PoS
2·分片:橫向分割數據庫
3·擴大區塊規模

可能會導致硬分叉

off-chain鏈下擴容:無需更改現有以太坊協議
1·側鏈 Side chains
定義:獨立的區塊鏈,與以太坊并行獨立運行,不會將狀態更改和交易數據發布回以太坊主網;犧牲安全性和去中心化換取高吞吐量
方法:雙向錨定的跨鏈橋
在這里插入圖片描述
主鏈資產鎖定,側鏈鑄造相同的資產
側鏈種類
1·單一托管模式 Centralized (basic third partyauthority)
在這里插入圖片描述
存在交易所,過于中心化
2·聯盟模式 Federation - multisig federation中心化
在這里插入圖片描述
公證人多簽
3·簡單支付驗證 SPV(simple payment verification)去中心化
在這里插入圖片描述
(不重要)驅動鏈模式 Drivechain
(不太重要)混合模式驅動鏈 +公證人/側鏈

側鏈安全性自身協議保證

項目:Polygon POS,Polygon POS,Gnosis Chain, Skale, Palm.Ronin,分片鏈(ETH 2.0)

優點
兼容性高,支持智能合約
性能高,TPS高
低費用
用于探索和測試
缺點
安全性不受保障
去中心化程度低
隱私性較弱
側鏈上的交易公開可見
2·二層解決方案Layer2(直接從第一層以太坊共識中獲得安全性,二層執行交易,數據/結果錨定會主鏈)
1·Channel
特點:
更注重安全性,而非可用性
通道采用多簽合約,使參與者能夠在鏈下快速自由地進行交易,然后再與主網結算
數據可用性:所有的數據存在Layer2,由Channel雙方保證DA狀態
有效性**:挑戰期(參與者質押)、(參與者內部) 欺詐證明 Fraud Proof**
通過質疑者質疑扣除質押
a1.支付通道 Payment Channel
a2.狀態通道State Channel
優點
適合高頻、小額支付
交易成本低
狀態有效性高
隱私性強
具有即時的最終確定性
缺點
提幣慢
不適用于偶爾轉賬給對方的用戶
不支持開放參與
TPS一般
不支持智能合約
所有者需100%在線
不能用于表示沒有明確邏輯所有者的對象
通道上的交易公開可見
2·Plasma:解決了將資產可以發送給任意目標人
因為通道無法支撐大規模,大資金和復雜交易的局限性
特點:
解決了channel的局限性(結合了側鏈的設計:解決了將資產發送給任意目標人的問題,同時也能夠確保TPS的提升)
Plasma 鏈是獨立的區塊鏈,但它們錨定在以太坊主網上 (安全性)。也可以稱為子鏈,因為它們是以太坊主網的較小副本
不支持智能合約,僅支持基本的代幣轉移、交換和其他一些交易類型
可以無限創建“鏈中鏈”
在這里插入圖片描述
運營商提供周期性的“狀態承諾”
在這里插入圖片描述也是merkle樹保證,但是只用提交狀態根
在這里插入圖片描述1任何一個狀態的變化都會導致Root hash發生變化
2如果兩棵樹的根哈希值相同,那說明他們的葉子結點存儲的信息完全一致了
3可以確認某一個狀態信息存在于某個哈希樹中

如果發現和自己交易的merkle樹根不一樣,就可以提交欺詐證明,扣除欺詐人的押金

觀察期:用戶需要每隔一段時間記錄一次等離子鏈,作為驗證者,提交欺詐證明,哪怕就只有一個誠實節點,就可以提交欺詐證明,維護安全
數據不可用,如果運營商作惡,就沒有辦法,因為他可以不公開交易
大規模退出方案,發現作惡,自動提款
項目:matic
優點
吞吐量高
交易成本低
適用于任意用戶之間的交易
不需要提前鎖定資金
安全性高
缺點
無法運行智能合約
固定提交周期
提款慢(觀察區,欺詐證明導致)
需要定期觀察網絡
依靠一個或多個運營商來存儲數據并根據要求提供服
大規模退出問題

3·rollup
Plasma運營商負責發布交易的狀態根,他可能作惡,不上傳所有交易,運行商數據有效性,權力過大

Roll-Up(在第一層之外執行任務,并在達成共識時,在第一層公開數據。 由于交易數據包含在第一層區塊中,因此可以通過原生的以太坊安全性來保證卷疊的安全性)

和plasma相同:主鏈之外執行交易,將交易成批處理,最后將狀態發回主網
和plasma不同:將交易數據提交給主鏈
和plasma不同:最大限度壓縮交易數據,同時基于自身的特性適當刪除和縮減部分數據
State Root狀態根(默克爾樹 Merkle Tree概念)
Batch批次
在這里插入圖片描述

壓縮
在這里插入圖片描述
種類
Optimistic Roll-Up樂觀卷疊
假設所有交易都是有效的,并在沒有任何初始證明的情況下提交批次
欺詐證明:任何人可以在挑戰期內,檢測并證明有數據是虛假的

在這里插入圖片描述
項目
在這里插入圖片描述優點
高吞吐量
低交易成本
安全性高,依賴于主網的安全性和共識
保證了去信任的最終性,
狀態的有效保證了數據的可用性
EVM的兼容性(solidity)
缺點
提款慢
安全模型依賴于至少一個誠實節點
必須在鏈上發布交易數據,也需成本

Zero Knowledge Roll-Up零知識證明卷疊
零知識證明 (ZKP):證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論斷是正確的
與OP Rollup相同: Rollup也是將交易捆綁成批次,鏈下執行,一同上鏈
與Optimistic Rollup不同: ZK Rollup 提交者多提交一個“有效性證明
證明可以在提交batch幾分鐘后完成
省略掉了驗證者保存數據,在挑戰期提交欺詐證明的環節
也不再需要在提交后再等待7-14天來做驗證
在這里插入圖片描述智能合約進行驗證(但是證明過程不兼容evm)

壓縮
1,生成的證明體積遠遠小于證明內容的體積(因此比op 上傳到主網的字節要小很多)
2,如果事務的一部分僅用于驗證,并且與狀態更新無關,那么該部分可以下鏈,從而減少字節。但這不能在optimistic roll-up中完成因為該數據仍然需要包含在鏈上,以防以后需要在欺詐證明中進行檢查(比較zk不需要挑戰期和欺詐證明)

生成、驗證一個zk證明需要非常非常大量且復雜的計算,因此研發進度和實際應用非常慢
EVM不兼容
在這里插入圖片描述
zk-SNARK (Succinct Non-Interactive Argument ofKnowledge)簡潔非交互式知識論證
ZK-STARK(Scalable Transparent Argument ofKnowledge) 可擴展的透明知識論證
在這里插入圖片描述優點
正確性高
交易快
數據可用性依賴代碼和密碼學而非經濟激勵機制
安全性高
效率優化度高(目前最高)
交易費用低
缺點
開發速度慢
應用不廣泛
EVM不兼容
硬件方面的中心化風險

Validium
類似于ZK rollup (零知識證明) ,不同之處在于數據被保存在鏈下
吞吐量不受以太坊數據處理能力的限制、提高擴展性、交易速度、降低用戶費用
存款和取款類似rollup
在這里插入圖片描述純鏈下:運營商無需發布交易數據
數據可用性問題:運營商作惡,隱藏鏈下數據而用戶無法過的具體交易數據,用戶就沒有辦法計算merkle證明
因為是提交有效性證明進行提款,所以運行商作惡,用戶無法得到hsah root,就無法提款

而Plasma中,運營商作惡可以盜取用戶資金,因為使用的是欺詐證明,用戶又無法證明自己欺詐了,因為運行商不給所有正確的交易數據
在這里插入圖片描述
鏈下數據可用性管理方法:
1)數據可用性委宏會數據可用性委員會
指定一組受信任的實體(統稱為數據可用性委員會)來存儲鏈下數據副本
緊急情況下將鏈下數據副本變為公開可訪問
用戶可以無需通過運營商,直接調用主合約的提款功能,將他們的資金提回。
+ve: 容易實施并且只需較少的協調
-ve:集中化風險
2)綁定數據可用性
通過經濟激勵機制和去中心化的形式來保證鏈下數據的可用性
質押代幣、分配存儲鏈下數據
擴大人數,減少集中性風險,更去中心化
項目
在這里插入圖片描述在這里插入圖片描述
優點
有效性證明防止運營商作惡
交易速度快
適用于特定用例 (eg 隱私交易、可擴展應用)
高吞吐量
交易費用低
可擴展性
缺點
開發速度慢
應用不廣泛
EVM不兼容
硬件方面的中心化風險
安全性低(賴于信任假設和加密經濟激勵)
鏈下數據可用性問題: (運營商作惡),用戶可能無法從鏈上合約中提取資金

總結
1.各方案對比,rollup有效地保證了狀態有效性+數據可用性,保留了先前方案的優勢,同時解決了他們的局限性。從而成為目前擴容領域的的龍頭。

2.在roll-up方案中,短期optimistic roll-up;長期ZK roll-up
在這里插入圖片描述
https://www.youtube.com/watch?v=I598C9GFDvk
說明:
筆記總結為了方便學習
對作者RJ小姐姐Twitter: https://twitter.com/0xRJ_eth表示感謝🙏.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211424.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211424.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211424.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

詳解進程管理(銀行家算法、死鎖詳解)

處理機是計算機系統的核心資源。操作系統的功能之一就是處理機管理。隨著計算機的迅速發展,處理機管理顯得更為重要,這主要由于計算機的速度越來越快,處理機的充分利用有利于系統效率的大大提高;處理機管理是整個操作系統的重心所…

前后端聯調神器《OpenAPI-Codegen》

在后端開發完接口之后,前端如果再去寫一遍接口來聯調的話,會很浪費時間,這個時候使用OpenAPI接口文檔來生成Axios接口代碼的話,會大大提高我們的開發效率。 Axios引入 Axios是一個基于Promise的HTTP客戶端,用于瀏覽器…

Go壓測工具

前言 在做Go的性能分析調研的時候也使用到了一些壓測方面的工具,go本身也給我們提供了BenchMark性能測試用例,可以很好的去測試我們的單個程序性能,比如測試某個函數,另外還有第三方包go-wrk也可以幫助我們做http接口的性能壓測&…

C# 任務并行類庫Parallel調用示例

寫在前面 Task Parallel Library 是微軟.NET框架基礎類庫(BCL)中的一個,主要目的是為了簡化并行編程,可以實現在不同的處理器上并行處理不同任務,以提升運行效率。Parallel常用的方法有For/ForEach/Invoke三個靜態方法…

Element-UI定制化Tree 樹形控件

1.復制 說明&#xff1a;復制Tree樹形控件。 <script> export default {data() {return {data: [{label: 一級 1,children: [{label: 二級 1-1,children: [{label: 三級 1-1-1}]}]}, {label: 一級 2,children: [{label: 二級 2-1,children: [{label: 三級 2-1-1}]}, {l…

Linux:進程優先級與命令行參數

目錄 1.進程優先級 1.1 基本概念 1.2 查看系統進程 1.3 修改進程優先級的命令 2.進程間切換 2.1 相關概念 2.2 Linux2.6內核進程調度隊列&#xff08;了解即可&#xff09; 3.命令行參數 1.進程優先級 1.1 基本概念 cpu資源分配的先后順序&#xff0c;就是指進程的優…

【C++】在類外部定義成員函數時,不應該再次指定默認參數值

2023年12月10日&#xff0c;周日下午 錯誤的代碼 #include<iostream>class A { public:void fun(int a10); };void A::fun(int a10) //<----在這里報錯 {}int main() {} 正確的代碼 代碼目前有一個問題&#xff0c;主要是在類外部定義成員函數時&#xff0c;不應該…

解密QQ號——C語言

題目&#xff1a; 有一串已加密的數字“6 3 1 7 5 8 9 2 4”解密規則&#xff1a;首先將第1個數字刪除&#xff0c;緊接著將第2個數字放到這串數字的末尾&#xff0c;再將第3個數字刪除并將第4個數字放到這串數字的末尾&#xff0c;再將第5個數刪除 代碼實現&#xff1a; #inc…

利用Node.js和cpolar實現遠程訪問,無需公網IP和路由器設置的完美解決方案

文章目錄 前言1.安裝Node.js環境2.創建node.js服務3. 訪問node.js 服務4.內網穿透4.1 安裝配置cpolar內網穿透4.2 創建隧道映射本地端口 5.固定公網地址 前言 Node.js 是能夠在服務器端運行 JavaScript 的開放源代碼、跨平臺運行環境。Node.js 由 OpenJS Foundation&#xff0…

ESP32網絡編程-OTA方式升級固件(基于Web瀏覽器)

OTA方式升級固件(基于Web瀏覽器) 文章目錄 OTA方式升級固件(基于Web瀏覽器)1、ESP32的OTA介紹2、OTA升級固件方式3、軟件準備4、硬件準備5、代碼實現6、一種優雅方式實現Web方式OTA升級6.1 基礎OTA代碼6.2 新固件庫代碼在前面的文章中,我們在Arduino IDE的網絡端口中,實現…

LeetCode 77.組合

題目&#xff1a; 給定兩個整數 n 和 k&#xff0c;返回范圍 [1, n] 中所有可能的 k 個數的組合。 你可以按 任何順序 返回答案。 方法&#xff1a;靈神-組合型回溯 剪枝 class Solution {private int k;private final List<Integer> path new ArrayList<>();…

反序列化 [網鼎杯 2020 朱雀組]phpweb 1

打開題目 我們發現這個頁面一直在不斷的刷新 我們bp抓包一下看看 我們發現index.php用post方式傳了兩個參數上去&#xff0c;func和p 我們需要猜測func和p兩個參數之間的關系&#xff0c;可以用php函數MD5測一下看看 我們在響應處得到了一串密文&#xff0c;md5解密一下看看 發…

Windows11安裝使用Oracle21C詳細步驟<圖文保姆級>新版本

Windows11安裝使用Oracle21C詳細步驟<圖文保姆級>新版本 Database Software Downloads | Oracle 中國 下載完成后解壓縮 雙擊setup.exe 打開安裝頁面 同意下一步 更改自己的路徑點擊下一步 輸入密碼 下一步安裝等待即可 等待加載配置時間有點久 完成即可 使用 搜索…

【Kubernetes】四層代理Service

Service四層代理 一、Service概念原理1.1、為什么要有Service1.2、Service概述1.3、工作原理1.4、三類IP地址【1】Node Network&#xff08;節點網絡&#xff09;【2】Pod network&#xff08;pod 網絡&#xff09;【3】Cluster Network&#xff08;服務網絡&#xff09; 二、S…

C++之異常處理

C語言傳統的處理錯誤的方式 傳統的錯誤處理機制&#xff1a; 1. 終止程序, 如assert. 缺陷: 用戶難以接受, 如發生內存錯誤, 除0錯誤時就會終止程序. 如果assert括號里面的表達式結果為假, 那么assert就會中斷程序并報錯, 所以使用assert可以幫助我們在程序判斷一些可能出錯的…

翻轉二叉樹(圖解、前序遍歷、遞歸與非遞歸)

LCR 144. 翻轉二叉樹 - 力扣&#xff08;LeetCode&#xff09; 給定一棵二叉樹的根節點 root&#xff0c;請左右翻轉這棵二叉樹&#xff0c;并返回其根節點。 示例 1&#xff1a; 輸入&#xff1a;root [5,7,9,8,3,2,4] 輸出&#xff1a;[5,9,7,4,2,3,8] 提示&#xff1a; …

【11】Qt Designer

目錄 VSCode添加外部工具 QtDesigner PyUIC PyRCC 加載UI文件模板代碼 QMainWindow QWidget 常用知識點 1. 修改標題圖標 2. 圖片資源管理 3. 圖片按鈕 4. 加載對話框 5. 動態加載Widget 6. 修改主題 其他注意事項 事件被多次觸發 PyQt5提供了一個可視化圖形工…

【小沐學Python】Python實現WebUI網頁圖表(gradio)

文章目錄 1、簡介2、安裝3、基本測試3.1 入門代碼3.2 組件屬性3.3 多個輸入和輸出組件3.4 圖像示例3.5 聊天機器人3.6 模塊&#xff1a;更靈活、更可控3.7 進度條 結語 1、簡介 https://www.gradio.app/ Gradio是用友好的網絡界面演示機器學習模型的最快方法&#xff0c;因此…

【T+】暢捷通T+軟件安裝過程中停留在:正在配置產品位置或進度80%位置。

【問題描述】 暢捷通T軟件在安裝過程中&#xff0c; 進度條一直停留在【正在配置產品…】位置。 【解決方法】 打開【任務管理器】&#xff0c;想必這個如何打開&#xff0c;大家應該都會。 在【進程】中找到【DBConfig.exe】或者【Ufida.T.Tool.SM.DBConfig.exe】進程并結束…

TS條件類型、斷言及名義類型

文章將討論處理類型的幾個高級模式&#xff0c;包括模擬名義類型的類型烙印、利用條件類型的分配性質在類型層面操作類型&#xff0c;以及安全地擴展原型。 1 函數類型 TS在推導元組的類型時會放寬要求&#xff0c;推導出的結果盡量寬泛&#xff0c;不在乎元組的長度和各位置…