Tác giả: Giáo sư Wang Yongge, một nhà mật mã học nổi tiếng người Trung Quốc, giáo sư chính thức của Khoa Khoa học Máy tính tại Đại học Bắc Carolina ở Charlotte (UNC, Charlotte), và bằng tiến sĩ của Đại học Heidelberg ở Đức.
Hôm nay chúng ta sẽ thảo luận về các vấn đề bảo mật của Casper FFG, giao thức Ethereum Byzantine. Phân tích của chúng tôi dựa trên giao thức Casper FFG từ bài viết sau:
● V. Buterin và V. Griffith. Casper tiện ích cuối cùng thân thiện. arXiv in trước arXiv:1710.09437v4, 2019. https://arxiv.org/pdf/1710.09437.pdf
Giao thức Byzantine truyền thống chủ yếu được sử dụng trong các môi trường SMR sao chép máy trạng thái. Môi trường của blockchain khác với môi trường của một máy trạng thái được sao chép. Do đó, chúng ta có thể thiết kế một thỏa thuận Byzantine tương đối đơn giản cho chuỗi khối. Buterin và Griffith trong bài viết trên đã cố gắng thiết kế một thỏa thuận Byzantine đơn giản hóa như một mặt dây chuyền nhỏ cho tính hữu hạn của khối. Đặc biệt, Buterin và Griffith đã thiết kế giao thức Byzantine Casper Tiện ích cuối cùng thân thiện (Casper FFG). Trong Casper FFG, các khối do hệ thống PoW tạo ra cần được xác nhận bằng phiếu bầu của một số người tham gia (người xác thực khối). Điều này ngăn chặn sự phân nhánh của blockchain. Để đơn giản hóa cuộc thảo luận của chúng tôi, chúng tôi giả sử rằng có n = 3t + 1 trình xác thực khối có trọng số bằng nhau trong hệ thống. Để giảm bớt khối lượng công việc xác minh, trước tiên chúng tôi xây dựng cây điểm kiểm tra. Các nút của cây điểm kiểm tra chỉ bao gồm các nút khối có chiều cao 100 ∗ k trên blockchain. Giả sử s và t là hai nút trên cây điểm kiểm tra và s là tổ tiên của t. Nếu trình xác thực khối Pi tin rằng các khối s đến t có thể được xác nhận, Pi sẽ phát một phiếu bầu có chữ ký ⟨Pi : s, t tới tất cả các trình xác thực. Đối với hai điểm kiểm tra a và b, nếu chúng ta nhận được 2t + 1 phiếu bầu ⟨P : s, t , thì chúng ta nói rằng a → b có liên kết siêu đa số. Nếu chúng ta có phần lớn tuyệt đối của chuỗi kết nối a0 → a1 → · · · → a bắt đầu từ nút gốc a0, thì chúng ta nói rằng điểm kiểm tra a là hợp lý. Nếu chúng ta có phần lớn tuyệt đối của chuỗi kết nối a0 → a1 → ··· → ai → a bắt đầu từ nút gốc a0 và a là con đẻ của ai, thì chúng ta nói rằng điểm kiểm tra a được xác nhận.
Đối với điểm kiểm tra s, chúng tôi sử dụng h(s) để biểu thị chiều cao của điểm kiểm tra s trên cây điểm kiểm tra. Trong Casper FFG, trình xác thực khối trung thực Pi không được xuất bản hai phiếu bầu khác nhau ⟨Pi : s1,t1 và ⟨Pi : s2,t2〉 thỏa mãn các điều kiện sau:
「h(t1) = h(t2)」hoặc 「h( s1) < h( s2) < h(t2) < h(t1)》
span>● Nếu người xác thực khối Pi bị phát hiện đã bỏ hai phiếu bầu đáp ứng các điều kiện trên, tiền gửi của anh ta sẽ bị mất. Buterin và Griffith đã chứng minh các tính chất sau của Casper FFG:
● Trong Casper FFG, không thể xác nhận đồng thời hai điểm kiểm tra xung đột. Vì vậy, chúng tôi đã đạt được bảo mật hệ thống
Nếu cơ chế xây dựng chuỗi khối cơ bản luôn có thể tạo ra các hậu duệ được xác nhận của các điểm kiểm tra, thì tuyệt đối phần lớn chuỗi kết nối luôn có thể được mở rộng để tạo ra các điểm kiểm tra mới được xác nhận. Nói cách khác, hệ thống có hoạt động hợp lý
Để đảm bảo hoạt động của hệ thống, Buterin và Griffith khuyến nghị blockchain cơ bản Cơ chế xây dựng sử dụng cơ chế phân nhánh "chính xác theo xây dựng": luôn mở rộng điểm kiểm tra hợp lý dài nhất.
Phân tích của Buterin và Griffith tin rằng nếu người dùng luôn đăng nhập vào hệ thống thường xuyên (chẳng hạn như ít nhất mỗi tháng một lần thì ) Bằng cách nhận các bản cập nhật hệ thống và không bao giờ quay trở lại khối đã được xác nhận, Casper FFG có thể ngăn chặn các cuộc tấn công sửa đổi tầm xa. Buterin và Griffith cũng đề xuất rằng nếu người xác thực khối không bỏ phiếu trong một thời gian dài, tiền gửi của anh ta sẽ dần bị mất. Điều này có thể ngăn chặn thảm kịch xảy ra sự cố máy (ví dụ: trình xác thực khối t+1 không thể bỏ phiếu do mạng bị phân mảnh). Trong khi Casper FFG có thể giải quyết nhiều vấn đề mà Ethereum gặp phải, Buterin và Griffith thừa nhận rằng các cuộc tấn công phân mảnh mạng vẫn là một vấn đề chưa được giải quyết.
Trong bài viết của Buterin và Griffith, các tác giả không thảo luận về mô hình mạng của họ. Trong các mạng đồng bộ, tính bảo mật của Casper FFG phải được đảm bảo. Nhưng trong các mạng không đồng bộ, một số tin nhắn có thể bị trễ cho đến sau GST và một số tin nhắn có thể bị mất. Do đó, các vấn đề bảo mật của Casper FFG trong mạng không đồng bộ cần được phân tích cẩn thận. Trong các đoạn sau, chúng tôi trình bày một số kịch bản mạng không đồng bộ. Trong những trường hợp này, Casper FFG có thể không hoạt động (nghĩa là Casper FFG cũng có thể ở trạng thái chết).
1. Giả sử tại thời điểm T, điểm kiểm tra a được xác nhận (có mối liên hệ từ a đến con đẻ của nó b kết nối đa số) và chưa có trình xác nhận khối nào bỏ phiếu cho điểm kiểm tra hậu duệ của b. Nếu một nút trung thực Pi bỏ phiếu ⟨Pi : b, c bị hệ thống mất và tất cả các nút không trung thực sẽ không bỏ phiếu cho con cháu của b. Sau đó, không có nút nào có thể nhận đủ phiếu bầu. Tình huống này tương tự như kịch bản sự cố được Casper FFG phân tích (nhưng hơi khác một chút).
2. Trong bài viết của mình, Buterin và Griffith đã không phân tích cẩn thận những gì cần thiết để đạt được các đặc tính hoạt động hợp lý của nó. điều kiện đã chuẩn bị sẵn. Buterin và Griffith chỉ nói rằng Casper FFG có thể được sử dụng trên hầu hết các chuỗi khối PoW. Tuy nhiên, nếu chúng ta không thêm các điều kiện đặc biệt vào cơ chế PoW, Casper FFG có thể rơi vào trạng thái gặp sự cố (do đó không đạt được hoạt động hợp lý). Giả sử tại thời điểm T, điểm kiểm tra a được xác nhận (có một kết nối đa số từ a đến con ruột b của nó) và chưa có người xác thực khối nào bỏ phiếu cho điểm kiểm tra con cháu của b. Bây giờ giả sử rằng cơ chế xây dựng chuỗi khối cơ bản bắt đầu từ khối b. Nói cách khác, b có hai điểm kiểm tra con cháu c và d. Nếu t+1 người xác thực khối trung thực bỏ phiếu cho c, thì t+1 người xác thực khối trung thực bỏ phiếu cho d và t người xác thực khối không trung thực bỏ phiếu ngẫu nhiên. Sau đó bắt đầu từ nút b, không có điểm kiểm tra nào có thể được xác nhận. Điều này dẫn đến trạng thái sụp đổ. Vì tất cả các trình xác thực khối đều đang bỏ phiếu nên cơ chế ngăn chặn sự cố do Buterin và Griffith đề xuất không giải quyết được vấn đề ở đây. Phân tích của chúng tôi chỉ ra rằng, về mặt lý thuyết, Casper FFG không thể ngăn chặn tình trạng đóng băng hệ thống. Tức là Casper FFG không hoạt động. Nhưng trên thực tế, nếu việc xây dựng cây nút kiểm tra dựa trên 100 nút cơ bản làm đơn vị và tốc độ tạo nút đủ chậm thì khả năng phát động cuộc tấn công trên là tương đối thấp (khả năng vẫn tồn tại).
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