EIP-2537 adalah instruksi prarangka EVM yang ditambahkan dalam pembaruan cabang Pectra terbaru. Instruksi ini menambah berbagai fungsi perhitungan pada kurva BLS12-381 untuk EVM, seperti perhitungan pasangan di atas domain kurva.
EIP-2573 pertama kali diajukan pada tahun 2020, dan baru dikonfirmasi untuk dimasukkan ke dalam pembaruan Ethereum pada tahun 2025. Artikel ini terutama membahas sejarah tata kelola EIP-2537, menyelidiki mengapa butuh waktu 5 tahun untuk mengadopsi proposal ini dalam pembaruan.
Latar Belakang Proposal
Pada bulan Januari 2017, Vitalik Buterin pertama kali memperkenalkan algoritma pemetaan dan kurva alt_bn128 di Exploring Elliptic Curve Pairings. Kemudian pada bulan Februari 2017, Vitalik Buterin dan Christian Reitwiessner mengajukan proposal EIP-196 dan EIP-197, yang berisi penambahan dukungan perhitungan kurva alt_bn128 ke EVM.
Dalam pembaruan Byzantium pada bulan Oktober 2017, alt_bn128 kurva secara resmi dimasukkan. Secara sederhana, alt_bn128 untuk pertama kalinya mengimplementasikan perhitungan pasangan kurva dalam domain kurva di dalam EVM, yang memungkinkan verifikasi bukti ZK-Snarks dapat dilakukan di dalam EVM.
Namun seiring dengan perkembangan kriptografi, pada November 2017, tim pengembang zcash pertama kali memberikan kurva BLS12-381 dalam BLS12-381: New zk-SNARK Elliptic Curve Construction. Dibandingkan dengan alt_bn128, BLS12-381 memiliki tingkat keamanan yang lebih tinggi dan performa yang lebih baik. Cukup banyak protokol blockchain setelah itu menggunakan kurva BLS12-381 dan meninggalkan kurva alt_bn128.
Pada Mei 2018, Justin Drake menerbitkan artikel "Pragmatic signature aggregation with BLS" di ethresear, yang menunjukkan bahwa di masa depan PoS dan peningkatan shard Ethereum dapat menggunakan algoritma multi-tanda tangan BLS berbasis kurva BLS12-381. Pada saat itu, peneliti Ethereum berharap menggunakan EIP-1011 untuk menyelesaikan 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, peningkatan ETH2 di kemudian hari juga akhirnya menggunakan kurva BLS12-381.
Seiring dengan pengembangan ETH2, BLS12-381 yang digunakan oleh ETH2 mulai dipanggil untuk dimasukkan ke dalam lapisan eksekusi ETH. Pada bulan Februari 2020, beberapa peneliti mengusulkan EIP-2537 dan berharap proposal tersebut dapat diuji di testnet ETH2. Penulis EIP-2537, Alex Stokes, dalam artikel What eth2 needs from eth1 over the next six months menyerukan agar EIP-2537 dimasukkan dalam hard fork Berlin.
Menariknya, penulis EIP-2537 juga merupakan salah satu pendiri Matter Labs, dan produk paling terkenal dari Matter Labs adalah ZKSync.
Berlin kerusuhan
Sebelum membahas konten lebih lanjut, kita perlu terlebih dahulu memperkenalkan EIP-1962. EIP-1962 adalah proposal pertama tentang pra-assembly pasangan 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 pre-assembly sekaligus untuk menangani berbagai kurva. Namun, setelah proposal ini lahir, cukup banyak pengembang mempertanyakan bahwa proposal ini terlalu kompleks sehingga sulit bagi pengembang untuk diimplementasikan. Selain itu, karena EIP-1962 sangat umum, panggilan juga sangat merepotkan bagi insinyur kontrak pintar. 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 mengusulkan beberapa pemisahan EIP-1962 pada Februari 2020, di mana EIP-EIP ini sebagian mewarisi antarmuka EIP-1962. EIP-EIP tersebut mencakup:
EIP-2537 menyediakan dukungan untuk BLS12-381
EIP-2539 memberikan dukungan untuk BLS12-377
PR#2541 menyediakan kurva BLS12-377 (Zexe ), tetapi perlu dicatat bahwa proposal ini tidak mendapatkan nomor EIP akhir, sehingga tidak dapat ditemukan di situs resmi dokumen EIP.
Yang paling penting dari EIP ini adalah EIP-2537, karena lapisan konsensus juga menggunakan kurva BLS12-381. Tujuan inti EIP-1962 dan EIP-2537 adalah untuk mengimplementasikan verifikasi tanda tangan BLS pada lapisan konsensus di dalam mainnet. Pada saat itu, ETH2 sedang mengembangkan desain kontrak deposit untuk lapisan konsensus. Ketika kontrak deposit awalnya dirancang, karena lapisan eksekusi tidak mengandung algoritma verifikasi BLS, kontrak deposit tidak akan memverifikasi tanda tangan, tanda tangan BLS tertentu akan diverifikasi oleh lapisan konsensus setelah deposit pengguna, jika ditemukan salah (untuk validator baru), deposit akan gagal dan ETH yang disetorkan pengguna akan hilang.
Dalam konteks ini, pengembang inti ingin memperkenalkan pra-assemble BLS12-381 untuk mewujudkan verifikasi tanda tangan dalam kontrak deposit, guna menghindari kemungkinan kerugian bagi pengguna yang menyimpan dana ETH2. Inilah juga alasan mengapa banyak pengembang saat itu memperhatikan EIP-1962 dan EIP-2537.
Ketika EIP-2537 baru saja diajukan, Vitalik segera menemukan serangkaian masalah yang ada pada EIP tersebut:
Pertanyaan ini berfokus pada isi dokumen EIP, yang kemudian ditanggapi dan didiskusikan oleh penulis EIP. Selanjutnya, pada 6 Maret 2020, pengembang inti Ethereum membahas EIP-2537 #82会议中 Pertemuan Pengembang Inti Ethereum. Selama sesi ini, Vitalik berpendapat bahwa EIP seperti EIP-2537 sangat efektif untuk bukti SNARK rekursif dan tidak merusak Ethereum dalam jangka panjang. Pada saat yang sama, prioritas EIP-2537 dikonfirmasi, dan semua klien setuju untuk menerapkan EIP-2537 sesegera mungkin dan berencana untuk menyelesaikan semua pengembangan sebelum peningkatan Berlin.
Selanjutnya, EIP-2537 menjadi tugas dengan prioritas yang lebih tinggi. Pada 20 Maret 2020, dalam Pertemuan Pengembang Inti Ethereum #83, EIP-2537 masih menjadi proposal yang pertama kali dibahas. Pertemuan ini mengonfirmasi bahwa EIP-2537 menggantikan EIP-1962 sebagai proposal BLS inti dan menjadi daftar EIP pra-kualifikasi untuk peningkatan Berlin ( yaitu Eligibility for Inclusion (EFI)).
Pada pertemuan Ethereum Core Devs Meeting #84 di bulan April 2020, pertemuan tersebut secara resmi memasukkan EIP-2537 ke dalam upgrade hard fork Berlin, dan juga menetapkan jadwal upgrade Berlin untuk dilaksanakan pada bulan April dan pengujian pada bulan Mei - Juni. Perlu dicatat, dalam diskusi ini, EIP-2537 dicatat sebagai hal yang paling prioritas.
Selanjutnya, EIP-2537 memasuki tahap pengembangan dan pengujian yang besar, di mana hampir setiap pertemuan pengembang inti yang diadakan kemudian, sekitar 20 kali, membahas EIP-2537. Berikutnya, kita dapat melihat masalah apa saja yang dibahas tentang EIP-2537 dalam setiap pertemuan.
Dalam Pertemuan Pengembang Inti Ethereum #85, Danno dan Axic mendiskusikan masalah pengkodean ABI dari EIP-2537. Selanjutnya, para pengembang inti menyelaraskan 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 fitur EIP-2537, tetapi pihak Geth menyatakan bahwa saat ini tidak ada yang bekerja untuk implementasi EIP-2537.
Dalam Pertemuan Pengembang Inti Ethereum #86, berbagai implementasi node Ethereum sekali lagi menyinkronkan status implementasi EIP-2537, 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 untuk implementasi EIP-2537, tetapi pengembang Geth tidak dapat memastikan apakah PR tersebut merupakan implementasi yang aman dan efektif dari EIP-2537, sehingga pengembang hanya dapat menggunakan pengujian fuzz yang paling sederhana untuk menilai keadaan kode.
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." yaitu Geth kemungkinan besar tidak dapat menyelesaikan pengembangan terkait EIP-2537 sebelum waktu yang dijadwalkan di Berlin.
Hudson Jameson mengusulkan untuk mencari insinyur kriptografi untuk membantu tinjauan PR Geth, dan juga mengusulkan untuk menggunakan jaringan uji untuk menguji keamanan implementasi EIP-2537. Karena pada saat ini tim pengembang ETH2 juga sedang mengimplementasikan verifikasi tanda tangan BLS, maka tim ETH2 dapat berpartisipasi dalam pengujian.
Di sini, kita perlu menambahkan pengetahuan latar belakang, yaitu PR implementasi EIP-2537 Geth menggunakan banyak kode assembly untuk memastikan efisiensi, bagian kode assembly ini sangat sulit dibaca dan dipahami. Jadi Alex Vlasov menyarankan untuk menghapus optimasi assembly yang kompleks di dalam PR untuk mengurangi kesulitan dalam peninjauan.
Kami telah memperkenalkan salah satu tujuan inti dari EIP-2537 adalah untuk membantu kontrak setoran ETH2, tetapi dalam pertemuan kali ini, pengembang kontrak setoran menyatakan bahwa kontrak setoran yang tidak menggunakan EIP-2537 telah diaudit, sehingga beberapa pengembang mengusulkan sebaiknya tidak meluncurkan kontrak setoran yang menggunakan EIP-2537.
Pada akhirnya, konferensi memutuskan untuk menambahkan jaringan pengujian YOLO, yang inti dari jaringan ini adalah untuk menguji EIP-2537. Faktanya, dalam konferensi kali ini, kita dapat melihat bahwa pentingnya EIP-2537 telah berkurang secara signifikan seiring dengan selesainya kontrak setoran, sementara pengembang Geth telah menganggap bahwa EIP ini sangat mungkin tidak akan dapat direalisasikan sebelum peningkatan Berlin. Sepertinya EIP-2537 tidak diterima dalam peningkatan Berlin sudah menjadi kepastian.
Dalam Pertemuan Pengembang Inti Ethereum #88, pengembang Geth menemukan bahwa PR implementasi EIP-2537 memiliki serangkaian masalah, dan pengembang menyatakan bahwa masih perlu dilakukan pengujian dan perbaikan lebih lanjut. Saat ini, ada dua implementasi EIP-2537 dalam sistem Geth, di mana satu implementasi mencakup optimisasi assembly, sedangkan implementasi lainnya ditulis sepenuhnya dalam bahasa go. Beberapa pengembang mengusulkan untuk langsung menggunakan versi yang ditulis dalam bahasa go untuk mengurangi kesulitan dalam pemeriksaan kode.
Dalam Rapat Pengembang Inti Ethereum #89, masalah yang lebih serius muncul, pengujian YOLO mengalami beberapa masalah, para pengembang mencurigai masalah tersebut disebabkan oleh tanda tangan BLS, tetapi pengembang EIP2537 membantah hal ini, berpendapat bahwa masalah di jaringan pengujian tidak disebabkan oleh tanda tangan BLS. Kabar baik untuk EIP-2537 adalah bahwa kontrak deposito yang berbasis EIP-2537 hampir selesai dikembangkan, 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 untuk mengurangi biaya pengembangan guna meningkatkan keragaman klien. Jika pembaca tertarik dengan keragaman klien Ethereum, mereka dapat membaca catatan dari dua pertemuan ini.
Dalam Pertemuan Pengembang Inti Ethereum #92, 2537 masih dikonfirmasi sebagai EIP yang diperlukan untuk peningkatan Berlin.
Dalam Rapat Pengembang Inti Ethereum #96, Celo telah mengintegrasikan EIP-2537 dan EIP-2539 dalam peningkatan hard fork jaringannya. Oleh karena itu, Matter Labs berharap untuk menguji EIP-2539 yang diajukan bersamaan dengan EIP-2537 di jaringan percobaan YOLO v2 dan memasukkannya ke dalam peningkatan Berlin. Namun, pengembang Geth menentang, berpendapat bahwa EIP-2537 saat ini belum sepenuhnya diuji di dalam Geth. Akhirnya, rapat memutuskan untuk tidak menambahkan 2696 dalam peningkatan Berlin, dan akan dibahas di masa depan.
Dalam Pertemuan Pengembang Inti Ethereum #99, keputusan diambil untuk mengeluarkan EIP-2537 dari jaringan uji YOLO v3 dan pembaruan Berlin. Alasan utama adalah EIP-2537 membuang terlalu banyak waktu pengembang inti, mengakibatkan pengembangan EIP lainnya dalam pembaruan Berlin terhambat. Faktor sekunder adalah bahwa Yayasan Ethereum telah mengusulkan EVM384 sebagai pengganti EIP-2537, yang menyediakan solusi perhitungan kurva elips yang lebih umum. Namun, pengembang inti mengungkapkan kekhawatiran tentang masalah keamanan dalam diskusi pertemuan.
Konten di atas adalah perjalanan awal EIP-2537. Kita dapat melihat bahwa EIP-2537 pada awalnya adalah salah satu EIP terpenting dalam upgrade Berlin, namun karena masalah implementasi akhirnya dibatalkan. Akhirnya, pada bulan April 2021, Ethereum menyelesaikan upgrade Berlin, di mana EIP-2565 yang termasuk dalam inti upgrade sebenarnya tidak terlalu rumit. Tampaknya upgrade Berlin sedikit sederhana, ini karena EIP-2537 yang paling kompleks dikeluarkan dari upgrade Berlin.
perkembangan selanjutnya
Sebagaimana diketahui, setiap pembaruan Ethereum akan memiliki proposal inti, seperti pembaruan London setelah pembaruan Berlin yang memperkenalkan proposal biaya transaksi terpenting dalam sejarah Ethereum, EIP-1559. Untuk EIP-2537 yang pernah menjadi proposal inti, sulit bagi pembaruan berikutnya untuk mengikutsertakan proposal ini.
Dalam peningkatan London pasca-Berlin, para pengembang menyinkronkan pengembangan EIP-2537 saat ini di issues#369曾考虑在 London 升级中增加 EIP-2537。在Ethereum Core Devs Meeting #109, dan pada saat ini memperkenalkan diskusi tentang penggunaan gas untuk EIP-2537 karena penggunaan perpustakaan lain untuk mengimplementasikan EIP-2537. Pada saat yang sama, beberapa pengembang telah mengusulkan untuk mengganti EIP-2537 dengan EVM384. Namun, #111内 Rapat Pengembang Inti Ethereum pada April 2021, EIP-2537 dipindahkan dari peningkatan London karena kompleksitas. Kompleksitas inti terletak pada penggantian pustaka dependen implementasi standar EIP-2537, yang mengarah pada kemungkinan perubahan harga gas dan cukup banyak waktu bagi implementasi klien yang berbeda untuk mengevaluasi kembali konsumsi gas.
Pada bulan Juni 2021, isu #343 secara resmi mengusulkan untuk memasukkan EIP-2537 ke dalam upgrade Shanghai. Namun, perlu dicatat bahwa setelah upgrade London, sebenarnya upgrade Pairs atau yang dikenal sebagai The Merge memakan banyak waktu pengembang, pengembang lapisan eksekusi perlu menulis banyak kode untuk mewujudkan upgrade PoS. Pada bulan September 2022, upgrade Pairs selesai, pengembang lapisan eksekusi akhirnya memiliki kesempatan untuk melanjutkan diskusi mengenai beberapa tujuan upgrade Shanghai.
Pada bulan November 2022, dalam Pertemuan Pengembang Inti Ethereum #150, sempat dibahas apakah EIP-2537 akan dimasukkan dalam pembaruan Shanghai, tetapi para pengembang percaya bahwa EIP-2537 perlu ditunda, karena inti dari pembaruan Shanghai adalah mendukung penarikan PoS. Akhirnya, EIP-2537 tidak dimasukkan ke dalam pembaruan Shanghai yang berfokus pada fungsi penarikan.
Lebih tragisnya, pembaruan Cancun tidak pernah membahas EIP-2537, karena inti dari pembaruan Cancun adalah dukungan node lapisan eksekusi untuk EIP-4844. EIP-4844 menyediakan Blob untuk Ethereum layer dua agar layer dua dapat menggunakan Ethereum sebagai lapisan ketersediaan data.
Akhirnya, pada Pertemuan Pengembang Inti Ethereum #181 di bulan Februari 2024, para pengembang membahas untuk memasukkan EIP-2537 dalam pembaruan Pectra, dan pada saat itu para pengembang percaya bahwa implementasi EIP-2537 sudah bukan masalah lagi, 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 ulang harga BLS precompile, pengembang Geth Jared Wasinger menyarankan untuk meningkatkan biaya gas sebesar 20%, dan didukung oleh pengujian dasar tim Besu.
Ringkasan
| Tanggal | Acara |
| --- | --- |
| Februari 2020 | Pembagian EIP-1962 secara resmi mengusulkan EIP-2537 |
| April 2020 - Oktober 2020 | Beberapa kali pertemuan pengembang membahas masalah implementasi EIP-2537, dan akhirnya ditinggalkan dalam peningkatan Berlin karena tidak dapat diimplementasikan |
| Maret 2021 - April 2021 | Diskusi rapat pengembang mengenai masalah biaya gas EIP-2537, akhirnya ditinggalkan karena kompleksitas dalam pembaruan London |
| November 2022 | Rapat pengembang membahas apakah akan memasukkan pembaruan Shanghai, tanpa hasil |
| Februari 2024 | Para pengembang percaya bahwa EIP-2537 tidak memiliki masalah implementasi, namun masih ada beberapa masalah biaya gas, dan mereka percaya dapat dimasukkan dalam peningkatan Pectra |
| Desember 2024 - Januari 2025 | Pertemuan pengembang membahas model perhitungan biaya yang konkret, secara resmi menyelesaikan masalah biaya EIP-2537 |
Dapat dilihat, apakah EIP dimasukkan dalam peningkatan Ethereum, "tentu saja harus bergantung pada usaha sendiri, tetapi juga harus mempertimbangkan perjalanan sejarah." Setiap peningkatan Ethereum memiliki tema sendiri, seperti EIP-2537 yang pernah menjadi EIP terpenting dalam peningkatan Berlin, tetapi dibatalkan karena tingkat kesulitan dan kompleksitas implementasinya. Selanjutnya, Ethereum memasuki proses sejarah PoS, di mana EIP lapisan eksekusi murni yang kompleks tidak mendapat perhatian, sementara banyak EIP eksekusi yang terkait dengan PoS dianggap sebagai tujuan peningkatan 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 Tata Kelola Ethereum: Proses Pra-Pengumpulan EIP-2537
Penulis: shew
Ringkasan
EIP-2537 adalah instruksi prarangka EVM yang ditambahkan dalam pembaruan cabang Pectra terbaru. Instruksi ini menambah berbagai fungsi perhitungan pada kurva BLS12-381 untuk EVM, seperti perhitungan pasangan di atas domain kurva.
EIP-2573 pertama kali diajukan pada tahun 2020, dan baru dikonfirmasi untuk dimasukkan ke dalam pembaruan Ethereum pada tahun 2025. Artikel ini terutama membahas sejarah tata kelola EIP-2537, menyelidiki mengapa butuh waktu 5 tahun untuk mengadopsi proposal ini dalam pembaruan.
Latar Belakang Proposal
Pada bulan Januari 2017, Vitalik Buterin pertama kali memperkenalkan algoritma pemetaan dan kurva
alt_bn128
di Exploring Elliptic Curve Pairings. Kemudian pada bulan Februari 2017, Vitalik Buterin dan Christian Reitwiessner mengajukan proposal EIP-196 dan EIP-197, yang berisi penambahan dukungan perhitungan kurvaalt_bn128
ke EVM.Dalam pembaruan Byzantium pada bulan Oktober 2017,
alt_bn128
kurva secara resmi dimasukkan. Secara sederhana,alt_bn128
untuk pertama kalinya mengimplementasikan perhitungan pasangan kurva dalam domain kurva di dalam EVM, yang memungkinkan verifikasi bukti ZK-Snarks dapat dilakukan di dalam EVM.Namun seiring dengan perkembangan kriptografi, pada November 2017, tim pengembang zcash pertama kali memberikan kurva
BLS12-381
dalam BLS12-381: New zk-SNARK Elliptic Curve Construction. Dibandingkan denganalt_bn128
,BLS12-381
memiliki tingkat keamanan yang lebih tinggi dan performa yang lebih baik. Cukup banyak protokol blockchain setelah itu menggunakan kurvaBLS12-381
dan meninggalkan kurvaalt_bn128
.Pada Mei 2018, Justin Drake menerbitkan artikel "Pragmatic signature aggregation with BLS" di ethresear, yang menunjukkan bahwa di masa depan PoS dan peningkatan shard Ethereum dapat menggunakan algoritma multi-tanda tangan BLS berbasis kurva
BLS12-381
. Pada saat itu, peneliti Ethereum berharap menggunakan EIP-1011 untuk menyelesaikan 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, peningkatan ETH2 di kemudian hari juga akhirnya menggunakan kurvaBLS12-381
.Seiring dengan pengembangan ETH2,
BLS12-381
yang digunakan oleh ETH2 mulai dipanggil untuk dimasukkan ke dalam lapisan eksekusi ETH. Pada bulan Februari 2020, beberapa peneliti mengusulkan EIP-2537 dan berharap proposal tersebut dapat diuji di testnet ETH2. Penulis EIP-2537, Alex Stokes, dalam artikel What eth2 needs from eth1 over the next six months menyerukan agar EIP-2537 dimasukkan dalam hard fork Berlin.Menariknya, penulis EIP-2537 juga merupakan salah satu pendiri Matter Labs, dan produk paling terkenal dari Matter Labs adalah ZKSync.
Berlin kerusuhan
Sebelum membahas konten lebih lanjut, kita perlu terlebih dahulu memperkenalkan EIP-1962. EIP-1962 adalah proposal pertama tentang pra-assembly pasangan domain kurva elips yang diajukan oleh Matter Labs pada April 2019, yang mendukung tiga kurva, yaitu:
EIP ini bersiap untuk menambahkan 10 instruksi pre-assembly sekaligus untuk menangani berbagai kurva. Namun, setelah proposal ini lahir, cukup banyak pengembang mempertanyakan bahwa proposal ini terlalu kompleks sehingga sulit bagi pengembang untuk diimplementasikan. Selain itu, karena EIP-1962 sangat umum, panggilan juga sangat merepotkan bagi insinyur kontrak pintar. 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 mengusulkan beberapa pemisahan EIP-1962 pada Februari 2020, di mana EIP-EIP ini sebagian mewarisi antarmuka EIP-1962. EIP-EIP tersebut mencakup:
Yang paling penting dari EIP ini adalah EIP-2537, karena lapisan konsensus juga menggunakan kurva BLS12-381. Tujuan inti EIP-1962 dan EIP-2537 adalah untuk mengimplementasikan verifikasi tanda tangan BLS pada lapisan konsensus di dalam mainnet. Pada saat itu, ETH2 sedang mengembangkan desain kontrak deposit untuk lapisan konsensus. Ketika kontrak deposit awalnya dirancang, karena lapisan eksekusi tidak mengandung algoritma verifikasi BLS, kontrak deposit tidak akan memverifikasi tanda tangan, tanda tangan BLS tertentu akan diverifikasi oleh lapisan konsensus setelah deposit pengguna, jika ditemukan salah (untuk validator baru), deposit akan gagal dan ETH yang disetorkan pengguna akan hilang.
Dalam konteks ini, pengembang inti ingin memperkenalkan pra-assemble BLS12-381 untuk mewujudkan verifikasi tanda tangan dalam kontrak deposit, guna menghindari kemungkinan kerugian bagi pengguna yang menyimpan dana ETH2. Inilah juga alasan mengapa banyak pengembang saat itu memperhatikan EIP-1962 dan EIP-2537.
Ketika EIP-2537 baru saja diajukan, Vitalik segera menemukan serangkaian masalah yang ada pada EIP tersebut:
Pertanyaan ini berfokus pada isi dokumen EIP, yang kemudian ditanggapi dan didiskusikan oleh penulis EIP. Selanjutnya, pada 6 Maret 2020, pengembang inti Ethereum membahas EIP-2537 #82会议中 Pertemuan Pengembang Inti Ethereum. Selama sesi ini, Vitalik berpendapat bahwa EIP seperti EIP-2537 sangat efektif untuk bukti SNARK rekursif dan tidak merusak Ethereum dalam jangka panjang. Pada saat yang sama, prioritas EIP-2537 dikonfirmasi, dan semua klien setuju untuk menerapkan EIP-2537 sesegera mungkin dan berencana untuk menyelesaikan semua pengembangan sebelum peningkatan Berlin.
Selanjutnya, EIP-2537 menjadi tugas dengan prioritas yang lebih tinggi. Pada 20 Maret 2020, dalam Pertemuan Pengembang Inti Ethereum #83, EIP-2537 masih menjadi proposal yang pertama kali dibahas. Pertemuan ini mengonfirmasi bahwa EIP-2537 menggantikan EIP-1962 sebagai proposal BLS inti dan menjadi daftar EIP pra-kualifikasi untuk peningkatan Berlin ( yaitu Eligibility for Inclusion (EFI)).
Pada pertemuan Ethereum Core Devs Meeting #84 di bulan April 2020, pertemuan tersebut secara resmi memasukkan EIP-2537 ke dalam upgrade hard fork Berlin, dan juga menetapkan jadwal upgrade Berlin untuk dilaksanakan pada bulan April dan pengujian pada bulan Mei - Juni. Perlu dicatat, dalam diskusi ini, EIP-2537 dicatat sebagai hal yang paling prioritas.
Selanjutnya, EIP-2537 memasuki tahap pengembangan dan pengujian yang besar, di mana hampir setiap pertemuan pengembang inti yang diadakan kemudian, sekitar 20 kali, membahas EIP-2537. Berikutnya, kita dapat melihat masalah apa saja yang dibahas tentang EIP-2537 dalam setiap pertemuan.
Dalam Pertemuan Pengembang Inti Ethereum #85, Danno dan Axic mendiskusikan masalah pengkodean ABI dari EIP-2537. Selanjutnya, para pengembang inti menyelaraskan 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 fitur EIP-2537, tetapi pihak Geth menyatakan bahwa saat ini tidak ada yang bekerja untuk implementasi EIP-2537.
Dalam Pertemuan Pengembang Inti Ethereum #86, berbagai implementasi node Ethereum sekali lagi menyinkronkan status implementasi EIP-2537, 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 untuk implementasi EIP-2537, tetapi pengembang Geth tidak dapat memastikan apakah PR tersebut merupakan implementasi yang aman dan efektif dari EIP-2537, sehingga pengembang hanya dapat menggunakan pengujian fuzz yang paling sederhana untuk menilai keadaan kode.
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." yaitu Geth kemungkinan besar tidak dapat menyelesaikan pengembangan terkait EIP-2537 sebelum waktu yang dijadwalkan di Berlin.
Hudson Jameson mengusulkan untuk mencari insinyur kriptografi untuk membantu tinjauan PR Geth, dan juga mengusulkan untuk menggunakan jaringan uji untuk menguji keamanan implementasi EIP-2537. Karena pada saat ini tim pengembang ETH2 juga sedang mengimplementasikan verifikasi tanda tangan BLS, maka tim ETH2 dapat berpartisipasi dalam pengujian.
Di sini, kita perlu menambahkan pengetahuan latar belakang, yaitu PR implementasi EIP-2537 Geth menggunakan banyak kode assembly untuk memastikan efisiensi, bagian kode assembly ini sangat sulit dibaca dan dipahami. Jadi Alex Vlasov menyarankan untuk menghapus optimasi assembly yang kompleks di dalam PR untuk mengurangi kesulitan dalam peninjauan.
Kami telah memperkenalkan salah satu tujuan inti dari EIP-2537 adalah untuk membantu kontrak setoran ETH2, tetapi dalam pertemuan kali ini, pengembang kontrak setoran menyatakan bahwa kontrak setoran yang tidak menggunakan EIP-2537 telah diaudit, sehingga beberapa pengembang mengusulkan sebaiknya tidak meluncurkan kontrak setoran yang menggunakan EIP-2537.
Pada akhirnya, konferensi memutuskan untuk menambahkan jaringan pengujian YOLO, yang inti dari jaringan ini adalah untuk menguji EIP-2537. Faktanya, dalam konferensi kali ini, kita dapat melihat bahwa pentingnya EIP-2537 telah berkurang secara signifikan seiring dengan selesainya kontrak setoran, sementara pengembang Geth telah menganggap bahwa EIP ini sangat mungkin tidak akan dapat direalisasikan sebelum peningkatan Berlin. Sepertinya EIP-2537 tidak diterima dalam peningkatan Berlin sudah menjadi kepastian.
Dalam Pertemuan Pengembang Inti Ethereum #88, pengembang Geth menemukan bahwa PR implementasi EIP-2537 memiliki serangkaian masalah, dan pengembang menyatakan bahwa masih perlu dilakukan pengujian dan perbaikan lebih lanjut. Saat ini, ada dua implementasi EIP-2537 dalam sistem Geth, di mana satu implementasi mencakup optimisasi assembly, sedangkan implementasi lainnya ditulis sepenuhnya dalam bahasa go. Beberapa pengembang mengusulkan untuk langsung menggunakan versi yang ditulis dalam bahasa go untuk mengurangi kesulitan dalam pemeriksaan kode.
Dalam Rapat Pengembang Inti Ethereum #89, masalah yang lebih serius muncul, pengujian YOLO mengalami beberapa masalah, para pengembang mencurigai masalah tersebut disebabkan oleh tanda tangan BLS, tetapi pengembang EIP2537 membantah hal ini, berpendapat bahwa masalah di jaringan pengujian tidak disebabkan oleh tanda tangan BLS. Kabar baik untuk EIP-2537 adalah bahwa kontrak deposito yang berbasis EIP-2537 hampir selesai dikembangkan, 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 untuk mengurangi biaya pengembangan guna meningkatkan keragaman klien. Jika pembaca tertarik dengan keragaman klien Ethereum, mereka dapat membaca catatan dari dua pertemuan ini.
Dalam Pertemuan Pengembang Inti Ethereum #92, 2537 masih dikonfirmasi sebagai EIP yang diperlukan untuk peningkatan Berlin.
Dalam Rapat Pengembang Inti Ethereum #96, Celo telah mengintegrasikan EIP-2537 dan EIP-2539 dalam peningkatan hard fork jaringannya. Oleh karena itu, Matter Labs berharap untuk menguji EIP-2539 yang diajukan bersamaan dengan EIP-2537 di jaringan percobaan YOLO v2 dan memasukkannya ke dalam peningkatan Berlin. Namun, pengembang Geth menentang, berpendapat bahwa EIP-2537 saat ini belum sepenuhnya diuji di dalam Geth. Akhirnya, rapat memutuskan untuk tidak menambahkan 2696 dalam peningkatan Berlin, dan akan dibahas di masa depan.
Dalam Pertemuan Pengembang Inti Ethereum #99, keputusan diambil untuk mengeluarkan EIP-2537 dari jaringan uji YOLO v3 dan pembaruan Berlin. Alasan utama adalah EIP-2537 membuang terlalu banyak waktu pengembang inti, mengakibatkan pengembangan EIP lainnya dalam pembaruan Berlin terhambat. Faktor sekunder adalah bahwa Yayasan Ethereum telah mengusulkan EVM384 sebagai pengganti EIP-2537, yang menyediakan solusi perhitungan kurva elips yang lebih umum. Namun, pengembang inti mengungkapkan kekhawatiran tentang masalah keamanan dalam diskusi pertemuan.
Konten di atas adalah perjalanan awal EIP-2537. Kita dapat melihat bahwa EIP-2537 pada awalnya adalah salah satu EIP terpenting dalam upgrade Berlin, namun karena masalah implementasi akhirnya dibatalkan. Akhirnya, pada bulan April 2021, Ethereum menyelesaikan upgrade Berlin, di mana EIP-2565 yang termasuk dalam inti upgrade sebenarnya tidak terlalu rumit. Tampaknya upgrade Berlin sedikit sederhana, ini karena EIP-2537 yang paling kompleks dikeluarkan dari upgrade Berlin.
perkembangan selanjutnya
Sebagaimana diketahui, setiap pembaruan Ethereum akan memiliki proposal inti, seperti pembaruan London setelah pembaruan Berlin yang memperkenalkan proposal biaya transaksi terpenting dalam sejarah Ethereum, EIP-1559. Untuk EIP-2537 yang pernah menjadi proposal inti, sulit bagi pembaruan berikutnya untuk mengikutsertakan proposal ini.
Dalam peningkatan London pasca-Berlin, para pengembang menyinkronkan pengembangan EIP-2537 saat ini di issues#369曾考虑在 London 升级中增加 EIP-2537。在Ethereum Core Devs Meeting #109, dan pada saat ini memperkenalkan diskusi tentang penggunaan gas untuk EIP-2537 karena penggunaan perpustakaan lain untuk mengimplementasikan EIP-2537. Pada saat yang sama, beberapa pengembang telah mengusulkan untuk mengganti EIP-2537 dengan EVM384. Namun, #111内 Rapat Pengembang Inti Ethereum pada April 2021, EIP-2537 dipindahkan dari peningkatan London karena kompleksitas. Kompleksitas inti terletak pada penggantian pustaka dependen implementasi standar EIP-2537, yang mengarah pada kemungkinan perubahan harga gas dan cukup banyak waktu bagi implementasi klien yang berbeda untuk mengevaluasi kembali konsumsi gas.
Pada bulan Juni 2021, isu #343 secara resmi mengusulkan untuk memasukkan EIP-2537 ke dalam upgrade Shanghai. Namun, perlu dicatat bahwa setelah upgrade London, sebenarnya upgrade Pairs atau yang dikenal sebagai The Merge memakan banyak waktu pengembang, pengembang lapisan eksekusi perlu menulis banyak kode untuk mewujudkan upgrade PoS. Pada bulan September 2022, upgrade Pairs selesai, pengembang lapisan eksekusi akhirnya memiliki kesempatan untuk melanjutkan diskusi mengenai beberapa tujuan upgrade Shanghai.
Pada bulan November 2022, dalam Pertemuan Pengembang Inti Ethereum #150, sempat dibahas apakah EIP-2537 akan dimasukkan dalam pembaruan Shanghai, tetapi para pengembang percaya bahwa EIP-2537 perlu ditunda, karena inti dari pembaruan Shanghai adalah mendukung penarikan PoS. Akhirnya, EIP-2537 tidak dimasukkan ke dalam pembaruan Shanghai yang berfokus pada fungsi penarikan.
Lebih tragisnya, pembaruan Cancun tidak pernah membahas EIP-2537, karena inti dari pembaruan Cancun adalah dukungan node lapisan eksekusi untuk EIP-4844. EIP-4844 menyediakan Blob untuk Ethereum layer dua agar layer dua dapat menggunakan Ethereum sebagai lapisan ketersediaan data.
Akhirnya, pada Pertemuan Pengembang Inti Ethereum #181 di bulan Februari 2024, para pengembang membahas untuk memasukkan EIP-2537 dalam pembaruan Pectra, dan pada saat itu para pengembang percaya bahwa implementasi EIP-2537 sudah bukan masalah lagi, 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 ulang harga BLS precompile, pengembang Geth Jared Wasinger menyarankan untuk meningkatkan biaya gas sebesar 20%, dan didukung oleh pengujian dasar tim Besu.
Ringkasan
| Tanggal | Acara | | --- | --- | | Februari 2020 | Pembagian EIP-1962 secara resmi mengusulkan EIP-2537 | | April 2020 - Oktober 2020 | Beberapa kali pertemuan pengembang membahas masalah implementasi EIP-2537, dan akhirnya ditinggalkan dalam peningkatan Berlin karena tidak dapat diimplementasikan | | Maret 2021 - April 2021 | Diskusi rapat pengembang mengenai masalah biaya gas EIP-2537, akhirnya ditinggalkan karena kompleksitas dalam pembaruan London | | November 2022 | Rapat pengembang membahas apakah akan memasukkan pembaruan Shanghai, tanpa hasil | | Februari 2024 | Para pengembang percaya bahwa EIP-2537 tidak memiliki masalah implementasi, namun masih ada beberapa masalah biaya gas, dan mereka percaya dapat dimasukkan dalam peningkatan Pectra | | Desember 2024 - Januari 2025 | Pertemuan pengembang membahas model perhitungan biaya yang konkret, secara resmi menyelesaikan masalah biaya EIP-2537 |
Dapat dilihat, apakah EIP dimasukkan dalam peningkatan Ethereum, "tentu saja harus bergantung pada usaha sendiri, tetapi juga harus mempertimbangkan perjalanan sejarah." Setiap peningkatan Ethereum memiliki tema sendiri, seperti EIP-2537 yang pernah menjadi EIP terpenting dalam peningkatan Berlin, tetapi dibatalkan karena tingkat kesulitan dan kompleksitas implementasinya. Selanjutnya, Ethereum memasuki proses sejarah PoS, di mana EIP lapisan eksekusi murni yang kompleks tidak mendapat perhatian, sementara banyak EIP eksekusi yang terkait dengan PoS dianggap sebagai tujuan peningkatan inti, yang menyebabkan EIP-2537 tidak diterima dalam waktu yang lama.