Vitalik: Tại sao lại cố gắng đạt được sự hoàn thiện trong một vị trí duy nhất?
Tác giả: Vitallik Buterin
Đặc biệt cảm ơn Justin Drake, Dankrad Feist, Alex Obadia, Hasu và những người khác vì phản hồi và nhận xét của họ về các phiên bản khác nhau của bài đăng này.
Hiện tại, các khối Ethereum (beacon chain) cần 64-95 vị trí (khoảng 15 phút) để hoàn tất. Trên đường cong đánh đổi thời gian/chi phí phân cấp/hoàn tất, sẽ hợp lý khi chọn một sự đánh đổi có độ dài trung bình không tệ ở bất kỳ khía cạnh nào: 15 phút không quá dài, có thể so sánh với thời gian xác nhận hiện tại trao đổi và điều này Cho phép người dùng chạy các nút trên máy tính thông thường, ngay cả với một số lượng lớn người xác thực đã đặt cược 32 ETH (thay vì yêu cầu trước đó là 1500 ETH). Tuy nhiên, có nhiều lập luận tốt để giảm thời gian hoàn tất xuống một thời điểm duy nhất. Bài viết này là một bài nghiên cứu đánh giá một số chiến lược có thể để làm điều này.
01. Cách thức và lý do tại sao hoạt động đặt cược Ethereum hiện tại
Hiện tại, có khoảng 285.000 trình xác thực và những tài khoản này đã gửi 32 ETH để họ có thể tham gia đặt cược Ethereum. Số lượng người xác thực không tương ứng chính xác với số lượng người dùng (người đặt cược) thực sự tham gia đặt cược: một số người đặt cược giàu có có thể kiểm soát hàng trăm người xác thực. Yêu cầu cổ phần tối thiểu là 32 ETH giới hạn số lượng tài khoản trình xác thực có thể, đảm bảo rằng chuỗi Ethereum vẫn có khả năng tính toán để xử lý các tài khoản này.
Mỗi vị trí (12 giây) một khối mới được thêm vào chuỗi. Trong mỗi vị trí, cũng có hàng nghìn chứng thực (được gửi bởi người xác thực) được sử dụng để bỏ phiếu cho người đứng đầu chuỗi (chuỗi báo hiệu). Có một quy tắc lựa chọn ngã ba được gọi là LMD GHOST lấy các bằng chứng này làm đầu vào để xác định người đứng đầu chuỗi. Việc bỏ phiếu song song bằng hàng ngàn bằng chứng này làm cho Ethereum mạnh mẽ hơn nhiều so với các hệ thống chuỗi dài nhất truyền thống: ngăn chặn một cuộc tấn công đang hoạt động hoặc lỗi mạng lớn, thậm chí một vị trí duy nhất sẽ hầu như không khả dụng.
Những bằng chứng này cũng phục vụ mục đích thứ hai: chúng hoạt động như phiếu bầu trong thuật toán đồng thuận quy mô lớn có tên là Casper FFG. Mỗi kỷ nguyên (cứ sau 32 vị trí được gọi là một kỷ nguyên, khoảng 6,4 phút), tất cả những người xác minh đang hoạt động đều có cơ hội đưa ra bằng chứng. Sau hai vòng, nếu mọi việc suôn sẻ, kỷ nguyên trước đó (và tất cả các khối trong đó) sẽ được hoàn thành. Sau khi một khối được hoàn thành, việc đảo ngược khối đó sẽ yêu cầu ít nhất 1/3 số người xác thực phá hủy tiền gửi (cổ phần) của họ: chi phí của cuộc tấn công là hơn 3 triệu ETH.
Việc kiểm duyệt liên tục các trình xác nhận hoặc giao dịch cũng rất tốn kém, mặc dù khả năng chống lại các cuộc tấn công kiểm duyệt yêu cầu can thiệp giao thức bổ sung. Nếu 51% người xác nhận bắt đầu kiểm duyệt (người xác nhận hoặc giao dịch), nạn nhân và người dùng có thể điều phối một nhánh mềm thiểu số nơi họ xây dựng trên các khối của nhau và bỏ qua kẻ tấn công. Trên một số soft fork này, tiền gửi của kẻ tấn công sẽ mất hàng triệu ETH do rò rỉ không hoạt động và chuỗi sẽ tiếp tục hoàn tất sau vài tuần.
02. Tại sao phải cố gắng đạt được quyết toán trong một Khe duy nhất?
Cố gắng thay đổi hiện trạng và rút ngắn thời gian hoàn thiện xuống còn một Slot duy nhất.Có một số lý do chính cho việc này:
Kinh nghiệm người dùng.Hầu hết người dùng không muốn đợi 15 phút để hoàn tất. Ngày nay, ngay cả các sàn giao dịch cũng thường thấy tiền gửi của người dùng được "hoàn tất" chỉ sau 12-20 xác nhận (khoảng 3-5 phút), mặc dù (so với hoàn thiện PoS thực sự), điều này mang lại 12-20 xác nhận PoW kém an toàn hơn. Việc hoàn thiện một khe cắm duy nhất sẽ đáp ứng tốc độ mà người dùng ngày càng quen thuộc, đồng thời mang lại mức độ bảo mật rất cao.
Chống tái tổ hợp MEV.bài viết nàybài viết này, để trình bày chi tiết hơn về lập luận này.
Cơ hội để giảm độ phức tạp của giao thức và lỗi.tiêu đề phụ
Ý tưởng 1: Hiện thực hóa việc hoàn thiện một vị trí thông qua "Siêu ủy ban"
Thay vì tất cả những người xác thực tham gia vào mỗi vòng đồng thuận của Casper FFG, chỉ có một siêu ủy ban cỡ trung bình (một siêu ủy ban cỡ trung bình) bao gồm vài nghìn người xác nhận tham gia, cho phép mỗi vòng đồng thuận diễn ra trong một Khe duy nhất. Ý tưởng kỹ thuật có liên quan là đầu tiên trong bài viết nàybài đăng etheresear.chđược giới thiệu trong .
Bài đăng này đi vào chi tiết hơn về ý tưởng, nhưng các nguyên tắc cốt lõi như sau:
Thay vì chạy sự đồng thuận BFT (Byzantine Fault Tolerant) mỗi kỷ nguyên, nó sẽ chạy mọi vị trí. Điều này có nghĩa là sau khi một giao dịch được đưa vào một khối, sau một vị trí, chi phí đảo ngược giao dịch sẽ là hàng nghìn ETH.
Chúng tôi không dựa vào tất cả các trình xác nhận đang hoạt động để hoàn tất một vị trí. Thay vào đó, chúng tôi dựa vào một "siêu ủy ban" được chọn ngẫu nhiên gồm vài nghìn người xác thực để hoàn thiện các vị trí riêng lẻ.
Mô tả hình ảnh

tiêu đề phụ
Lợi ích phụ khi chuyển sang “siêu ủy ban”
Chuyển từ trình xác nhận toàn cầu sang siêu ủy ban cũng có một số lợi ích khuyến khích:
Tải tính toán để chạy các nút trình xác thực đã trở nên ổn định hơn.Các yêu cầu tính toán khi chạy nút trình xác thực không còn cần phải tỷ lệ thuận với tổng số trình xác thực, buộc trình xác thực phải có một cỗ máy mạnh mẽ để đối phó với sự gia tăng lớn về số lượng trình xác thực, nhưng để làm cho tải tính toán khi chạy nút nút trình xác thực ổn định hơn để người dùng xác minh biết chính xác nhu cầu điện toán mà họ cần.
Hầu hết thời gian, người xác thực có thể rút tiền ngay lập tức.tiêu đề phụ
Siêu ủy ban phải lớn đến mức nào?
Siêu ủy ban phải "đủ lớn để trở thành một ủy ban an toàn" về số lượng người xác nhận. Nhưng ủy ban cũng phải đủ lớn về tổng số ETH (tức là tổng số cổ phần của tất cả những người xác thực trong ủy ban). Lượng ETH bị cắt giảm và phá hoại cần phải lớn hơn những gì thực sự có thể thu được từ cuộc tấn công và nó cần phải đủ lớn để ngăn chặn hoặc phá sản một kẻ tấn công mạnh mẽ có động cơ bên ngoài rất lớn để phá vỡ chuỗi.
Câu hỏi cần bao nhiêu ETH chắc chắn là vấn đề trực giác. Dưới đây là một số câu hỏi bạn có thể hỏi để hướng dẫn trực giác của mình:
Giả sử chuỗi Ethereum bị tấn công 51%, sẽ mất vài ngày để cộng đồng phối hợp tổ chức một sự kiện quản trị ngoài chuỗi để phục hồi, nhưng X % ETH sẽ bị phá hủy. X này cần lớn đến mức nào để có lợi ích ròng cho hệ sinh thái Ethereum?
Giả sử một sàn giao dịch lớn đã bị đánh cắp hàng triệu ETH và kẻ tấn công đã đặt cọc số tiền thu được và chiếm được hơn 51% số lượng trình xác thực. Vậy trình xác thực có thể thực hiện bao nhiêu cuộc tấn công 51% trên chuỗi khối trước khi tất cả số tiền bị đánh cắp bị hủy (chém)?
Giả sử kẻ tấn công 51% bắt đầu tổ chức lại chuỗi khối liên tục trong một khoảng thời gian rất ngắn để nắm bắt tất cả MEV. Mức chi phí mỗi giây nào chúng ta muốn kẻ tấn công đạt được?
Mô tả hình ảnh

Trên: Kết quả khảo sát nội bộ của các nhà nghiên cứu Ethereum về "Bạn nghĩ chi phí thấp nhất để tấn công Ethereum là bao nhiêu?"
Nếu chúng tôi chỉ tập trung vào các cuộc tấn công 51% không phụ thuộc vào độ trễ, thì chi phí tấn công 1 triệu ETH sẽ có nghĩa là quy mô "siêu ủy ban" là 2 triệu ETH (khoảng 65.536 trình xác nhận), nếu chúng tôi cũng liên quan đến 34% độc hại phức tạp A kết hợp cuộc tấn công vào trình xác nhận và thao túng mạng sẽ dẫn đến quy mô siêu ủy ban là 3 triệu ETH (khoảng 97.152 trình xác nhận). Nhưng nếu chúng tôi muốn tải trên chuỗi Ethereum duy trì ở mức hiện tại (khoảng 9.000 trình xác thực trên mỗi vị trí hoặc khoảng 288.000 ETH), điều này tương ứng với chi phí tấn công từ 96.000 đến 144.000 ETH. Vẫn còn một khoảng cách lớn giữa hai con số.
tiêu đề phụ
Ý tưởng 2: Cố gắng để càng nhiều người chứng thực hoạt động càng tốt
Giả sử chúng ta thực sự muốn có một chuỗi khối với số lượng lớn trình xác thực tham gia vào mỗi vị trí (giả sử, 131.072 trình xác thực trên mỗi vị trí, tương đương với 4 triệu ETH vừa phải). Vì vậy, những con số hiệu suất sẽ như thế nào trên cơ sở đó?
Hóa ra việc có một số lượng lớn trình xác thực để chứng minh rằng chi phí trên chuỗi trên mỗi vị trí không cao như vẻ ngoài của nó:
Không gian trạng thái cần thiết để lưu trữ các bản ghi trình xác thực sẽ giống hệt như ngày nay (khoảng 150 byte cho mỗi trình xác thực).
Việc xác minh chữ ký sẽ yêu cầu cộng một tập hợp con ngẫu nhiên gồm 131.072 khóa công khai. Mỗi lần bổ sung đường cong elip có thể được thực hiện trong khoảng 1 micro giây, do đó, điều này có thể được thực hiện trong khoảng 130 mili giây. Mỗi vị trí cần được thực hiện hai lần (có thể nhiều hơn nếu một khối chứa các bằng chứng dư thừa).
Chi phí bổ sung trên chuỗi có thể được tối ưu hóa hơn nữa nếu chúng ta giả định rằng một trình xác thực hoạt động ở vị trí N cũng thường hoạt động ở vị trí N+1; điều này có nghĩa là đối với mỗi vị trí, chúng ta chỉ cần tính toán Biến (delta), dưới điều kiện tốt điều kiện, khóa công khai tổng hợp có thể bao gồm hàng nghìn hoặc thậm chí hàng trăm khóa công khai của trình xác thực. Bạn phải luôn có thể thực hiện tối ưu hóa ít nhất 2 lần (tức là ~65 mili giây) ngay cả trong trường hợp xấu nhất.
Vấn đề lớn nhất còn lại làtổng hợp chữ ký. Có 131.072 trình xác minh tạo và gửi chữ ký trong một Khe duy nhất và những chữ ký này cần được kết hợp nhanh chóng thành một chữ ký tổng hợp lớn.
Ngày nay, việc tổng hợp chữ ký được thực hiện trong các mạng con p2p. Mỗi ủy ban gồm 256 người xác thực có mạng con tập hợp chữ ký riêng. Có 16 bộ tổng hợp đặc quyền được chọn ngẫu nhiên có thể tổng hợp chữ ký và gửi chúng tới mạng con chính. Sau đó, người đề xuất khối lấy tổng hợp chữ ký tốt nhất từ mỗi ủy ban và cộng chúng lại với nhau để tạo thành một tổng hợp chữ ký lớn. Như hình dưới đây:

Điều này đặt một gánh nặng lên từng tiểu ban, trong đó những người xác thực cần xác minh các chữ ký riêng lẻ, đặc biệt là trong trường hợp có một cuộc tấn công làm ngập mạng với các chữ ký không hợp lệ và trong một mạng con toàn cầu, nếu có n ủy ban, thì 16*n chữ ký của người đề xuất phải được xác minh.
Tập hợp có thể là mục tiêu tối ưu hóa đáng kể trong hai năm tới. Hiện tại, nút cổ chai lớn nhất trong các ứng dụng thực tế là tải của mỗi mạng con, đặc biệt là đối với các nút cần nằm trong nhiều mạng con.
Những cải tiến đáng kể có thể đạt được bằng hai phương pháp đơn giản đầy hứa hẹn:
Tăng số lượng mạng con, để cho phép tổng số chứng thực nhiều hơn mà không làm tăng tải trên mỗi mạng con. Tải trọng trên mạng con chính sẽ tăng lên, nhưng điều này có thể được bù đắp bằng cách nhúng chìm, cho phép tất cả các trình xác minh trong một vị trí ký cùng một dữ liệu, nâng cao hiệu quả và giúp các chữ ký này dễ dàng xác minh theo đợt hơn.
Thay đổi quy tắc mạng để ngay cả các nút có nhiều trình xác thực cũng chỉ cần tham gia vào một mạng contiêu đề phụ
Một trình tổng hợp chuyên biệt hơn
Một chiến lược tích cực hơn khả thi để hỗ trợ nhiều trình xác thực hơn là biến việc tổng hợp chữ ký thành một vai trò chuyên biệt hơn (tương tự nhưBlock Builders trong PBS (Proposer/Builder Split) Scheme), với vai trò này, chúng tôi mong đợi các tác nhân chuyên nghiệp sẽ có mặt liên tục trong mỗi mạng con (hoặc thậm chí tất cả các mạng con) và có thể thu thập chữ ký tốt. Những người tham gia này có thể được trả tiền hoặc đóng vai trò tự nguyện (vì chi phí bổ sung này rất thấp đối với những người dùng đã đặt cược cho nhiều người xác thực).
Một giao thức đơn giản cho tình huống này là cho phép người xác minh ký một thông báo Đề xuất Tổng hợp có chứa (i) chữ ký tổng hợp, (ii) trường bit của người tham gia (16 kB giả sử có 131.072 người xác minh) và (iii) chữ ký của Người tổng hợp trên hai đối tượng này.
tiêu đề cấp đầu tiên
03. Làm thế nào để chúng tôi đạt được quyết toán trong một Khe duy nhất?
Chuyển sang xác nhận một vị trí là một lộ trình nhiều năm; ngay cả khi rất nhiều công việc phát triển bắt đầu sớm, thì đó sẽ là sau khi Ethereum hoàn thành triển khai PoS, sharding và cây Verkle. Nói chung, đường dẫn thực hiện đại khái như sau:
Đẩy mạnh công việc tối ưu hóa tổng hợp bằng chứng.Bất chấp điều đó, đây là một câu hỏi quan trọng vì số lượng người xác nhận dự kiến sẽ tăng lên. Chúng ta cần nỗ lực nghiên cứu và phát triển tập trung hơn về vấn đề này.
Thống nhất về thông số chung:Chúng tôi đang hướng tới "siêu ủy ban" lớn đến mức nào (hay quy mô của siêu ủy ban sẽ là tập hợp của tất cả những người xác thực đang hoạt động và chúng tôi triển khai một số cơ chế khác nhau để kiểm soát số lượng người xác nhận đang hoạt động có thể có)? Chúng tôi có thể chấp nhận mức chi phí nào? Những kỹ thuật nào chúng ta sẽ sử dụng để giảm chi phí?
Để hoàn thiện một slot duy nhất, cần phải nghiên cứu, đạt được sự đồng thuận và làm rõ một cơ chế lựa chọn fork và sự đồng thuận lý tưởng.Điều này sẽ kết hợp cơ chế đồng thuận BFT (Casper FFG hoặc một cơ chế truyền thống khác) với quy tắc lựa chọn ngã ba trong đó quy tắc lựa chọn ngã ba chỉ có ý nghĩa nếu ≥1/3 số trình xác thực ngoại tuyến.
Đồng ý về một con đường để thực hiện và thực hiện.Điều này có thể yêu cầu triển khai nhiều bước, một trong số đó giới thiệu cơ chế siêu ủy ban, sau đó bổ sung cơ chế tổng hợp và đồng thuận mới trong bước tiếp theo.
Lợi ích cuối cùng của việc triển khai quyết toán trong một vị trí duy nhất sẽ rất đáng kể và công nghệ này có thể cải thiện theo thời gian để đạt được các lợi ích khác không được mô tả trong bài viết này (ví dụ: sử dụng số lượng trình xác thực tối đa tăng lên để giảm cổ phần ETH tối thiểu). Do đó, những thách thức kỹ thuật được mô tả trong bài viết này xứng đáng được nghiên cứu và phát triển sâu hơn và tập trung hơn để bắt đầu càng sớm càng tốt.


