BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Trang chủ
AI AI
Tin nhanh
Bài viết
Sự kiện
BlockBeats Pro
Thêm
Thông tin tài chính
Chuyên đề
Hệ sinh thái chuỗi khối
Mục nhập
Podcast
Data
OPRR
Partnered With:

Mọi điều bạn cần biết về Optimistic Rollup (Phần 1)

Đọc bài viết này mất 25 phút
Khám phá lại bản tổng hợp lạc quan.
Tiêu đề gốc: "Thông tin khô khan | Mọi điều bạn cần biết về Optimistic Rollup (Phần 1)"
Nguồn gốc: Những người đam mê Ethereum


Một trong những thách thức lớn nhất trong hệ sinh thái Ethereum là làm thế nào để đạt được độ trễ thấp và thông lượng cao với nguồn tài nguyên hạn chế (ví dụ: CPU, băng thông, bộ nhớ, dung lượng ổ đĩa).


Mức độ phân cấp của hệ thống phụ thuộc vào khả năng của nút yếu nhất trong mạng trong việc xác minh các quy tắc của hệ thống. Các giao thức hiệu suất cao có thể chạy trên phần cứng có tài nguyên thấp được cho là có khả năng mở rộng.


Trong bài viết này, chúng tôi sẽ đi sâu vào các nguyên tắc của "Giải pháp lớp 2" hiện đại, các mô hình bảo mật của chúng và chiến lược của nó để giải quyết các vấn đề về khả năng mở rộng của Ethereum.


Đối tượng độc giả của bài viết này là những người quan tâm đến công nghệ mật mã. Nếu bạn muốn tìm hiểu thêm về công nghệ mở rộng tiên tiến của Ethereum cũng như cách thiết kế và xây dựng các hệ thống như vậy, đừng bỏ lỡ bài viết này.

 

Yêu cầu về tài nguyên blockchain

 

Trong các mạng phi tập trung như Bitcoin và Ethereum, có ba yêu cầu tài nguyên chính để chạy các nút[1]:


Băng thông: Chi phí tải xuống và phát sóng dữ liệu liên quan đến blockchain.


Tính toán: Chi phí chạy tính toán trong tập lệnh hoặc hợp đồng thông minh.


Lưu trữ: Chi phí lưu trữ dữ liệu giao dịch cho mục đích lập chỉ mục và để tiếp tục xử lý các khối giao dịch mới chi phí "Trạng thái" [2].


Các yếu tố ảnh hưởng đến hiệu suất là:


Thông lượng: Số lượng giao dịch mà hệ thống có thể xử lý mỗi giây.


Độ trễ: thời gian cần thiết để xử lý một giao dịch.


Tính năng lý tưởng của các mạng tiền điện tử mới nổi như Bitcoin và Ethereum là tính phân cấp. Vì vậy, câu hỏi đặt ra là làm thế nào để mạng đạt được sự phân cấp?


Độ tin cậy thấp: Với tính năng này, bất kỳ ai cũng có thể xác minh độc lập rằng tổng nguồn cung Bitcoin sẽ không bao giờ vượt quá 21 triệu và số Bitcoin mà họ nắm giữ không phải là tiền giả. Những người chạy phần mềm nút có thể tính toán độc lập trạng thái mới nhất và xác minh rằng quy trình sản xuất khối tuân theo tất cả các quy tắc.


Chi phí thấp: Nếu chi phí vận hành của phần mềm nút cao, mọi người sẽ chọn dựa vào các bên thứ ba đáng tin cậy để trạng thái xác minh. Chi phí cao đồng nghĩa với yêu cầu về độ tin cậy cao, đây là điều chúng tôi cố gắng tránh.


Một đặc tính mong muốn khác là khả năng mở rộng: thông lượng (và độ trễ) có thể mở rộng theo chi phí chạy các nút. Siêu tuyến tính tăng trưởng (giảm). Định nghĩa này rất hay nhưng nó không giải quyết được sức ì của “niềm tin”. Do đó, chúng tôi định nghĩa thêm “khả năng mở rộng phi tập trung”: đạt được khả năng mở rộng mà không làm tăng hoặc tăng ít các giả định về độ tin cậy của hệ thống.


Môi trường thời gian chạy của Ethereum là EVM (Máy ảo Ethereum). Trong EVM, các giao dịch phải chịu các chi phí khác nhau khi thực hiện các hoạt động khác nhau (ví dụ: chi phí vận hành cửa hàng cao hơn hoạt động bổ sung). Đơn vị tính toán cho các giao dịch được gọi là "gas". Trong hệ thống Ethereum, giới hạn gas trên mỗi khối được đặt thành 12,5 triệu gas. Trung bình cứ 12,5 giây lại có một khối được khai thác. Từ đó, độ trễ của Ethereum là 12,5 giây và thông lượng của nó là 1 triệu gas mỗi giây.


Bạn có thể đặt câu hỏi: 1 triệu khí mỗi giây có thể làm được gì?


Khoảng 47 giao dịch "Chuyển khoản đơn giản" có thể được hoàn thành mỗi giây. Giao dịch được gọi là "chuyển khoản đơn giản" đề cập đến giao dịch cơ bản nhất như "A chuyển một lượng ETH sang B". Mỗi giao dịch cần 21.000 gas.


Có thể hoàn thành khoảng 16 lần chuyển mã thông báo ERC20 mỗi giây. Loại giao dịch này yêu cầu nhiều hoạt động lưu trữ hơn giao dịch chuyển ETH, vì vậy mỗi giao dịch cần khoảng 60.000 gas.


Khoảng 10 hoạt động trao đổi tài sản Uniswap có thể được hoàn thành mỗi giây. Chi phí trung bình của một giao dịch cặp token là khoảng 102.000 gas.


...Chọn giao dịch bạn quan tâm và chia mức tiêu thụ gas của giao dịch đó cho 1 triệu gas (12,5 triệu/ 12,5/khí).


Xin lưu ý rằng khi độ phức tạp thực thi của các giao dịch tăng lên thì thông lượng của hệ thống giảm mạnh. Vẫn còn rất nhiều chỗ để cải thiện!

 

Lựa chọn 1: Sử dụng bên trung gian


Chúng tôi Tất cả các giao dịch có thể được thực hiện bằng cách sử dụng bên thứ ba mà mọi người tin tưởng. Bằng cách này, chúng tôi nhận được thông lượng rất cao và giảm độ trễ xuống mức dưới giây. Một! Điều này cũng không làm thay đổi bất kỳ thông số hệ thống nào mà chúng ta cần tham gia vào mô hình tin cậy do bên thứ ba đơn phương thiết lập. Bên thứ ba có thể kiểm duyệt chúng tôi hoặc thậm chí lấy đi tài sản của chúng tôi, điều này sẽ rất tệ.

 

Phương án 2: Mở rộng dung lượng khối và tăng tần suất khối


Chúng tôi có thể giảm độ trễ bằng cách giảm thời gian tạo khối và chúng tôi cũng có thể tăng thông lượng bằng cách tăng giới hạn gas khối. Thay đổi này có thể dẫn đến chi phí vận hành nút cao hơn, không khuyến khích mọi người chạy các nút (như trường hợp của EOS, Solana và Ripple).


Phương án 1 sẽ tăng nhu cầu về niềm tin, phương án 2 sẽ tăng chi phí. Do đó, cả hai đều không phải là giải pháp mở rộng lý tưởng.

 

Hiểu lại về Optimistic Rollup

 

Phần sau đây sẽ đề cập đến một số kiến thức về hàm băm và cây Merkle.


Sau khi đã biết rất nhiều, hãy mô phỏng một cuộc đối thoại Socrates để xem liệu chúng ta có thể tìm ra một giao thức A có thể tăng cường thông lượng thực tế của Ethereum mà không làm tăng gánh nặng cho người dùng và nhà khai thác nút.


Hỏi: Chúng tôi muốn cải thiện khả năng mở rộng của Ethereum mà không thay đổi niềm tin và giả định về chi phí của nó. chúng ta nên làm gì?


Trả lời: Bạn có thể cố gắng giảm chi phí cho các hoạt động hiện tại (xem ba loại hoạt động ở trên). Tuy nhiên, điều này nói dễ hơn làm. Trước tiên, chúng ta hãy xem xét kiến trúc của Ethereum:


Trong Ethereum mạng Mỗi nút hiện lưu trữ và thực hiện mọi giao dịch từ người dùng. Các giao dịch được thực hiện trong EVM và tương tác với trạng thái của EVM (ví dụ: các hạng mục lưu trữ trong hợp đồng, số dư, v.v.) (việc này rất tốn kém). Các kỹ thuật tối ưu hóa hợp đồng thông minh phổ biến tập trung vào việc giảm thiểu số lượng tương tác với nhà nước, nhưng hiệu quả của chúng rất hạn chế.


H: Có cách nào để đạt được sự tương tác mà không cần tương tác với trạng thái, từ đó giảm chi phí tài nguyên không?


Trả lời: Trong những trường hợp cực đoan, chúng ta có thể chuyển tất cả quá trình thực thi ra khỏi chuỗi và lưu dữ liệu trên chuỗi không? Chúng tôi có thể thực hiện việc này bằng cách giới thiệu bên thứ ba, trình sắp xếp chuỗi. Trình sắp xếp chuỗi chịu trách nhiệm lưu trữ và thực hiện các giao dịch do người dùng gửi cục bộ. Để duy trì sự tồn tại của hệ thống, người đặt hàng định kỳ gửi gốc Merkle của các giao dịch họ nhận được cũng như gốc trạng thái của Ethereum. Ý tưởng này đúng vì các giao dịch ngoài chuỗi O(N) chỉ yêu cầu dữ liệu trạng thái O(1) được lưu trữ trên Ethereum.


H: Bằng cách sử dụng trình sắp xếp chuỗi để thực hiện các tính toán ngoài chuỗi và chỉ xuất bản gốc Merkle lên chuỗi, chúng tôi Nó có thể nâng cao khả năng mở rộng của Ethereum không?


Đ: Vâng.


Q: Nói cách khác, chỉ cần chúng tôi chọn người đặt hàng, chúng tôi có thể giảm đáng kể chi phí chuyển khoản. Vậy người dùng gửi tiền như thế nào?


Trả lời: Nếu bạn gửi tiền vào một hợp đồng trên chuỗi khối Ethereum, bạn có thể tham gia Hệ thống này. Người đặt hàng sẽ ghi có số tiền đặt cọc tương ứng vào tên của bạn. Người dùng chỉ cần gửi giao dịch có nội dung "Tôi muốn rút 3 ETH. Số dư tài khoản hiện tại của tôi lớn hơn 3 ETH. Đây là bằng chứng" để rút tiền. Ngay cả khi trạng thái thực tế của người dùng không có sẵn trên L1, người dùng có thể cung cấp bằng chứng Merkle và tham chiếu gốc trạng thái do người đặt hàng công bố để chứng minh rằng họ có đủ tiền ở trạng thái hiện tại.


H: Chúng tôi đã xác định rằng người dùng sẽ cần cung cấp bằng chứng Merkle để rút tiền. Làm thế nào để người dùng có được dữ liệu cần thiết để xây dựng bằng chứng Merkel?


Trả lời: Người dùng có thể yêu cầu bộ phân loại cung cấp dữ liệu!


Hỏi: Tôi nên làm gì nếu không phải lúc nào tôi cũng có thể liên hệ được với người đặt hàng?


Đáp án: Tình trạng này có thể do người phân loại làm việc xấu hoặc đang offline do trục trặc kỹ thuật sẽ ảnh hưởng đến Sự suy giảm hiệu suất (hoặc thậm chí là trộm cắp). Do đó, chúng tôi phải yêu cầu người đặt hàng cam kết dữ liệu giao dịch hoàn chỉnh vào chuỗi, chỉ để lưu trữ chứ không phải để thực hiện. Mục đích ở đây là để đạt được sự sẵn có của dữ liệu. Vì tất cả dữ liệu được lưu trữ vĩnh viễn trên Ethereum, ngay cả khi trình sắp xếp chuỗi bị lỗi, trình sắp xếp mới có thể truy xuất tất cả dữ liệu liên quan đến Lớp 2 từ Ethereum, tái tạo lại trạng thái L2 mới nhất và tiếp quản trạng thái trước đó.


Hỏi: Nếu trình sắp xếp chuỗi trực tuyến nhưng từ chối cung cấp cho tôi dữ liệu bằng chứng Merkle, tôi có thể tải xuống từ Ethereum không ?Có quyền tải xuống dữ liệu này không?


Đáp: Có, bạn có thể tự đồng bộ hóa nút Ethereum hoặc bạn có thể lưu trữ nhiều nút từ một nhà cung cấp dịch vụ Chọn một.


Hỏi: Tôi vẫn không hiểu điều gì đó...làm cách nào để lưu trữ dữ liệu trên Ethereum mà không cần thực thi nó? Không phải mọi giao dịch đều phải được thực hiện thông qua EVM sao?


Trả lời: Giả sử bạn đã gửi 10 giao dịch từ A đến B để chuyển ETH. Việc thực hiện mỗi giao dịch yêu cầu thực hiện các thao tác sau: tăng số dư của A, giảm số dư của A và tăng số dư của B. Điều này đòi hỏi nhiều lần ghi và đọc trạng thái thế giới. Bạn có thể gửi mã hóa của tất cả các giao dịch tới chức năng public { } xuất bản (byte _transactions) của hợp đồng thông minh. Xin lưu ý rằng nội dung hàm của hàm này trống! Nghĩa là, dữ liệu giao dịch được công bố sẽ không được diễn giải, thực thi hoặc truy cập. Nó chỉ được lưu trữ trong nhật ký lịch sử của blockchain (ghi vào nhật ký rất rẻ).


Hỏi: Chúng tôi có thể tin cậy người phân loại không? Điều gì sẽ xảy ra nếu trình sắp xếp chuỗi thực hiện chuyển đổi trạng thái bất hợp pháp?


Trả lời: Bất cứ khi nào trình sắp xếp chuỗi đưa ra một loạt chuyển đổi trạng thái, sẽ có một "giai đoạn tranh chấp". Trong "thời gian tranh chấp", bất kỳ ai cũng có thể đưa ra "bằng chứng gian lận" để chứng minh rằng một trong các chuyển đổi trạng thái là không hợp lệ. Bằng chứng gian lận đạt được bằng cách phát lại giao dịch gây ra sự chuyển đổi trạng thái trên chuỗi và so sánh gốc trạng thái thu được với gốc trạng thái do người đặt hàng công bố. Nếu hai gốc trạng thái khác nhau, bằng chứng gian lận sẽ thành công và quá trình chuyển đổi trạng thái bị hủy bỏ. Quá trình chuyển đổi trạng thái sau quá trình chuyển đổi trạng thái không hợp lệ cũng sẽ bị hủy. Khi thời hạn tranh chấp đã hết, vấn đề không còn có thể bị tranh chấp nữa, tức là vấn đề đã được giải quyết.


Hỏi: Đợi đã! Bạn đã nói rõ trước đó, miễn là nó (a) làm tăng chi phí hoặc (b) đưa ra các giả định mới về độ tin cậy thì đó không phải là một giải pháp khả thi về khả năng mở rộng. Không phải kế hoạch bạn đề cập ở đây giả định rằng sẽ luôn có người báo cáo hành vi gian lận sao?


Trả lời: Đúng vậy. Chúng tôi giả định rằng có một nhóm thực thể được gọi là “người xác thực” chịu trách nhiệm giám sát gian lận. Nếu có trạng thái không khớp giữa Lớp 1 và Lớp 2, người xác thực sẽ đưa ra bằng chứng gian lận. Chúng tôi cũng giả định rằng người xác thực có thể xuất bản bằng chứng gian lận của họ lên chuỗi khối Ethereum trong thời gian tranh chấp. Chúng tôi tin rằng sự tồn tại của các trình xác nhận là một giả định yếu. Hãy tưởng tượng nếu hàng chục nghìn người dùng áp dụng kế hoạch này, bạn chỉ cần 1 người đảm nhận vai trò người xác nhận. Nghe có vẻ không thực tế lắm phải không? Ngoài ra, việc thay đổi mô hình tin cậy của Ethereum hoặc tăng chi phí vận hành nút Ethereum là một giả định chắc chắn sẽ tạo ra những thay đổi mà chúng ta không mong muốn. Đây là ý nghĩa của “ít hoặc không có thay đổi nào đối với các giả định của hệ thống cơ bản” trong định nghĩa của chúng tôi về khả năng mở rộng tập trung.


H: Tôi đồng ý rằng ai đó sẽ đóng vai trò là người xác nhận vì giải pháp mới này có sự tham gia của nhiều người. Lợi ích. Tuy nhiên, chi tiết chính xác sẽ phụ thuộc vào chi phí thực tế. Vì vậy, cần bao nhiêu tài nguyên để chạy trình xác thực và trình sắp xếp?


Đ: Người đặt hàng và người xác thực phải chạy nút đầy đủ Ethereum (không phải nút lưu trữ) và nút L2 đầy đủ nút để tạo trạng thái L2. Trình xác thực chạy phần mềm tạo bằng chứng gian lận và trình xác thực chạy phần mềm đóng gói và xuất bản các giao dịch của người dùng.


Hỏi: Chỉ vậy thôi à?


Đ: Vâng! Chúc mừng! Bạn đã khám phá lại Optimistic Rollup [3], giải pháp có khả năng mở rộng hứa hẹn nhất trong năm 2019-2021. Tôi không nói những lời to tát, đây là kết quả của nhiều năm nghiên cứu của cộng đồng Ethereum. Đó là những gì bạn nghe được trong cuộc trò chuyện ngắn này.


Liên kết gốc


Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:

Nhóm Telegram đăng ký: https://t.me/theblockbeats

Nhóm Telegram thảo luận: https://t.me/BlockBeats_App

Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia

举报 Báo lỗi/Báo cáo
Chọn thư viện
Thêm mới thư viện
Hủy
Hoàn thành
Thêm mới thư viện
Chỉ mình tôi có thể nhìn thấy
Công khai
Lưu
Báo lỗi/Báo cáo
Gửi