EIP-2537: Trải qua 5 năm từ tranh cãi đến việc được chấp nhận là một nâng cấp quan trọng của Ethereum

EIP-2537: Con đường dài từ tranh cãi đến chấp nhận

EIP-2537 là chỉ thị biên dịch EVM được xác định thêm trong nâng cấp phân nhánh Pectra mới nhất của Ethereum. Chỉ thị này bổ sung nhiều chức năng tính toán của đường cong BLS12-381 cho EVM, chẳng hạn như tính toán ghép trên miền đường cong.

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

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 trong một bài viết. Sau đó, Vitalik và Christian Reitwiessner đã đề xuất EIP-196 và EIP-197, khuyến nghị bổ sung hỗ trợ tính toán đường cong alt_bn128 vào EVM.

Bản nâng cấp Byzantine vào tháng 10 năm 2017 đã chính thức giới thiệu đường cong alt_bn128, cho phép tính toán cặp miền đường cong bên trong EVM, giúp việc xác minh chứng minh ZK-Snarks có thể thực hiện trong EVM.

Tuy nhiên, với sự phát triển của mật mã, vào tháng 11 năm 2017, nhóm phát triển zcash đã đề xuất đường cong BLS12-381. So với alt_bn128, BLS12-381 có độ an toàn cao hơn và hiệu suất tốt hơn. Nhiều giao thức blockchain sau đó đã áp dụng đường cong BLS12-381, từ bỏ alt_bn128.

Vào tháng 5 năm 2018, Justin Drake đã công bố một bài viết 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 ký đa BLS dựa trên đường cong BLS12-381. Giải pháp này đã giải quyết vấn đề số lượng người xác thực bị giới hạn trong các kế hoạch PoS ban đầu. Thực tế chứng minh rằng nâng cấp ETH2 sau này thực sự đã áp dụng đường cong BLS12-381.

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

Cần lưu ý rằng tác giả của EIP-2537 cũng là đồng sáng lập của công ty phát triển ZKSync, Matter Labs.

Những rắc rối trong việc nâng cấp Berlin

Trước khi giới thiệu các tiến triển tiếp theo, chúng ta cần hiểu về EIP-1962. Đây là đề xuất đầu tiên về việc biên dịch trước cho các cặp miền đường cong mà Matter Labs đưa ra vào tháng 4 năm 2019, hỗ trợ ba đường cong BLS12, BN và MNT4/6.

Kế hoạch EIP-1962 sẽ tăng thêm 10 chỉ thị biên dịch một lần để xử lý các đường cong khác nhau. Tuy nhiên, đề xuất này đã bị nhiều nhà phát triển đặt câu hỏi, cho rằng nó quá phức tạp và khó thực hiện. Đồng thời, do tính tổng quát cao, việc gọi nó cũng rất phiền phức đối với các kỹ sư hợp đồng thông minh. Tuy nhiên, với tư cách là bên đề xuất, Matter Labs đã hoàn thành công việc phát triển thuật toán đường cong ellip và cung cấp nhiều triển khai tham khảo bằng nhiều ngôn ngữ.

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

  • 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ợ cho đường cong BLS12-377(Zexe ), nhưng đề xuất này cuối cùng không được cấp số EIP.

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

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 để thực hiện xác minh chữ ký trong hợp đồng gửi tiền, nhằm tránh nguy cơ mất mát tài sản của người dùng. Đây cũng là lý do mà rất 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 một loạt vấn đề tồn tại trong đề xuất. Những nghi ngờ này chủ yếu tập trung vào nội dung tài liệu EIP, sau đó tác giả EIP đã phản hồi và thảo luận về vấn đề này.

Cuộc họp các nhà phát triển cốt lõi Ethereum lần thứ 82 vào ngày 6 tháng 3 năm 2020 đã thảo luận về EIP-2537. Vitalik cho rằng EIP này rất hiệu quả cho việc chứng minh SNARK tái diễn, về lâu dài sẽ không gây ảnh hưởng tiêu cực đến Ethereum. Cuộc họp đã xác nhận vị trí ưu tiên của EIP-2537, tất cả các client đều đồng ý thực hiện EIP này càng sớm càng tốt và lên kế hoạch hoàn thành tất cả 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 hơn. Cuộc họp các nhà phát triển cốt lõi lần thứ 83 vào ngày 20 tháng 3 đã một lần nữa xác định nó là đề xuất chính để thảo luận. Cuộc họp đã xác nhận EIP-2537 thay thế EIP-1962 trở thành đề xuất BLS cốt lõi và được đưa vào danh sách dự kiến cho bản nâng cấp Berlin.

Cuộc họp thứ 84 vào tháng 4 chính thức đưa EIP-2537 vào nâng cấp hard fork Berlin và xác định thời gian thực hiện vào tháng 4, kiểm tra vào tháng 5-6. Đáng chú ý, EIP-2537 được liệt kê là vấn đề ưu tiên hàng đầu trong cuộc thảo luận này.

Sau đó, EIP-2537 đã bước vào giai đoạn phát triển và thử nghiệm lớn, gần như trong mỗi cuộc họp nhà phát triển cốt lõi tiếp theo gần 20 lần đều có thảo luận liên quan.

Tại cuộc họp lần thứ 85, các nhà phát triển đã thảo luận về vấn đề mã hóa ABI của EIP-2537. Do Matter Labs đã cơ bản hoàn thành việc triển khai phiên bản Rust, khách hàng Besu cho biết đã cơ bản thực hiện chức năng EIP-2537, nhưng phía Geth cho biết hiện tại không ai đang tiến hành công việc liên quan.

Tại cuộc họp lần thứ 86, các nút khác nhau đã thực hiện đồng bộ hóa lại tiến trình của EIP-2537, Geth cho biết đã hoàn thành một phần công việc, nhưng vẫn còn nhiều nhiệm vụ cần hoàn thành.

Cuộc họp lần thứ 87 đã tập trung thảo luận về vấn đề thực hiện EIP-2537. Các nhà phát triển Geth cho biết có một PR dài 16000 dòng thực hiện EIP-2537, nhưng không thể xác định liệu PR đó có thực hiện EIP-2537 một cách an toàn và hiệu quả hay không, chỉ có thể đánh giá tình hình mã thông qua thử nghiệm mờ đơn giản nhất.

Các nhà phát triển Geth cho biết: "Theo trực giác của tôi, Geth sẽ không thể chuẩn bị cho thao tác BLS curve trước khi ra mắt mạng chính vào tháng 7."

Hudson Jameson đề xuất tìm kiếm kỹ sư mật mã để hỗ trợ xem xét PR cho Geth, và đề nghị sử dụng mạng thử nghiệm để kiểm tra tính an toàn của việc triển khai EIP-2537. Do đội phát triển ETH2 cũng đang triển khai xác thực chữ ký BLS, có thể tham gia thử nghiệm.

Cần bổ sung rằng, PR triển khai EIP-2537 của Geth đã sử dụng nhiều mã lắp để đảm bảo hiệu quả, phần mã này rất khó đọc và hiểu. Alex Vlasov đề xuất loại bỏ các tối ưu hóa mã lắp phức tạp trong PR để giảm độ khó trong việc xem xét.

Một mục tiêu cốt lõi của EIP-2537 là hỗ trợ hợp đồng gửi ETH2, nhưng trong cuộc họp lần này, các nhà phát triển hợp đồng gửi cho biết không sử dụng hợp đồng EIP-2537 đã được kiểm toán, một số nhà phát triển cho rằng tốt nhất là không nên phát hành hợp đồng phiên bản mới sử dụng EIP-2537.

Cuối cùng, hội nghị quyết định tăng cường mạng thử nghiệm YOLO, dành riêng cho việc thử nghiệm EIP-2537. Thực tế, từ hội nghị này có thể thấy, với việc hoàn thành hợp đồng gửi tiền, tầm quan trọng của EIP-2537 đã giảm đáng kể, trong khi các nhà phát triển Geth cho rằng EIP này rất có thể không được thực hiện trước khi nâng cấp Berlin. Việc EIP-2537 không được Berlin chấp nhận dường như đã trở thành điều chắc chắn.

Tại cuộc họp lần thứ 88, các nhà phát triển Geth phát hiện ra rằng việc thực hiện PR EIP-2537 có một loạt vấn đề, cho rằng cần phải thử nghiệm và sửa chữa thêm. Lúc này trong hệ thống Geth có hai phiên bản thực hiện EIP-2537, một phiên bản bao gồm tối ưu hóa hợp ngữ, phiên bản còn lại hoàn toàn được viết bằng ngôn ngữ Go. Một số nhà phát triển đã đề xuất sử dụng trực tiếp phiên bản ngôn ngữ Go để giảm bớt độ khó trong việc xem xét mã.

Tại cuộc họp lần thứ 89, đã xuất hiện vấn đề nghiêm trọng hơn, mạng thử nghiệm YOLO đã xuất hiện một số bất thường, các nhà phát triển nghi ngờ do chữ ký BLS gây ra, nhưng các nhà phát triển EIP-2537 đã bác bỏ điều này. Tin tốt là hợp đồng gửi tiền dựa trên EIP-2537 cơ bản đã hoàn thành phát triển, đang chờ kiểm toán.

Cuộc họp thứ 90 đã xác định thời hạn cuối cùng cho việc triển khai nâng cấp Berlin vào tháng 7. Cuộc họp cũng thảo luận về vấn đề đa dạng của các khách hàng, chủ yếu liên quan đến tình hình Geth chiếm ưu thế, một số nhà phát triển đã đề xuất đóng băng việc thực hiện EIP hiện tại để giảm chi phí phát triển cho các khách hàng khác. Tại cuộc họp thứ 91, một số nhà phát triển đã đề xuất sử dụng giải pháp mô-đun để giảm chi phí phát triển nhằm tăng cường sự đa dạng của các khách hàng.

Cuộc họp lần thứ 92 vẫn xác nhận EIP-2537 là EIP cần thiết cho nâng cấp Berlin.

Tại cuộc họp lần thứ 96, do Celo đã đưa EIP-2537 và EIP-2539 vào hard fork của mạng lưới, Matter Labs hy vọng sẽ đưa EIP-2539 vào thử nghiệm YOLO v2 và đưa vào nâng cấp Berlin. Tuy nhiên, các nhà phát triển Geth phản đối, cho rằng EIP-2537 hiện vẫn chưa được thử nghiệm đầy đủ trong Geth. Cuối cùng, cuộc họp quyết định không thêm EIP-2696 vào nâng cấp Berlin, để lại cho cuộc thảo luận trong tương lai.

Cuộc họp thứ 99 đã quyết định loại bỏ EIP-2537 khỏi mạng thử nghiệm YOLO v3 và nâng cấp Berlin, lý do chính là EIP-2537 đã tiêu tốn quá nhiều thời gian của các nhà phát triển cốt lõi, dẫn đến việc phát triển các EIP khác cho nâng cấp Berlin bị cản trở. Yếu tố phụ là Quỹ Ethereum đã đề xuất EVM384 như một sự thay thế cho EIP-2537, cung cấp một giải pháp tính toán đường cong elip tổng quát hơn. Tuy nhiên, các nhà phát triển cốt lõi bày tỏ lo ngại về vấn đề an ninh.

Đây là quá trình đầu tiên của EIP-2537. Chúng ta có thể thấy, EIP-2537 ban đầu là một trong những EIP quan trọng nhất trong nâng cấp Berlin, nhưng đã bị loại bỏ do vấn đề thực hiện. Vào tháng 4 năm 2021, Ethereum đã hoàn thành nâng cấp Berlin, các EIP chính như EIP-2565 thực tế không phức tạp, nâng cấp trông có vẻ hơi mỏng manh, chính vì EIP-2537, EIP 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

Như mọi người đều biết, mỗi lần nâng cấp Ethereum sẽ có một đề xuất cốt lõi. Nâng cấp London sau Berlin đã giới thiệu đề xuất phí quan trọng nhất trong lịch sử Ethereum là EIP-1559. Đối với đề xuất cốt lõi trước đây là EIP-2537, các nâng cấp sau rất khó để đưa nó vào.

London nâng cấp sau Berlin, các nhà phát triển đang xem xét việc thêm EIP-2537 trong issues#369. Cuộc họp các nhà phát triển cốt lõi lần thứ 109 đã đồng bộ hóa tình trạng phát triển của EIP-2537, do việc sử dụng thư viện khác nhau đã dẫn đến các cuộc thảo luận về việc sử dụng gas. Một nhà phát triển đã đề xuất thay thế EIP-2537 bằng EVM384. Tuy nhiên, tại cuộc họp lần thứ 111 vào tháng 4 năm 2021, EIP-2537 đã bị loại bỏ khỏi nâng cấp London do độ phức tạp. Nguyên nhân chính là việc thay đổi thư viện phụ thuộc trong việc triển khai tiêu chuẩn EIP-2537 có thể dẫn đến sự thay đổi trong giá gas, và các phiên bản khách hàng khác nhau cần rất nhiều thời gian để đánh giá lại mức tiêu thụ gas.

Vào tháng 6 năm 2021, issues#343 chính thức đề xuất đưa EIP-2537 vào nâng cấp Shanghai. Tuy nhiên, sau nâng cấp London, The Merge đã chiếm nhiều thời gian của các nhà phát triển, các nhà phát triển lớp thực thi cần phải viết một lượng lớn mã để thực hiện nâng cấp PoS. Vào tháng 9 năm 2022, sau khi The Merge hoàn tất, các nhà phát triển lớp thực thi mới có cơ hội tiếp tục thảo luận về mục tiêu của nâng cấp Shanghai.

Vào tháng 11 năm 2022, cuộc họp các nhà phát triển cốt lõi lần thứ 150 đã thảo luận ngắn gọn về việc có nên đưa EIP-2537 vào Shanghai hay không, nhưng các nhà phát triển cho rằng nên hoãn lại, cốt lõi của Shanghai là hỗ trợ việc rút tiền PoS. Cuối cùng, EIP-2537 đã không được đưa vào bản nâng cấp Shanghai tập trung vào việc rút tiền.

Thật không may, việc nâng cấp Cancun vẫn chưa thảo luận về EIP-2537, vì trọng tâm của Cancun là hỗ trợ EIP-4844, cung cấp Blob cho lớp hai của Ethereum để sử dụng Ethereum như một lớp dữ liệu khả dụng.

Cho đến hội nghị nhà phát triển cốt lõi lần thứ 181 vào tháng 2 năm 2024, các nhà phát triển mới thảo luận về việc đưa EIP-2537 vào nâng cấp Pectra. Vào thời điểm đó, các nhà phát triển cho rằng việc thực hiện EIP-2537 không còn là vấn đề, chỉ còn một số vấn đề về giá tiêu thụ gas cần được giải quyết.

Tại cuộc họp thứ 202 vào ngày 19 tháng 12 năm 2024, các nhà phát triển Nethermind đã xác định cuối cùng mô hình định giá cho EIP-2537. Đáng lưu ý là, Matter Labs, nhà đề xuất ban đầu của EIP-2537, lúc này đã cơ bản rút lui khỏi cuộc thảo luận. Cuộc họp thứ 203 vào tháng 1 năm 2025 đã thảo luận về việc định giá lại BLS precompile, nhà phát triển Geth, Jared Wasinger, đã đề xuất tăng chi phí gas thêm 20%, và đã nhận được sự ủng hộ từ đội ngũ Besu trong việc kiểm tra chuẩn.

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

Tóm tắt

EIP-2537 từ khi được đề xuất đến khi cuối cùng được chấp nhận đã trải qua một quá trình dài và gian nan:

  • Tháng 2 năm 2020: Tách ra từ EIP-1962 chính thức đề xuất EIP-2537
  • Tháng 4-10 năm 2020: Nhiều cuộc thảo luận về vấn đề thực hiện, cuối cùng do không thể thực hiện nên đã bị bỏ qua trong việc nâng cấp Berlin.
  • Tháng 3-4 năm 2021: Thảo luận về vấn đề chi phí gas, do tính phức tạp đã bị từ bỏ trong nâng cấp London.
  • Tháng 11 năm 2022: Thảo luận về việc có nên đưa vào nâng cấp Shanghai, nhưng không có kết quả.
  • Tháng 2 năm 2024: cho rằng việc thực hiện không còn là vấn đề, vẫn còn một số vấn đề về chi phí gas, có thể đưa vào nâng cấp Pectra
  • Tháng 12 năm 2024 - Tháng 1 năm 2025: Thảo luận về mô hình tính toán chi phí cụ thể, chính thức giải quyết chi phí gas
ETH1.9%
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
  • 6
  • Chia sẻ
Bình luận
0/400
StableGeniusvip
· 08-03 06:12
nói một cách thực nghiệm, họ mất 5 năm để làm những gì lẽ ra nên được thực hiện trong 6 tháng. sân khấu quản trị eth cổ điển
Xem bản gốcTrả lời0
RugResistantvip
· 08-01 07:29
đã phân tích eip. các dấu hiệu tiềm ẩn trong việc triển khai bls cần được kiểm toán sâu hơn thật lòng
Xem bản gốcTrả lời0
NFTDreamervip
· 08-01 07:29
Ôi chao, Vitalik Buterin đã muốn làm như vậy từ lâu rồi.
Xem bản gốcTrả lời0
TokenSleuthvip
· 08-01 07:29
Ôi, lại phải chờ tới năm năm.. đủ để phiền phức.
Xem bản gốcTrả lời0
0xSunnyDayvip
· 08-01 07:14
5 năm chờ đợi eip thật khó quá
Xem bản gốcTrả lời0
LiquidityHuntervip
· 08-01 07:11
Phù, Ethereum hành động chậm đến nỗi tôi đã buồn ngủ.
Xem bản gốcTrả lời0
  • Ghim
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)