BTC
ETH
HTX
SOL
BNB
Xem thị trường
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

ETH2.0 sắp ra mắt, bạn chưa biết Casper à? (hai)

Fractal
特邀专栏作者
Bài viết này có khoảng 4923 từ, đọc toàn bộ bài viết mất khoảng 8 phút
Bài viết này sẽ giới thiệu giao thức Casper sẽ được sử dụng trong Ethereum 2.0.
Tóm tắt AI
Bài viết này sẽ giới thiệu giao thức Casper sẽ được sử dụng trong Ethereum 2.0.

hiện hữuhiện hữuTrong, chúng tôi đã giới thiệu Casper FFG trong bài báo gốc của Vitalik, sử dụng PoS để xác nhận các khối do PoW tạo ra nhằm cải thiện tính bảo mật của hệ thống, nhưng đây chỉ là giải pháp chuyển tiếp và PoS thuần túy sẽ được sử dụng trong Ethereum 2.0 Giao thức Casper , bài viết này sẽ giới thiệu giao thức Casper sẽ được sử dụng trong Ethereum 2.0.

tiêu đề phụ

Trước tiên, hãy xem kiến ​​trúc của Ethereum 2.0 trông như thế nào Như trong Hình 1, sẽ có một chuỗi chính gọi là chuỗi Beacon trong Ethereum 2.0, được tạo thông qua PoS Casper. Trong chuỗi đèn hiệu, có 1024 phân đoạn và mỗi phân đoạn có thể xử lý dữ liệu một cách độc lập.

Mô tả hình ảnh

Hình 1 Kiến trúc của Ethereum 2.0

Như có thể thấy trong Hình 1, Ethereum 2.0 và Ethereum 1.0 sẽ là hai chuỗi, sau khi phân đoạn 2.0 được thực hiện, 1.0 sẽ tiếp tục hoạt động như một phân đoạn của Ethereum 2.0. Trong bài viết trước, chúng tôi đã giới thiệu rằng bạn có thể trở thành Người xác thực để tham gia vào sự đồng thuận của PoS bằng cách thế chấp cổ phần. vấn đề quan trọng cần giải quyết.

Để trở thành Trình xác thực, trước tiên người dùng phải gửi giao dịch đến một hợp đồng đặc biệt trong Ethereum 1.0 để thế chấp một lượng ETH nhất định (giá trị tối thiểu hiện tại là 32ETH), sau đó người dùng sẽ nhận được bằng chứng về giao dịch. Bằng cách hiển thị bằng chứng này cho Ethereum 2.0, người dùng sẽ trở thành Trình xác thực sau khi quá trình xác minh được thông qua, như trong Hình 2:

Mô tả hình ảnh

Hình 2 Thế chấp ETH trong Ethereum 1.0 để trở thành quy trình Trình xác thực trong Ethereum 2.0Để xác minh tính chính xác của giao dịch thế chấp của người dùng, Ethereum 2.0 cần lưu thông tin khối trong Ethereum 1.0 hiện tại và hàm băm gốc của Merkle bao gồm tất cả các giao dịch hiện tại trong hợp đồng thế chấpBằng chứng về cây Merkle hoàn chỉnh có thể xác minh tính hợp pháp của giao dịch tiền tệ. Người dùng đã xác minh trở thành Trình xác thực trong Ethereum 2.0.

tiêu đề phụ

Quy trình tạo khối của Capser trong Ethereum 2.0

  • Trong bài viết trước, chúng tôi đã giới thiệu Casper để tạo khối thông qua PoW và sử dụng PoS để hoàn thiện các khối. Do đó, một vấn đề cần được giải quyết đối với Casper PoS thuần túy là cách tạo khối. Trước khi chính thức giới thiệu quy trình giao thức, chúng ta hãy làm rõ một vài định nghĩa:

  • Bộ sưu tập Trình xác thực: V = V1 ... Vn, giả sử mỗi Trình xác thực có cùng một cổ phần;

  • khe: đơn vị thời gian cơ bản, hiện được đặt thành 6 giây;

  • Kỷ nguyên: 64 vị trí tạo thành một kỷ nguyên;

Sau khi làm rõ định nghĩa trên, hãy mô tả thêm quy trình tạo khối Capser trong Ethereum 2.0, như trong Hình 3.

Mô tả hình ảnh

Hình 3 Quy trình đồng thuận Casper trong Ethereum 2.0

1. Vào đầu mỗi kỷ nguyên, một số ngẫu nhiên được tạo bởi một trình tạo số ngẫu nhiên và bộ Trình xác thực V được chia trung bình thành 64 phần để thu được S1, S2, ..., S64.

2. Trong một kỷ nguyên, mỗi vị trí i chọn một Trình xác thực trong Si để gửi khối ứng viên theo số ngẫu nhiên được tạo ở bước 1 và ghi trình xác thực gửi khối ứng viên vào vị trí i dưới dạng người đề xuất_i và khối ứng viên đã gửi Viết B_i .

3. Đối với mỗi vị trí i, những Người xác thực còn lại trong Si ngoại trừ người đề xuất_i bỏ phiếu cho B_i và phiếu bầu được viết dưới dạng chứng thực.5. Đối với mỗi vị trí i, sau khi nhận được khối (B_i) của vị trí i hoặc đợi trong 3 giây, Người xác thực còn lại trong Si ngoại trừ người đề xuất_i xuất bản phần đầu của chuỗi hiện tại trong chế độ xem của anh ta.

LMD GHOST(Lastest Message Driven GHOST)

tiêu đề phụ

Trước khi giới thiệu thuật toán lựa chọn chuỗi tối ưu mới này, chúng ta hãy nhớ lại thuật toán lựa chọn chuỗi tối ưu của Ethereum 1.0 - GHOST. Ý tưởng chính của thuật toán GHOST là đối với một chuỗi khối, nhiều nhánh sẽ được tạo ra do thời gian trễ và sự tồn tại của các nút độc hại. Khi tìm thấy một nhánh, tổng độ khó tối đa của cây con được chọn làm chuỗi tối ưu , như thể hiện trong Hình 4:

Mô tả hình ảnh

Hình 4 Giao thức GHOST

Không có vấn đề gì với giao thức GHOST trong giao thức PoW, nhưng giao thức PoS đương nhiên bị ảnh hưởng bởi cuộc tấn công Lang Range, tức là kẻ tấn công có thể sử dụng một lượng tiền nhỏ để mua một tài khoản đã từng có một lượng lớn cổ phần nhưng hiện tại trống rỗng, quay lại quá khứ và thực hiện giao dịch ở vị trí trước đó, ngã ba tạo ra một số lượng lớn các khối bất hợp pháp và giao thức GHOST sẽ không thể đảm bảo tính bảo mật của hệ thống. Như thể hiện trong Hình 5:

Mô tả hình ảnh

Hình 5: Dãy Láng

Kẻ tấn công tạo ra một khối màu vàng ở vị trí cũ, tổng độ khó của cây con B là 10 và khối màu tím sẽ trở thành điểm trên chuỗi tối ưu. Mặc dù mã thông báo cần phải được thế chấp trước khi bỏ phiếu, nhưng sau khi mua lại mã thông báo của chính họ, những kẻ tấn công có thể hành động liều lĩnh trong kỷ nguyên xác thực mà không lo mã thông báo sẽ bị tịch thu.

Do đó, để giải quyết vấn đề này, Ethereum 2.0 đã thiết kế một thuật toán mới - LMD GHOST (GHOST điều khiển thông báo mới nhất). Ý tưởng chính của LMD GHOST là, đối với một chuỗi có ngã ba, khi gặp điểm ngã ba trong quá trình tìm phần đầu của chuỗi, hãy chọn cây con hỗ trợ nhiều Trình xác thực hơn trong kỷ nguyên hiện tại. Quá trình chính của thỏa thuận là:

Đối với một chuỗi với một ngã ba:

    2、M=[M1,…,1. H bằng khối tạo;

Mn] là tin tức mới nhất từ ​​Trình xác thực;

3. Chọn nút con có nhiều hỗ trợ nhất trong M và đặt nó thành H;

4. Lặp lại các bước (2-3) cho đến khi không còn nút con nào;

Cho đến nay, chúng tôi đã giới thiệu cách Casper trong Ethereum 2.0 tạo ra các khối và phần tiếp theo là cách hoàn thiện các khối ứng cử viên.

tiêu đề phụ

xác nhận khối

Trong bài viết trước, chúng tôi đã giải thích về các điểm kiểm tra đã được chứng minh và đã hoàn thiện, cũng như các nút trước khi điểm kiểm tra đã hoàn thiện cuối cùng được xác nhận. Tóm lại, Casper trong Ethereum 2.0 coi mỗi kỷ nguyên là một điểm kiểm tra và phiếu chứng thực trên điểm kiểm tra để xác định trạng thái hợp lý và hoàn thiện của điểm kiểm tra. Logic cốt lõi của việc xác định hợp lý và hoàn thiện tương tự như mô tả ở trên. Tiếp theo, hãy giải thích cách khối đi vào trạng thái hợp lý và hoàn thiện.

Làm thế nào để biện minh cho khốiBây giờ, Casper chia một kỷ nguyên thành 64 vị trí. Vị trí cuối cùng được gọi là epoch_boundary_slot và hàm băm của nó được viết là epoch_boundary_hash để đại diện cho một kỷ nguyên và một kỷ nguyên được coi là một điểm kiểm tra. Hãy để chuỗi duy trì một bản đồ, chúng tôi gọi nó là justified_hashes, định dạng lưu trữ là

. Thêm hai trường epoch_boundary_hash (hàm băm của khối có vị trí nhỏ nhất trong kỷ nguyên trước) và latest_justified_hash (hàm băm của khối mới nhất trong kỷ nguyên justified_hash được tham chiếu bởi epoch_boundary_hash) vào chứng thực của Trình xác thực, chỉ khi latest_justified_hash trong chứng thực bằng với vị trí trong justified_hashes Chỉ với hàm băm mới nhất, chứng thực này mới hợp pháp.Chuỗi theo dõi hàm băm hợp lý mới nhất, do đó, việc chọn cùng một epoch_boundary_hash sẽ bỏ phiếu cho cùng một giá trị mới nhất. Bây giờ hãy xem trạng thái chuyển đổi như thế nào trong một ranh giới kỷ nguyên. Giả sử đối với một chuỗi, epoch_boundary_block B1, B2, B3, B4 của 4 epoch gần nhất, trong đó B4 là epoch_boundary_block mới nhất của epoch và các vị trí của chúng được viết là B1_slot, B2_slot, B3_slot, B4_slot, B3_slot = B4_slot - 64, vân vân. Nếu hơn 2/3 Người xác thực chọn B4 làm epoch_boundary_block, thì hãy đặt

Đã thêm justified_hashes.

Điều kiện để một epoch_boundary_block trở nên hợp lý là hơn 2/3 Người xác thực trỏ đến khối trong epoch_boundary_hash chứng thực của họ, khi một khối được bao gồm trong justified_hashes, khối đó được hợp lý và trạng thái chứng minh rằng khối đó đã được chứng minh hợp lý được ghi lại trong chuỗi cấp trên.

Làm thế nào để hoàn thành một khối

Sau khi xác nhận trạng thái hợp lý, bước tiếp theo là xác định cách làm cho khối chuyển sang trạng thái hoàn thiện.

Nếu B4 và B3 nằm trong justified_hashes, chứng thực đã bình chọn cho B4 là epoch_boundary_block sẽ chọn B3 là latest_justified_hash và hoàn thiện B3.

Nếu B4, B3 và B2 nằm trong justified_hashes, hãy bỏ phiếu cho B4 là chứng thực của epoch_boundary_block, chọn B2 là latest_justified_hash và hoàn thiện B2.

Nếu B3, B2 và B1 nằm trong justified_hashes, hãy bỏ phiếu cho B3 là chứng thực của epoch_boundary_block, chọn B1 là latest_justified_hash và hoàn thiện B1., bạn có thể coi epoch_boundary_block là h(t) và latest_justified_hash là h(s), điều này giúp dễ hiểu quy trình xác nhận của khối hơn.

tiêu đề phụ

những điều nhỏ nhặt khác

Để Casper vận hành hoàn chỉnh, vẫn còn một số việc nhỏ cần giải quyết, vì không gian tương đối ngắn nên chúng ta hãy tổng hợp lại.

điều kiện phạt

Để chống lại các cuộc tấn công lưu ý, người dùng thế chấp mã thông báo để trở thành Người xác thực cho PoS. Khi Người xác thực hoạt động bất hợp pháp, mã thông báo đã thế chấp của họ sẽ bị tịch thu để ngăn chặn những kẻ xấu làm điều ác. Các điều kiện phạt của người xác thực là:

1. Cùng một Trình xác thực không thể đưa ra hai chứng thực khác nhau trong cùng một thời điểm. 2. Cùng một Trình xác thực không thể đưa ra hai chứng thực, epoch_boundary_blocks của chúng lần lượt là t1 và t2, latest_justified_hash là s1 và s2 và s1

Điều kiện phạt này giống với điều kiện phạt ở bài viết trước.

Điều kiện thay thế trình xác nhận

triều đại (B) cho biết số lượng kỷ nguyên đã hoàn thành từ khối B đến khối genesis. Trình xác nhận 1/64 có thể được thay thế giữa hai triều đại.

Điều kiện lựa chọn ngã ba

Bắt đầu từ khối hoàn thiện mới nhất, thực hiện LMD GHOST.

PoS
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký:
https://t.me/Odaily_News
Nhóm trò chuyện:
https://t.me/Odaily_GoldenApe
Tài khoản chính thức:
https://twitter.com/OdailyChina
Mục lục bài viết
Thư viện tác giả
Fractal
Tải ứng dụng Odaily Nhật Báo Hành Tinh
Hãy để một số người hiểu Web3.0 trước
IOS
Android