EIP-2537 con đường dài: từ việc nâng cấp Berlin bị từ chối đến Pectra cuối cùng được chấp nhận

EIP-2537: Con đường dài của việc tính toán đường cong Ethereum

EIP-2537 là lệnh biên dịch EVM được xác định thêm trong bản nâng cấp phân nhánh Pectra gần đây. Lệnh này cung cấp nhiều chức năng tính toán cho đường cong BLS12-381 trong EVM, bao gồm cả tính toán cặp trên miền đường cong.

EIP-2573 được đề xuất lần đầu vào năm 2020, và chỉ được xác nhận sẽ được đưa vào nâng cấp Ethereum vào năm 2025. Bài viết này sẽ giới thiệu quá trình quản trị của EIP-2537, và khám phá lý do tại sao phải mất 5 năm để đề xuất này được đưa vào nâng cấp.

Bối cảnh đề xuất

Vào tháng 1 năm 2017, Vitalik Buterin lần đầu tiên giới thiệu thuật toán ghép đôi và đường cong alt_bn128. Sau đó, Vitalik và Christian Reitwiessner đã đề xuất EIP-196 và EIP-197, nhằm thêm hỗ trợ tính toán đường cong alt_bn128 cho EVM. Cải tiến Byzantium vào tháng 10 năm 2017 đã chính thức tích hợp đường cong alt_bn128, thực hiện tính toán ghép đôi trên miền đường cong bên trong EVM, cho phép xác minh chứng minh ZK-Snarks có thể được thực hiện trong EVM.

Tháng 11 năm 2017, đội ngũ zcash đã đề xuất đường cong BLS12-381, so với alt_bn128 có độ an toàn và hiệu suất cao hơn. Nhiều giao thức blockchain sau đó đã áp dụng đường cong BLS12-381, từ bỏ đường cong alt_bn128.

Vào tháng 5 năm 2018, Justin Drake chỉ ra rằng việc nâng cấp PoS và phân đoạn trong tương lai của Ethereum có thể sử dụng thuật toán BLS đa chữ ký dựa trên đường cong BLS12-381. Điều này đã khiến phương án EIP-1011 trước đó phải rút lui, và nâng cấp ETH2 sau này cuối cùng đã áp dụng đường cong BLS12-381.

Với sự phát triển của ETH2, tiếng nói đưa BLS12-381 vào lớp thực thi ETH ngày càng rõ ràng. Vào tháng 2 năm 2020, một số nhà nghiên cứu đã đề xuất EIP-2537, hy vọng sẽ thử nghiệm trên mạng thử nghiệm ETH2. Tác giả EIP-2537, Alex Stokes, kêu gọi đưa nó vào phân nhánh cứng Berlin.

Thú vị là, tác giả của EIP-2537 cũng là một trong những người sáng lập Matter Labs, sản phẩm nổi tiếng nhất của Matter Labs là ZKSync.

Ethereum Governance Observation: EIP-2537 Pre-Assembly Journey

Berlin hỗn loạn

Trước khi giới thiệu nội dung tiếp theo, cần phải đề cập đến EIP-1962. Đây là đề xuất biên dịch trước đầu tiên về cặp miền đường cong do Matter Labs đề xuất vào tháng 4 năm 2019, hỗ trợ ba đường cong BLS12, BN và MNT4/6. EIP này dự kiến sẽ tăng thêm 10 chỉ thị biên dịch trước một lần để xử lý các đường cong khác nhau. Tuy nhiên, nhiều nhà phát triển nghi ngờ rằng đề xuất này quá phức tạp và khó thực hiện, đồng thời không thuận tiện cho các kỹ sư hợp đồng thông minh. Là bên đề xuất, Matter Labs đã hoàn thành phát triển thuật toán đường cong và cung cấp các triển khai tham khảo đa ngôn ngữ.

Để giải quyết vấn đề EIP-1962, Matter Labs đã đề xuất nhiều EIP tách ra từ EIP-1962 vào tháng 2 năm 2020, một phần kế thừa giao diện của nó:

  • EIP-2537 cung cấp hỗ trợ BLS12-381
  • EIP-2539 cung cấp hỗ trợ BLS12-377
  • PR#2541 cung cấp hỗ trợ BLS12-377( Zexe curve ), nhưng chưa nhận được số EIP.

Trong đó EIP-2537 là quan trọng nhất, vì lớp đồng thuận cũng sử dụng đường cong BLS12-381. Mục đích cốt lõi của EIP-1962 và EIP-2537 đều là để thực hiện xác minh chữ ký BLS của lớp đồng thuận trên mạng chính. Khi đó ETH2 đang phát triển hợp đồng gửi tiền, do lớp thực thi thiếu thuật toán xác minh BLS, nên trong thiết kế ban đầu hợp đồng gửi tiền không xác minh chữ ký, mà để lớp đồng thuận xác minh, nếu phát hiện không chính xác có thể dẫn đến thua lỗ tài sản của người dùng.

Trong bối cảnh này, các nhà phát triển cốt lõi muốn giới thiệu BLS12-381 tiền biên soạn để xác minh chữ ký trong hợp đồng gửi, nhằm tránh việc có thể mất tiền của người dùng. Đây là lý do mà nhiều nhà phát triển khi đó quan tâm đến EIP-1962 và EIP-2537.

Khi EIP-2537 vừa được đề xuất, Vitalik đã chỉ ra rằng nó tồn tại một loạt vấn đề, chủ yếu tập trung vào nội dung tài liệu EIP. Sau đó, tác giả đã có phản hồi thảo luận. Tại cuộc họp các nhà phát triển cốt lõi vào ngày 6 tháng 3 năm 2020, Vitalik cho rằng EIP-2537 và các EIP khác rất hiệu quả đối với việc chứng minh SNARK đệ quy, về lâu dài sẽ không gây hại cho Ethereum. Cuộc họp đã xác nhận vị trí ưu tiên của EIP-2537, tất cả các khách hàng đồng ý thực hiện càng sớm càng tốt và lên kế hoạch hoàn thành phát triển trước khi nâng cấp Berlin.

Sau đó, EIP-2537 trở thành nhiệm vụ ưu tiên cao. Cuộc họp vào ngày 20 tháng 3 đã xác nhận EIP-2537 thay thế EIP-1962 trở thành đề xuất BLS cốt lõi và vào danh sách đề cử nâng cấp Berlin. Cuộc họp vào tháng 4 chính thức đưa EIP-2537 vào nâng cấp hard fork Berlin, xác định thời gian thực hiện vào tháng 4, thử nghiệm vào tháng 5-6, và đưa nó vào danh sách các vấn đề ưu tiên hàng đầu.

Tiếp theo EIP-2537 bước vào giai đoạn phát triển và thử nghiệm quy mô lớn, gần 20 cuộc họp các nhà phát triển cốt lõi sau đây đều liên quan đến các cuộc thảo luận. Nội dung chính bao gồm:

  • Thảo luận về vấn đề mã ABI
  • Đồng bộ tiến độ thực hiện của các khách hàng.
  • Việc thực hiện PR của Geth có 16000 dòng mã, khó xác định tính an toàn và hiệu quả.
  • Các nhà phát triển cho biết Geth khó hoàn thành phát triển EIP-2537 trước tháng 7
  • Đề nghị tìm kiếm kỹ sư mật mã để hỗ trợ xem xét PR, sử dụng mạng thử nghiệm để kiểm tra tính an toàn.
  • Thảo luận về việc loại bỏ tối ưu hóa lắp ráp phức tạp để giảm độ khó của việc kiểm tra
  • Nhà phát triển hợp đồng gửi tiền cho biết phiên bản không sử dụng EIP-2537 đã được kiểm toán xong, xem xét không còn phát hành phiên bản sử dụng EIP-2537 nữa.
  • Quyết định tăng cường kiểm tra mạng thử nghiệm YOLO cho EIP-2537

Từ đó có thể thấy, tầm quan trọng của EIP-2537 đã giảm đáng kể khi hợp đồng gửi tiền đã hoàn thành, và các nhà phát triển Geth cho rằng khó có thể thực hiện trước Berlin. Việc EIP-2537 không được Berlin chấp nhận có vẻ như đã thành định mệnh.

Các vấn đề khác xuất hiện trong các cuộc họp tiếp theo:

  • Geth phát hiện vấn đề trong việc thực hiện PR của EIP-2537, cần thử nghiệm sửa chữa thêm.
  • Mạng thử nghiệm YOLO gặp sự cố, nghi ngờ có liên quan đến chữ ký BLS
  • Thảo luận về vấn đề đa dạng hóa khách hàng, xem xét việc đóng băng việc thực hiện EIP hiện tại để giảm chi phí phát triển của các khách hàng khác.
  • Matter Labs hy vọng sẽ đưa EIP-2539 vào thử nghiệm, nhưng bị các nhà phát triển Geth phản đối.

Cuối cùng, tại cuộc họp các nhà phát triển lõi lần thứ 99, quyết định đưa EIP-2537 ra khỏi mạng thử nghiệm YOLO v3 và bản nâng cấp Berlin. Nguyên nhân chính là EIP-2537 đã tiêu tốn quá nhiều thời gian của các nhà phát triển lõi, dẫn đến sự cản trở trong việc phát triển các EIP khác. Yếu tố thứ hai là Quỹ Ethereum đã đề xuất EVM384 như một giải pháp thay thế.

Tháng 4 năm 2021, Ethereum đã hoàn thành nâng cấp Berlin, các tính năng cốt lõi như EIP-2565 không quá phức tạp, nâng cấp có phần mỏng manh, điều này là do EIP-2537 phức tạp nhất đã bị loại bỏ.

Quan sát quản trị Ethereum: Quá trình tiền biên dịch EIP-2537

Phát triển tiếp theo

Trong quá trình nâng cấp London sau Berlin, các nhà phát triển đã từng xem xét việc thêm EIP-2537, nhưng do việc thay đổi thư viện phụ thuộc có thể dẫn đến sự thay đổi giá gas, cuối cùng vì độ phức tạp mà nó lại bị từ bỏ một lần nữa.

Vào tháng 6 năm 2021, đã chính thức đề xuất đưa EIP-2537 vào nâng cấp Shanghai. Tuy nhiên, nâng cấp Merge đã chiếm nhiều thời gian của các nhà phát triển. Sau khi hoàn thành Merge vào tháng 9 năm 2022, các nhà phát triển mới có cơ hội tiếp tục thảo luận về mục tiêu của Shanghai.

Vào tháng 11 năm 2022, các nhà phát triển cho rằng EIP-2537 cần phải hoãn lại, nâng cấp Shanghai chủ yếu hỗ trợ việc rút PoS. Nâng cấp Cancun cũng không thảo luận về EIP-2537 do tập trung vào EIP-4844.

Đến tháng 2 năm 2024, các nhà phát triển mới thảo luận về việc tích hợp EIP-2537 vào bản nâng cấp Pectra, cho rằng việc thực hiện không còn là vấn đề, chỉ còn tồn tại một số vấn đề về định giá tiêu thụ gas. Từ tháng 12 năm 2024 đến tháng 1 năm 2025, các nhà phát triển thảo luận về mô hình tính toán chi phí cụ thể, cuối cùng giải quyết vấn đề chi phí của EIP-2537.

Quan sát quản trị Ethereum: Quá trình tiền biên dịch EIP-2537

Tóm tắt

EIP-2537 được đề xuất từ tháng 2 năm 2020 và cuối cùng được xác định vào tháng 1 năm 2025, trải qua gần 5 năm. Trong thời gian này, nó đã bị hoãn nhiều lần do độ phức tạp trong việc thực hiện hoặc không phù hợp với chủ đề nâng cấp. Điều này cho thấy liệu EIP có thể được đưa vào nâng cấp Ethereum hay không, không chỉ phụ thuộc vào giá trị của nó mà còn cần xem xét các yếu tố lịch sử. Mỗi lần nâng cấp Ethereum đều có chủ đề riêng, EIP-2537 mặc dù từng là EIP quan trọng nhất trong nâng cấp Berlin, nhưng đã bị loại bỏ do độ khó. Sau đó, Ethereum bước vào quá trình lịch sử PoS, các EIP chỉ thực hiện không được coi trọng, dẫn đến việc EIP-2537 lâu dài không được chấp nhận.

Ethereum Governance Observation: EIP-2537 Pre-Assembly Process

ETH-0.14%
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • 7
  • Đăng lại
  • Chia sẻ
Bình luận
0/400
BakedCatFanboyvip
· 08-09 07:22
Đã chờ đợi tám năm cuối cùng cũng đến rồi
Xem bản gốcTrả lời0
rugpull_ptsdvip
· 08-06 22:13
Năm năm mới lên chuỗi, thật sự có thể chờ đợi sao?
Xem bản gốcTrả lời0
MetaverseHermitvip
· 08-06 08:26
Năm năm mới hoàn thành một bản nâng cấp, thật là chậm chạp.
Xem bản gốcTrả lời0
CoconutWaterBoyvip
· 08-06 08:25
Năm năm mới nâng cấp, thật sự rất ổn định.
Xem bản gốcTrả lời0
SignatureVerifiervip
· 08-06 08:24
về mặt kỹ thuật, impl bls này cần được kiểm tra bảo mật nghiêm túc, chúng tôi đã thấy những precompiles chưa hoàn thiện này trước đây...
Xem bản gốcTrả lời0
MEVHunterXvip
· 08-06 08:14
Đề xuất này cũng chậm chạp quá.
Xem bản gốcTrả lời0
TrustMeBrovip
· 08-06 08:14
5 năm... Có vẻ như việc nâng cấp này thật không dễ dàng.
Xem bản gốcTrả lời0
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)