Artikel ini terutama memperkenalkan sejarah tata kelola EIP-2537, menyelidiki mengapa diperlukan 5 tahun untuk memasukkan proposal ini ke dalam pembaruan.
Ditulis oleh: shew
Ringkasan
EIP-2537 adalah instruksi pra-assemble EVM yang ditambahkan dalam pembaruan fork Pectra terbaru. Instruksi ini menambahkan berbagai fungsi perhitungan untuk kurva BLS12-381 pada EVM, seperti perhitungan pairing di atas domain kurva.
EIP-2573 pertama kali diajukan pada tahun 2020 dan baru dikonfirmasi untuk dimasukkan dalam peningkatan Ethereum pada tahun 2025. Artikel ini terutama memperkenalkan sejarah tata kelola EIP-2537, menjelajahi mengapa proposal ini baru dimasukkan dalam peningkatan setelah 5 tahun.
Latar Belakang Usulan
Pada bulan Januari 2017, Vitalik Buterin memperkenalkan algoritma pairing dan kurva alt_bn128 untuk pertama kalinya dalam Exploring Elliptic Curve Pairings. Kemudian pada bulan Februari 2017, Vitalik Buterin dan Christian Reitwiessner mengajukan proposal EIP-196 dan EIP-197, yang berisi tentang penambahan dukungan perhitungan kurva alt_bn128 ke dalam EVM.
Dalam peningkatan Byzantium pada bulan Oktober 2017, kurva alt_bn128 secara resmi diintegrasikan. Secara sederhana, alt_bn128 pertama kali mewujudkan perhitungan pasangan kurva di dalam EVM, yang memungkinkan verifikasi bukti ZK-Snarks dilakukan di dalam EVM.
Namun seiring dengan perkembangan kriptografi, pada bulan November 2017, tim pengembang zcash pertama kali memperkenalkan kurva BLS12-381 dalam dokumen BLS12-381: New zk-SNARK Elliptic Curve Construction. Dibandingkan dengan alt_bn128, BLS12-381 memiliki keamanan yang lebih tinggi dan performa yang lebih baik. Banyak protokol blockchain setelahnya telah menggunakan kurva BLS12-381 dan meninggalkan kurva alt_bn128.
Pada Mei 2018, Justin Drake menerbitkan artikel Pragmatic signature aggregation with BLS di ethresear, menunjukkan bahwa dalam pembaruan PoS dan sharding mendatang Ethereum dapat menggunakan algoritma multi-tanda tangan BLS berbasis kurva BLS12-381. Pada saat itu, peneliti Ethereum berharap untuk menggunakan EIP-1011 untuk mengatasi masalah lapisan konsensus, tetapi skema EIP-1011 hanya dapat menampung maksimal 900 validator, sehingga menetapkan skala staking yang besar sebesar 1500 ETH untuk setiap validator. Dengan diusulkannya skema multi-tanda tangan BLS, EIP-1011 keluar dari panggung sejarah. Ternyata, pembaruan ETH2 yang kemudian juga akhirnya menggunakan kurva BLS12-381.
Seiring dengan pengembangan ETH2, BLS12-381 yang digunakan oleh ETH2 mulai dipanggil untuk lapisan eksekusi ETH. Pada bulan Februari 2020, beberapa peneliti mengusulkan EIP-2537, dan mereka berharap proposal tersebut dapat diuji bersama di testnet ETH2. Penulis EIP-2537, Alex Stokes, mengajak untuk menyertakan EIP-2537 dalam hard fork Berlin dalam artikel What eth2 needs from eth1 over the next six months.
Menariknya, penulis EIP-2537 juga merupakan salah satu pendiri Matter Labs, dan produk paling terkenal dari Matter Labs adalah ZKSync.
Berlin Guncang
Sebelum memperkenalkan konten selanjutnya, kita perlu terlebih dahulu memperkenalkan EIP-1962. EIP-1962 adalah proposal pertama mengenai pre-assembly pairing untuk domain kurva elips yang diajukan oleh Matter Labs pada April 2019, yang mendukung tiga kurva, yaitu:
BLS12
BN
MNT4/6 (Ate pairing)
EIP ini bersiap untuk menambahkan 10 instruksi pra-assembly sekaligus untuk menangani berbagai kurva. Namun, setelah proposal ini lahir, cukup banyak pengembang meragukan bahwa proposal ini terlalu rumit sehingga sulit untuk diimplementasikan oleh pengembang. Selain itu, karena EIP1962 sangat umum, bagi insinyur kontrak pintar, pemanggilan juga sangat merepotkan. Tentu saja, sebagai pengusul EIP-1962, Matter Labs pada dasarnya telah menyelesaikan pekerjaan pengembangan algoritma kurva elips dan menyediakan implementasi referensi dalam Rust / Go / C++.
Untuk menyelesaikan masalah EIP-1962, Matter Labs mengajukan beberapa EIP pemisahan EIP-1962 pada bulan Februari 2020, di mana EIP ini sebagian mewarisi antarmuka EIP-1962. EIP ini mencakup:
EIP-2537 menyediakan dukungan untuk BLS12-381
EIP-2539 menyediakan dukungan untuk BLS12-377
PR#2541 menyediakan dukungan untuk kurva BLS12-377 (Zexe ), namun perlu diperhatikan bahwa proposal ini tidak mendapatkan nomor EIP akhir, sehingga tidak dapat ditemukan di dokumen resmi EIP.
Di antara beberapa EIP ini, yang paling penting adalah EIP-2537, karena lapisan konsensus juga menggunakan kurva BLS12-381. Baik EIP-1962 maupun EIP-2537 memiliki tujuan inti yang sama, yaitu untuk mewujudkan verifikasi tanda tangan BLS di lapisan konsensus dalam mainnet. Pada saat itu, ETH2 sedang mengembangkan desain kontrak setoran untuk lapisan konsensus. Dalam desain awal kontrak setoran, karena lapisan eksekusi tidak menyertakan algoritma verifikasi BLS, maka kontrak setoran tidak akan memverifikasi tanda tangan; tanda tangan BLS yang spesifik akan diverifikasi oleh lapisan konsensus setelah pengguna melakukan setoran. Jika ditemukan tidak benar (untuk validator baru), setoran akan gagal dan ETH yang disetorkan pengguna akan hilang.
Dalam konteks ini, pengembang inti ingin memperkenalkan BLS12-381 pre-assembly untuk menerapkan verifikasi tanda tangan dalam kontrak setoran, menghindari kemungkinan kerugian bagi pengguna yang menyetor dana ETH2. Ini juga merupakan alasan mengapa banyak pengembang saat itu tertarik pada EIP-1962 dan EIP-2537.
Ketika EIP-2537 baru saja diusulkan, Vitalik segera menemukan serangkaian masalah yang ada pada EIP tersebut:
Kritik ini hanya difokuskan pada konten dokumen EIP, setelah itu penulis EIP memberikan tanggapan dan diskusi. Kemudian, pada 6 Maret 2020, dalam Pertemuan Pengembang Inti Ethereum #82, pengembang inti Ethereum membahas EIP-2537. Dalam pertemuan ini, Vitalik berpendapat bahwa EIP-2537 dan EIP lainnya sangat efektif untuk bukti SNARK rekursif, dan dalam jangka panjang tidak akan merugikan Ethereum. Selain itu, pertemuan tersebut juga mengonfirmasi status prioritas EIP-2537, semua klien setuju untuk segera mengimplementasikan EIP-2537 dan merencanakan untuk menyelesaikan semua pengembangan sebelum pembaruan Berlin.
Kemudian, EIP-2537 menjadi tugas yang lebih prioritas. Pada 20 Maret 2020, dalam Pertemuan Pengembang Inti Ethereum #83, EIP-2537 masih menjadi proposal yang dibahas pertama kali. Pertemuan ini mengonfirmasi bahwa EIP-2537 menggantikan EIP-1962 sebagai proposal BLS inti dan menjadi daftar EIP pra-pemilihan untuk peningkatan Berlin ( yaitu Eligibility for Inclusion (EFI)).
Pada pertemuan Ethereum Core Devs Meeting #84 pada bulan April 2020, pertemuan tersebut secara resmi memasukkan EIP-2537 ke dalam upgrade hard fork Berlin, dan menetapkan timeline upgrade Berlin untuk pelaksanaan pada bulan April dan pengujian pada bulan Mei - Juni. Perlu dicatat bahwa dalam diskusi kali ini, EIP-2537 dicatat sebagai prioritas tertinggi.
Selanjutnya, EIP-2537 memasuki tahap pengembangan dan pengujian yang intensif, di mana hampir setiap pertemuan pengembang inti yang diadakan hampir 20 kali berikutnya melibatkan diskusi tentang EIP-2537. Sekarang, mari kita lihat masalah-masalah yang dibahas tentang EIP-2537 dalam setiap pertemuan.
Pada Rapat Pengembang Inti Ethereum #85, Danno dan Axic membahas masalah pengkodean ABI dari EIP-2537. Selanjutnya, para pengembang inti menyinkronkan keadaan implementasi saat ini, di mana karena pengusul EIP-2537, Matter Labs, sebelumnya telah menyelesaikan implementasi versi Rust, klien Besu menyatakan bahwa mereka telah hampir mengimplementasikan fungsi EIP-2537, tetapi pihak Geth menyatakan bahwa saat ini tidak ada yang bekerja untuk implementasi EIP-2537.
Dalam Rapat Pengembang Inti Ethereum #86, implementasi EIP-2537 disinkronkan kembali oleh berbagai implementasi node Ethereum, di mana Geth menyatakan telah menyelesaikan sebagian pekerjaan, tetapi masih ada banyak pekerjaan yang menunggu untuk diselesaikan.
Dalam Pertemuan Pengembang Inti Ethereum #87, inti dari pertemuan pengembang kali ini adalah masalah implementasi EIP-2537. Pengembang Geth menyatakan bahwa saat ini ada PR sepanjang 16000 baris yang mengimplementasikan EIP-2537, tetapi pengembang Geth tidak dapat memastikan apakah PR tersebut aman dan efektif dalam mengimplementasikan EIP-2537, sehingga pengembang hanya dapat menilai keadaan kode melalui pengujian fuzz yang paling sederhana dan kasar.
Pengembang Geth berkata: "Jadi reaksi insting saya adalah bahwa tidak ada kemungkinan Geth akan siap dengan operasi kurva BLS untuk peluncuran mainnet pada bulan Juli.", yang berarti Geth kemungkinan besar tidak akan menyelesaikan pengembangan terkait EIP-2537 sebelum waktu yang dijadwalkan di Berlin.
Hudson Jameson mengusulkan untuk mencari insinyur kriptografi untuk membantu tinjauan PR Geth, dan mengusulkan untuk menggunakan testnet untuk menguji keamanan implementasi EIP-2537. Karena saat ini tim pengembang ETH2 juga sedang mengimplementasikan verifikasi tanda tangan BLS, maka tim ETH2 bisa ikut serta dalam pengujian.
Di sini, kita perlu menambahkan pengetahuan latar belakang, yaitu implementasi PR EIP-2537 Geth menggunakan banyak kode assembly untuk memastikan efisiensi, dan bagian kode assembly ini sangat sulit untuk dibaca dan dipahami. Jadi, Alex Vlasov menyarankan untuk menghapus optimasi assembly kompleks di dalam PR untuk mengurangi kesulitan dalam peninjauan.
Kami telah memperkenalkan salah satu tujuan inti dari EIP-2537 di atas, yaitu untuk membantu kontrak setoran ETH2, tetapi dalam pertemuan kali ini, pengembang kontrak setoran menyatakan bahwa kontrak setoran yang tidak menggunakan EIP-2537 sudah diaudit, jadi beberapa pengembang mengusulkan sebaiknya tidak lagi meluncurkan kontrak setoran yang menggunakan EIP-2537.
Pada akhirnya, konferensi memutuskan untuk menambah jaringan uji YOLO, yang inti dari jaringan uji ini adalah untuk menguji EIP-2537. Faktanya, dalam konferensi kali ini, kita dapat melihat pentingnya EIP-2537 yang telah berkurang secara signifikan seiring dengan selesainya kontrak deposit, sementara pengembang Geth telah menganggap bahwa EIP ini sangat mungkin tidak akan terimplementasi sebelum peningkatan Berlin. Sepertinya tidak diterimanya EIP-2537 dalam peningkatan Berlin telah menjadi hal yang pasti.
Dalam Pertemuan Pengembang Inti Ethereum #88, pengembang Geth menemukan bahwa PR implementasi EIP-2537 memiliki serangkaian masalah, dan pengembang menyatakan bahwa perlu dilakukan pengujian dan perbaikan lebih lanjut. Saat itu, ada dua implementasi EIP-2537 dalam sistem Geth, salah satu implementasi mencakup optimasi assembly, sementara implementasi lainnya sepenuhnya ditulis dalam bahasa Go. Beberapa pengembang mengusulkan untuk langsung menggunakan versi yang ditulis dalam bahasa Go untuk mengurangi kesulitan dalam pemeriksaan kode.
Dalam Pertemuan Pengembang Inti Ethereum #89, masalah yang lebih serius terjadi, pengujian YOLO mengalami beberapa masalah, pengembang curiga bahwa masalah tersebut disebabkan oleh tanda tangan BLS, tetapi pengembang EIP2537 membantahnya, berpendapat bahwa masalah di jaringan pengujian bukan disebabkan oleh tanda tangan BLS. Kabar baik tentang EIP-2537 adalah bahwa kontrak setoran yang berbasis EIP-2537 telah selesai dikembangkan, dan kontrak tersebut sedang menunggu audit kontrak.
Dalam Rapat Pengembang Inti Ethereum #90 内,这次会议锁定了 7 月份上线 Berlin 升级的 DDL。当然,这次会议另一个有趣的论点是客户端多样性问题,在此次会议中,开发者主要讨论了 Geth 占据主导地位的情况,并且有开发者提议冻结当前 EIP 实现来降低其他客户端的开发成本。更加有趣的是,在 #91, seorang pengembang mengusulkan untuk menggunakan solusi modular guna mengurangi biaya pengembangan dan meningkatkan keberagaman klien. Jika pembaca tertarik pada keberagaman klien Ethereum, mereka dapat membaca catatan dari dua rapat ini.
Dalam Pertemuan Pengembang Inti Ethereum #92, 2537 masih dikonfirmasi sebagai EIP yang diperlukan untuk peningkatan Berlin.
Dalam Rapat Pengembang Inti Ethereum #96, berdasarkan Celo, EIP-2537 dan EIP-2539 telah dimasukkan ke dalam pembaruan hard fork jaringan mereka, sehingga Matter Labs berharap EIP-2539 yang diajukan bersamaan dengan EIP-2537 juga dapat diuji di jaringan pengujian YOLO v2 dan masuk ke dalam pembaruan Berlin. Namun, pengembang Geth menolak, menganggap bahwa EIP-2537 saat ini belum diuji secara lengkap di dalam Geth. Akhirnya, keputusan rapat adalah untuk tidak menambahkan 2696 ke dalam pembaruan Berlin, dan akan dibahas di masa depan.
Dalam Pertemuan Pengembang Inti Ethereum #99, pertemuan ini memutuskan untuk mengeluarkan EIP-2537 dari jaringan pengujian YOLO v3 dan peningkatan Berlin. Alasan utama adalah EIP-2537 telah membuang terlalu banyak waktu pengembang inti, yang mengakibatkan pengembangan EIP lain dalam peningkatan Berlin terhambat. Faktor sekunder adalah bahwa Yayasan Ethereum telah mengusulkan EVM384 sebagai pengganti EIP-2537, di mana EVM 384 menyediakan solusi perhitungan kurva elips yang lebih umum. Namun, pengembang inti mengekspresikan kekhawatiran tentang masalah keamanan dalam diskusi pertemuan.
Isi di atas adalah perjalanan awal EIP-2537, kita dapat melihat bahwa EIP-2537 awalnya merupakan salah satu EIP terpenting dalam peningkatan Berlin, namun karena masalah implementasi akhirnya dibatalkan. Terakhir, pada April 2021, Ethereum menyelesaikan peningkatan Berlin, di mana EIP-2565 dan lain-lain yang termasuk dalam inti peningkatan sebenarnya tidak terlalu kompleks, tampaknya peningkatan Berlin agak terlihat tipis, ini karena EIP-2537 yang paling kompleks dan inti dikeluarkan dari peningkatan Berlin.
Perkembangan Selanjutnya
Seperti yang kita ketahui, setiap peningkatan Ethereum selalu memiliki usulan inti, seperti peningkatan Berlin yang diikuti oleh peningkatan London yang memperkenalkan usulan biaya transaksi terpenting dalam sejarah Ethereum, EIP-1559. Untuk EIP-2537 yang pernah menjadi usulan inti, sulit untuk memasukkan usulan ini dalam peningkatan berikutnya.
Dalam pembaruan London setelah Berlin, pengembang di issues#369 曾考虑在 London 升级中增加 EIP-2537。在 Ethereum Core Devs Meeting #109 menyinkronkan status pengembangan EIP-2537 saat ini. Pada saat itu, karena menggunakan pustaka lain untuk mengimplementasikan EIP-2537, muncul diskusi tentang penggunaan gas untuk EIP-2537. Sementara itu, ada pengembang yang mengusulkan penggunaan EVM384 sebagai pengganti EIP-2537. Namun, pada pertemuan Ethereum Core Devs #111 di bulan April 2021, EIP-2537 dikeluarkan dari pembaruan London karena kompleksitasnya. Kompleksitas inti terletak pada fakta bahwa implementasi standar EIP-2537 mengganti pustaka yang diandalkan, yang menyebabkan kemungkinan perubahan dalam penetapan harga gas, dan implementasi klien yang berbeda memerlukan waktu yang cukup lama untuk mengevaluasi kembali konsumsi gas.
Pada bulan Juni 2021, EIP-2537 secara resmi diusulkan untuk dimasukkan ke dalam peningkatan Shanghai dalam issues#343. Namun, perlu dicatat bahwa setelah peningkatan London, sebenarnya peningkatan Pairs atau yang disebut sebagai The Merge telah menyita banyak waktu para pengembang, di mana para pengembang lapisan eksekusi perlu menulis banyak kode untuk melaksanakan peningkatan PoS. Pada bulan September 2022, peningkatan Pairs selesai, dan para pengembang lapisan eksekusi akhirnya memiliki kesempatan untuk melanjutkan diskusi tentang beberapa tujuan peningkatan Shanghai.
Pada bulan November 2022, dalam Pertemuan Pengembang Inti Ethereum #150, sempat dibahas apakah EIP-2537 akan dimasukkan dalam upgrade Shanghai, tetapi para pengembang berpendapat bahwa EIP-2537 perlu ditunda, karena inti dari upgrade Shanghai adalah mendukung penarikan PoS. Akhirnya, EIP-2537 tidak dimasukkan ke dalam upgrade Shanghai yang berfokus pada fungsi penarikan.
Lebih menyedihkan lagi, pembaruan Cancun belum pernah mendiskusikan EIP-2537, karena inti dari pembaruan Cancun adalah dukungan node lapisan eksekusi untuk EIP-4844. EIP-4844 menyediakan Blob untuk lapisan kedua Ethereum agar lapisan kedua dapat menggunakan Ethereum sebagai lapisan ketersediaan data.
Akhirnya, pada Pertemuan Pengembang Inti Ethereum #181 pada Februari 2024, para pengembang membahas untuk memasukkan EIP-2537 dalam pembaruan Pectra, dan saat itu para pengembang percaya bahwa implementasi EIP-2537 bukanlah masalah, hanya beberapa masalah terkait penetapan harga konsumsi Gas.
Pada Pertemuan Pengembang Inti Ethereum pada 19 Desember 2024, #202 内,Nethermind 开发者最终确定了 EIP-2537 的定价模型。是的,作为 EIP-2537 的最初提案者 Matter Labs 此时已经近乎退出了讨论。在随后的,2025 年 1 月的 Ethereum Core Devs Meeting #203, para pengembang membahas termasuk penetapan kembali harga untuk BLS pra-kompilasi, pengembang Geth Jared Wasinger menyarankan untuk meningkatkan biaya gas sebesar 20%, dan mendapatkan dukungan dari pengujian dasar tim Besu.
Ringkasan
Terlihat bahwa apakah EIP dimasukkan dalam upgrade Ethereum, "tentu saja harus bergantung pada usaha sendiri, tetapi juga harus mempertimbangkan perjalanan sejarah". Setiap upgrade Ethereum memiliki tema tersendiri, seperti EIP-2537 yang pernah menjadi EIP terpenting dalam upgrade Berlin, tetapi diabaikan karena kesulitan dan kompleksitas implementasinya. Setelah itu, Ethereum memasuki proses sejarah PoS, EIP lapisan eksekusi murni yang kompleks tidak mendapat perhatian, sementara banyak EIP eksekusi yang terkait dengan PoS dianggap sebagai tujuan upgrade inti, yang menyebabkan EIP-2537 tidak diterima dalam waktu yang lama.
Konten ini hanya untuk referensi, bukan ajakan atau tawaran. Tidak ada nasihat investasi, pajak, atau hukum yang diberikan. Lihat Penafian untuk pengungkapan risiko lebih lanjut.
Pengamatan Pemerintahan Ethereum: Proses Pre-Assembly EIP-2537|GCC Research
Ditulis oleh: shew
Ringkasan
EIP-2537 adalah instruksi pra-assemble EVM yang ditambahkan dalam pembaruan fork Pectra terbaru. Instruksi ini menambahkan berbagai fungsi perhitungan untuk kurva BLS12-381 pada EVM, seperti perhitungan pairing di atas domain kurva.
EIP-2573 pertama kali diajukan pada tahun 2020 dan baru dikonfirmasi untuk dimasukkan dalam peningkatan Ethereum pada tahun 2025. Artikel ini terutama memperkenalkan sejarah tata kelola EIP-2537, menjelajahi mengapa proposal ini baru dimasukkan dalam peningkatan setelah 5 tahun.
Latar Belakang Usulan
Pada bulan Januari 2017, Vitalik Buterin memperkenalkan algoritma pairing dan kurva alt_bn128 untuk pertama kalinya dalam Exploring Elliptic Curve Pairings. Kemudian pada bulan Februari 2017, Vitalik Buterin dan Christian Reitwiessner mengajukan proposal EIP-196 dan EIP-197, yang berisi tentang penambahan dukungan perhitungan kurva alt_bn128 ke dalam EVM.
Dalam peningkatan Byzantium pada bulan Oktober 2017, kurva alt_bn128 secara resmi diintegrasikan. Secara sederhana, alt_bn128 pertama kali mewujudkan perhitungan pasangan kurva di dalam EVM, yang memungkinkan verifikasi bukti ZK-Snarks dilakukan di dalam EVM.
Namun seiring dengan perkembangan kriptografi, pada bulan November 2017, tim pengembang zcash pertama kali memperkenalkan kurva BLS12-381 dalam dokumen BLS12-381: New zk-SNARK Elliptic Curve Construction. Dibandingkan dengan alt_bn128, BLS12-381 memiliki keamanan yang lebih tinggi dan performa yang lebih baik. Banyak protokol blockchain setelahnya telah menggunakan kurva BLS12-381 dan meninggalkan kurva alt_bn128.
Pada Mei 2018, Justin Drake menerbitkan artikel Pragmatic signature aggregation with BLS di ethresear, menunjukkan bahwa dalam pembaruan PoS dan sharding mendatang Ethereum dapat menggunakan algoritma multi-tanda tangan BLS berbasis kurva BLS12-381. Pada saat itu, peneliti Ethereum berharap untuk menggunakan EIP-1011 untuk mengatasi masalah lapisan konsensus, tetapi skema EIP-1011 hanya dapat menampung maksimal 900 validator, sehingga menetapkan skala staking yang besar sebesar 1500 ETH untuk setiap validator. Dengan diusulkannya skema multi-tanda tangan BLS, EIP-1011 keluar dari panggung sejarah. Ternyata, pembaruan ETH2 yang kemudian juga akhirnya menggunakan kurva BLS12-381.
Seiring dengan pengembangan ETH2, BLS12-381 yang digunakan oleh ETH2 mulai dipanggil untuk lapisan eksekusi ETH. Pada bulan Februari 2020, beberapa peneliti mengusulkan EIP-2537, dan mereka berharap proposal tersebut dapat diuji bersama di testnet ETH2. Penulis EIP-2537, Alex Stokes, mengajak untuk menyertakan EIP-2537 dalam hard fork Berlin dalam artikel What eth2 needs from eth1 over the next six months.
Menariknya, penulis EIP-2537 juga merupakan salah satu pendiri Matter Labs, dan produk paling terkenal dari Matter Labs adalah ZKSync.
Berlin Guncang
Sebelum memperkenalkan konten selanjutnya, kita perlu terlebih dahulu memperkenalkan EIP-1962. EIP-1962 adalah proposal pertama mengenai pre-assembly pairing untuk domain kurva elips yang diajukan oleh Matter Labs pada April 2019, yang mendukung tiga kurva, yaitu:
EIP ini bersiap untuk menambahkan 10 instruksi pra-assembly sekaligus untuk menangani berbagai kurva. Namun, setelah proposal ini lahir, cukup banyak pengembang meragukan bahwa proposal ini terlalu rumit sehingga sulit untuk diimplementasikan oleh pengembang. Selain itu, karena EIP1962 sangat umum, bagi insinyur kontrak pintar, pemanggilan juga sangat merepotkan. Tentu saja, sebagai pengusul EIP-1962, Matter Labs pada dasarnya telah menyelesaikan pekerjaan pengembangan algoritma kurva elips dan menyediakan implementasi referensi dalam Rust / Go / C++.
Untuk menyelesaikan masalah EIP-1962, Matter Labs mengajukan beberapa EIP pemisahan EIP-1962 pada bulan Februari 2020, di mana EIP ini sebagian mewarisi antarmuka EIP-1962. EIP ini mencakup:
Di antara beberapa EIP ini, yang paling penting adalah EIP-2537, karena lapisan konsensus juga menggunakan kurva BLS12-381. Baik EIP-1962 maupun EIP-2537 memiliki tujuan inti yang sama, yaitu untuk mewujudkan verifikasi tanda tangan BLS di lapisan konsensus dalam mainnet. Pada saat itu, ETH2 sedang mengembangkan desain kontrak setoran untuk lapisan konsensus. Dalam desain awal kontrak setoran, karena lapisan eksekusi tidak menyertakan algoritma verifikasi BLS, maka kontrak setoran tidak akan memverifikasi tanda tangan; tanda tangan BLS yang spesifik akan diverifikasi oleh lapisan konsensus setelah pengguna melakukan setoran. Jika ditemukan tidak benar (untuk validator baru), setoran akan gagal dan ETH yang disetorkan pengguna akan hilang.
Dalam konteks ini, pengembang inti ingin memperkenalkan BLS12-381 pre-assembly untuk menerapkan verifikasi tanda tangan dalam kontrak setoran, menghindari kemungkinan kerugian bagi pengguna yang menyetor dana ETH2. Ini juga merupakan alasan mengapa banyak pengembang saat itu tertarik pada EIP-1962 dan EIP-2537.
Ketika EIP-2537 baru saja diusulkan, Vitalik segera menemukan serangkaian masalah yang ada pada EIP tersebut:
Kritik ini hanya difokuskan pada konten dokumen EIP, setelah itu penulis EIP memberikan tanggapan dan diskusi. Kemudian, pada 6 Maret 2020, dalam Pertemuan Pengembang Inti Ethereum #82, pengembang inti Ethereum membahas EIP-2537. Dalam pertemuan ini, Vitalik berpendapat bahwa EIP-2537 dan EIP lainnya sangat efektif untuk bukti SNARK rekursif, dan dalam jangka panjang tidak akan merugikan Ethereum. Selain itu, pertemuan tersebut juga mengonfirmasi status prioritas EIP-2537, semua klien setuju untuk segera mengimplementasikan EIP-2537 dan merencanakan untuk menyelesaikan semua pengembangan sebelum pembaruan Berlin.
Kemudian, EIP-2537 menjadi tugas yang lebih prioritas. Pada 20 Maret 2020, dalam Pertemuan Pengembang Inti Ethereum #83, EIP-2537 masih menjadi proposal yang dibahas pertama kali. Pertemuan ini mengonfirmasi bahwa EIP-2537 menggantikan EIP-1962 sebagai proposal BLS inti dan menjadi daftar EIP pra-pemilihan untuk peningkatan Berlin ( yaitu Eligibility for Inclusion (EFI)).
Pada pertemuan Ethereum Core Devs Meeting #84 pada bulan April 2020, pertemuan tersebut secara resmi memasukkan EIP-2537 ke dalam upgrade hard fork Berlin, dan menetapkan timeline upgrade Berlin untuk pelaksanaan pada bulan April dan pengujian pada bulan Mei - Juni. Perlu dicatat bahwa dalam diskusi kali ini, EIP-2537 dicatat sebagai prioritas tertinggi.
Selanjutnya, EIP-2537 memasuki tahap pengembangan dan pengujian yang intensif, di mana hampir setiap pertemuan pengembang inti yang diadakan hampir 20 kali berikutnya melibatkan diskusi tentang EIP-2537. Sekarang, mari kita lihat masalah-masalah yang dibahas tentang EIP-2537 dalam setiap pertemuan.
Pada Rapat Pengembang Inti Ethereum #85, Danno dan Axic membahas masalah pengkodean ABI dari EIP-2537. Selanjutnya, para pengembang inti menyinkronkan keadaan implementasi saat ini, di mana karena pengusul EIP-2537, Matter Labs, sebelumnya telah menyelesaikan implementasi versi Rust, klien Besu menyatakan bahwa mereka telah hampir mengimplementasikan fungsi EIP-2537, tetapi pihak Geth menyatakan bahwa saat ini tidak ada yang bekerja untuk implementasi EIP-2537.
Dalam Rapat Pengembang Inti Ethereum #86, implementasi EIP-2537 disinkronkan kembali oleh berbagai implementasi node Ethereum, di mana Geth menyatakan telah menyelesaikan sebagian pekerjaan, tetapi masih ada banyak pekerjaan yang menunggu untuk diselesaikan.
Dalam Pertemuan Pengembang Inti Ethereum #87, inti dari pertemuan pengembang kali ini adalah masalah implementasi EIP-2537. Pengembang Geth menyatakan bahwa saat ini ada PR sepanjang 16000 baris yang mengimplementasikan EIP-2537, tetapi pengembang Geth tidak dapat memastikan apakah PR tersebut aman dan efektif dalam mengimplementasikan EIP-2537, sehingga pengembang hanya dapat menilai keadaan kode melalui pengujian fuzz yang paling sederhana dan kasar.
Pengembang Geth berkata: "Jadi reaksi insting saya adalah bahwa tidak ada kemungkinan Geth akan siap dengan operasi kurva BLS untuk peluncuran mainnet pada bulan Juli.", yang berarti Geth kemungkinan besar tidak akan menyelesaikan pengembangan terkait EIP-2537 sebelum waktu yang dijadwalkan di Berlin.
Hudson Jameson mengusulkan untuk mencari insinyur kriptografi untuk membantu tinjauan PR Geth, dan mengusulkan untuk menggunakan testnet untuk menguji keamanan implementasi EIP-2537. Karena saat ini tim pengembang ETH2 juga sedang mengimplementasikan verifikasi tanda tangan BLS, maka tim ETH2 bisa ikut serta dalam pengujian.
Di sini, kita perlu menambahkan pengetahuan latar belakang, yaitu implementasi PR EIP-2537 Geth menggunakan banyak kode assembly untuk memastikan efisiensi, dan bagian kode assembly ini sangat sulit untuk dibaca dan dipahami. Jadi, Alex Vlasov menyarankan untuk menghapus optimasi assembly kompleks di dalam PR untuk mengurangi kesulitan dalam peninjauan.
Kami telah memperkenalkan salah satu tujuan inti dari EIP-2537 di atas, yaitu untuk membantu kontrak setoran ETH2, tetapi dalam pertemuan kali ini, pengembang kontrak setoran menyatakan bahwa kontrak setoran yang tidak menggunakan EIP-2537 sudah diaudit, jadi beberapa pengembang mengusulkan sebaiknya tidak lagi meluncurkan kontrak setoran yang menggunakan EIP-2537.
Pada akhirnya, konferensi memutuskan untuk menambah jaringan uji YOLO, yang inti dari jaringan uji ini adalah untuk menguji EIP-2537. Faktanya, dalam konferensi kali ini, kita dapat melihat pentingnya EIP-2537 yang telah berkurang secara signifikan seiring dengan selesainya kontrak deposit, sementara pengembang Geth telah menganggap bahwa EIP ini sangat mungkin tidak akan terimplementasi sebelum peningkatan Berlin. Sepertinya tidak diterimanya EIP-2537 dalam peningkatan Berlin telah menjadi hal yang pasti.
Dalam Pertemuan Pengembang Inti Ethereum #88, pengembang Geth menemukan bahwa PR implementasi EIP-2537 memiliki serangkaian masalah, dan pengembang menyatakan bahwa perlu dilakukan pengujian dan perbaikan lebih lanjut. Saat itu, ada dua implementasi EIP-2537 dalam sistem Geth, salah satu implementasi mencakup optimasi assembly, sementara implementasi lainnya sepenuhnya ditulis dalam bahasa Go. Beberapa pengembang mengusulkan untuk langsung menggunakan versi yang ditulis dalam bahasa Go untuk mengurangi kesulitan dalam pemeriksaan kode.
Dalam Pertemuan Pengembang Inti Ethereum #89, masalah yang lebih serius terjadi, pengujian YOLO mengalami beberapa masalah, pengembang curiga bahwa masalah tersebut disebabkan oleh tanda tangan BLS, tetapi pengembang EIP2537 membantahnya, berpendapat bahwa masalah di jaringan pengujian bukan disebabkan oleh tanda tangan BLS. Kabar baik tentang EIP-2537 adalah bahwa kontrak setoran yang berbasis EIP-2537 telah selesai dikembangkan, dan kontrak tersebut sedang menunggu audit kontrak.
Dalam Rapat Pengembang Inti Ethereum #90 内,这次会议锁定了 7 月份上线 Berlin 升级的 DDL。当然,这次会议另一个有趣的论点是客户端多样性问题,在此次会议中,开发者主要讨论了 Geth 占据主导地位的情况,并且有开发者提议冻结当前 EIP 实现来降低其他客户端的开发成本。更加有趣的是,在 #91, seorang pengembang mengusulkan untuk menggunakan solusi modular guna mengurangi biaya pengembangan dan meningkatkan keberagaman klien. Jika pembaca tertarik pada keberagaman klien Ethereum, mereka dapat membaca catatan dari dua rapat ini.
Dalam Pertemuan Pengembang Inti Ethereum #92, 2537 masih dikonfirmasi sebagai EIP yang diperlukan untuk peningkatan Berlin.
Dalam Rapat Pengembang Inti Ethereum #96, berdasarkan Celo, EIP-2537 dan EIP-2539 telah dimasukkan ke dalam pembaruan hard fork jaringan mereka, sehingga Matter Labs berharap EIP-2539 yang diajukan bersamaan dengan EIP-2537 juga dapat diuji di jaringan pengujian YOLO v2 dan masuk ke dalam pembaruan Berlin. Namun, pengembang Geth menolak, menganggap bahwa EIP-2537 saat ini belum diuji secara lengkap di dalam Geth. Akhirnya, keputusan rapat adalah untuk tidak menambahkan 2696 ke dalam pembaruan Berlin, dan akan dibahas di masa depan.
Dalam Pertemuan Pengembang Inti Ethereum #99, pertemuan ini memutuskan untuk mengeluarkan EIP-2537 dari jaringan pengujian YOLO v3 dan peningkatan Berlin. Alasan utama adalah EIP-2537 telah membuang terlalu banyak waktu pengembang inti, yang mengakibatkan pengembangan EIP lain dalam peningkatan Berlin terhambat. Faktor sekunder adalah bahwa Yayasan Ethereum telah mengusulkan EVM384 sebagai pengganti EIP-2537, di mana EVM 384 menyediakan solusi perhitungan kurva elips yang lebih umum. Namun, pengembang inti mengekspresikan kekhawatiran tentang masalah keamanan dalam diskusi pertemuan.
Isi di atas adalah perjalanan awal EIP-2537, kita dapat melihat bahwa EIP-2537 awalnya merupakan salah satu EIP terpenting dalam peningkatan Berlin, namun karena masalah implementasi akhirnya dibatalkan. Terakhir, pada April 2021, Ethereum menyelesaikan peningkatan Berlin, di mana EIP-2565 dan lain-lain yang termasuk dalam inti peningkatan sebenarnya tidak terlalu kompleks, tampaknya peningkatan Berlin agak terlihat tipis, ini karena EIP-2537 yang paling kompleks dan inti dikeluarkan dari peningkatan Berlin.
Perkembangan Selanjutnya
Seperti yang kita ketahui, setiap peningkatan Ethereum selalu memiliki usulan inti, seperti peningkatan Berlin yang diikuti oleh peningkatan London yang memperkenalkan usulan biaya transaksi terpenting dalam sejarah Ethereum, EIP-1559. Untuk EIP-2537 yang pernah menjadi usulan inti, sulit untuk memasukkan usulan ini dalam peningkatan berikutnya.
Dalam pembaruan London setelah Berlin, pengembang di issues#369 曾考虑在 London 升级中增加 EIP-2537。在 Ethereum Core Devs Meeting #109 menyinkronkan status pengembangan EIP-2537 saat ini. Pada saat itu, karena menggunakan pustaka lain untuk mengimplementasikan EIP-2537, muncul diskusi tentang penggunaan gas untuk EIP-2537. Sementara itu, ada pengembang yang mengusulkan penggunaan EVM384 sebagai pengganti EIP-2537. Namun, pada pertemuan Ethereum Core Devs #111 di bulan April 2021, EIP-2537 dikeluarkan dari pembaruan London karena kompleksitasnya. Kompleksitas inti terletak pada fakta bahwa implementasi standar EIP-2537 mengganti pustaka yang diandalkan, yang menyebabkan kemungkinan perubahan dalam penetapan harga gas, dan implementasi klien yang berbeda memerlukan waktu yang cukup lama untuk mengevaluasi kembali konsumsi gas.
Pada bulan Juni 2021, EIP-2537 secara resmi diusulkan untuk dimasukkan ke dalam peningkatan Shanghai dalam issues#343. Namun, perlu dicatat bahwa setelah peningkatan London, sebenarnya peningkatan Pairs atau yang disebut sebagai The Merge telah menyita banyak waktu para pengembang, di mana para pengembang lapisan eksekusi perlu menulis banyak kode untuk melaksanakan peningkatan PoS. Pada bulan September 2022, peningkatan Pairs selesai, dan para pengembang lapisan eksekusi akhirnya memiliki kesempatan untuk melanjutkan diskusi tentang beberapa tujuan peningkatan Shanghai.
Pada bulan November 2022, dalam Pertemuan Pengembang Inti Ethereum #150, sempat dibahas apakah EIP-2537 akan dimasukkan dalam upgrade Shanghai, tetapi para pengembang berpendapat bahwa EIP-2537 perlu ditunda, karena inti dari upgrade Shanghai adalah mendukung penarikan PoS. Akhirnya, EIP-2537 tidak dimasukkan ke dalam upgrade Shanghai yang berfokus pada fungsi penarikan.
Lebih menyedihkan lagi, pembaruan Cancun belum pernah mendiskusikan EIP-2537, karena inti dari pembaruan Cancun adalah dukungan node lapisan eksekusi untuk EIP-4844. EIP-4844 menyediakan Blob untuk lapisan kedua Ethereum agar lapisan kedua dapat menggunakan Ethereum sebagai lapisan ketersediaan data.
Akhirnya, pada Pertemuan Pengembang Inti Ethereum #181 pada Februari 2024, para pengembang membahas untuk memasukkan EIP-2537 dalam pembaruan Pectra, dan saat itu para pengembang percaya bahwa implementasi EIP-2537 bukanlah masalah, hanya beberapa masalah terkait penetapan harga konsumsi Gas.
Pada Pertemuan Pengembang Inti Ethereum pada 19 Desember 2024, #202 内,Nethermind 开发者最终确定了 EIP-2537 的定价模型。是的,作为 EIP-2537 的最初提案者 Matter Labs 此时已经近乎退出了讨论。在随后的,2025 年 1 月的 Ethereum Core Devs Meeting #203, para pengembang membahas termasuk penetapan kembali harga untuk BLS pra-kompilasi, pengembang Geth Jared Wasinger menyarankan untuk meningkatkan biaya gas sebesar 20%, dan mendapatkan dukungan dari pengujian dasar tim Besu.
Ringkasan
Terlihat bahwa apakah EIP dimasukkan dalam upgrade Ethereum, "tentu saja harus bergantung pada usaha sendiri, tetapi juga harus mempertimbangkan perjalanan sejarah". Setiap upgrade Ethereum memiliki tema tersendiri, seperti EIP-2537 yang pernah menjadi EIP terpenting dalam upgrade Berlin, tetapi diabaikan karena kesulitan dan kompleksitas implementasinya. Setelah itu, Ethereum memasuki proses sejarah PoS, EIP lapisan eksekusi murni yang kompleks tidak mendapat perhatian, sementara banyak EIP eksekusi yang terkait dengan PoS dianggap sebagai tujuan upgrade inti, yang menyebabkan EIP-2537 tidak diterima dalam waktu yang lama.