*Meneruskan Judul Asli ‘Epochs and slots all the way down: cara memberikan waktu konfirmasi transaksi yang lebih cepat kepada pengguna Ethereum’
Salah satu sifat penting dari pengalaman pengguna blockchain yang baik adalah waktu konfirmasi transaksi yang cepat. Saat ini, Ethereum sudah banyak meningkat dibandingkan lima tahun yang lalu. Terima kasih atas kombinasi dari EIP-1559dan waktu blok yang stabil setelahgabungan, transaksi yang dikirim oleh pengguna pada L1 dapat dikonfirmasi dengan andal dalam waktu 5-20 detik. Ini sekitar sebanding dengan pengalaman membayar dengan kartu kredit. Namun, ada nilai tambah dalam meningkatkan pengalaman pengguna lebih lanjut, dan ada beberapa aplikasi yang membutuhkan keterlambatan dalam rentang ratusan milidetik atau bahkan kurang. Posting ini akan membahas beberapa opsi praktis yang dimiliki oleh Ethereum.
Hari ini, Ethereum’s Gasperkonsensus menggunakan arsitektur slot dan epoch. Setiap slot 12 detik, sebagian kecil validator mempublikasikan suara pada kepala rantai, dan seiring berjalannya waktu 32 slot (6,4 menit), semua validator memiliki kesempatan untuk memberikan suara sekali. Suara-sura ini kemudian diinterpretasikan sebagai pesan secara samar-samar,Mirip PBFTalgoritma konsensus, yang setelah dua epoch (12,8 menit) memberikan jaminan ekonomi yang sangat kuat yang disebut finalitas.
Selama beberapa tahun terakhir, kami semakin tidak nyaman dengan pendekatan saat ini. Alasan utamanya adalah bahwa (i) ini rumit dan ada banyak bug interaksi antara mekanisme pemungutan suara slot-by-slot dan mekanisme finalitas epoch-by-epoch, dan (ii) 12,8 menit terlalu lama dan tidak ada yang peduli untuk menunggu begitu lama.
Finalitas satu slot menggantikan arsitektur ini dengan mekanisme yang jauh lebih mirip dengankonsensus Tendermint, di mana blok N difinalisasi sebelum blok N+1 dibuat. Deviasi utama dari Tendermint adalah bahwa kami tetap mempertahankan “Kelebihan kebocoranmekanisme, yang memungkinkan rantai tetap berjalan dan pulih jika lebih dari 1/3 validator offline.
Sebuah diagram dari yang diusulkan terkemuka desain keterakhir tunggal_
Tantangan utama dengan SSF adalah bahwa dengan polosnya, tampaknya menyiratkan bahwa setiap penambang Ethereum perlu mempublikasikan dua pesan setiap 12 detik, yang akan menjadi beban yang besar bagi rantai untuk ditangani. Ada ide-ide cerdasuntuk bagaimana cara mengurangi ini, termasuk yang sangat baruOrbit SSFNamun, meskipun ini meningkatkan UX secara signifikan dengan membuat "finalitas" datang lebih cepat, ini tidak mengubah fakta bahwa pengguna perlu menunggu 5-20 detik.
Selama beberapa tahun terakhir, Ethereum telah mengikuti sebuah roadmap yang berpusat pada rollup, merancang lapisan dasar Ethereum (L1) untuk mendukung ketersediaan datadan fungsionalitas lainnya yang kemudian dapat digunakan oleh protokol lapisan 2 seperti rollups(tetapi juga validiumsdanplasmasyang dapat memberikan pengguna tingkat keamanan yang sama seperti Ethereum, tetapi dalam skala yang jauh lebih tinggi.
Ini menciptakan sebuahpemisahan-kepentingandalam ekosistem Ethereum: Ethereum L1 dapat fokus pada ketahanan sensor, dapat diandalkan, stabil, dan mempertahankan serta meningkatkan tingkat inti fungsionalitas tertentu, dan L2 dapat fokus pada lebih langsung menjangkau pengguna - baik melalui berbagaibudayadan kompromi teknologi. Tetapi jika Anda melangkah ke arah ini, satu isu yang tak terhindarkan muncul: L2 ingin melayani pengguna yang menginginkan konfirmasi jauh lebih cepat dari 5-20 detik.
Sejauh ini, setidaknya dalam retorika, sudah menjadi tanggung jawab L2 untuk menciptakan jaringan "pengurutan terdesentralisasi" mereka sendiri. Sekelompok validator yang lebih kecil akan menandatangani blok, mungkin sekali setiap beberapa ratus milidetik, dan mereka akan meletakkan "taruhan" mereka di belakang blok tersebut. Akhirnya, header blok L2 ini dipublikasikan ke L1.
Set validator L2 bisa menipu: mereka bisa pertama-tama menandatangani blok B1, dan kemudian kemudian menandatangani blok yang konflik B2 dan mengonfirmasikannya ke rantai sebelum B1. Tetapi jika mereka melakukan ini, mereka akan tertangkap dan kehilangan deposit mereka. Dalam prakteknya, kita telah melihat versi terpusat dari ini, tetapi rollups telah lambat untuk mengembangkan jaringan pengurutan terdesentralisasi. Dan Anda bisa berpendapat bahwa menuntut L2 semua melakukan pengurutan terdesentralisasi adalah kesepakatan yang tidak adil: kita meminta rollups untuk pada dasarnya melakukan sebagian besar pekerjaan yang sama seperti menciptakan L1 baru. Untuk alasan ini dan alasan lainnya, Justin Drake telah mempromosikan cara untuk memberikan semua L2 (serta L1) akses ke mekanisme pra-konfirmasi bersama Ethereum-wide:berdasarkan pra-konfirmasi.
Pendekatan pra-konfirmasi berbasis mengasumsikan bahwa pengusul Ethereum akan menjadi pelaku yang sangat terampil untuk alasan terkait MEV (lihat di siniuntuk penjelasan saya tentang MEV, dan lihat jugatiket eksekusipendekatan berbasis pra-konfirmasi ini memanfaatkan kecanggihan ini dengan memberikan insentif kepada para pengusul yang canggih untuk menerima tanggung jawab dalam menawarkan pra-konfirmasi sebagai layanan.
Ide dasar adalah membuat protokol standar di mana seorang pengguna dapat menawarkan biaya tambahan sebagai imbalan untuk jaminan segera bahwa transaksi akan disertakan dalam blok berikutnya, bersama dengan mungkin klaim tentang hasil dari mengeksekusi transaksi tersebut. Jika penawar melanggar janji apa pun yang mereka buat kepada pengguna mana pun, mereka dapat dipotong.
Seperti yang dijelaskan, prekonfirmasi berbasis memberikan jaminan bagi transaksi L1. Jika rollup adalah "berbasis", maka semua blok L2 adalah transaksi L1, dan mekanisme yang sama dapat digunakan untuk memberikan pra-konfirmasi untuk semua L2.
Misalkan kita menerapkan finalitas satu slot. Kita menggunakan Orbit-seperti teknik untuk mengurangi jumlah validator yang menandatangani per slot, tetapi tidak terlalu banyak, sehingga kami juga dapat membuat kemajuan pada tujuan utama mengurangi minimum staking ETH 32. Akibatnya, mungkin waktu slot naik, menjadi 16 detik. Kami kemudian menggunakan pra-konfirmasi rollup, atau berdasarkan pra-konfirmasi, untuk memberikan jaminan yang lebih cepat kepada pengguna. Apa yang kami miliki sekarang? Sebuah arsitektur epoch-dan-slot.
Meme 'they're the same picture' sudah cukup sering digunakan saat ini, jadi saya akan menggunakan diagram lama yang saya gambar beberapa tahun lalu untuk menjelaskan arsitektur slot dan epoch Gasper serta diagram pra-konfirmasi L2 berdampingan, semoga hal tersebut dapat menggambarkan poinnya.
Ada alasan filosofis yang dalam mengapa arsitektur zaman dan slot tampaknya begitu sulit untuk dihindari: pada dasarnya membutuhkan waktu yang lebih sedikit untuk mencapai kesepakatan perkiraan tentang sesuatu, daripada untuk mencapai kesepakatan 'finalitas ekonomi' yang maksimal tentang hal itu.
Salah satu alasan sederhana adalah jumlah node. Sementara itu, linear lama @VitalikButerin/parametrizing-casper-the-decentralization-finality-time-overhead-tradeoff-3f2011672735">decentralization / finalitas time / overhead tradeoff terlihat lebih ringan sekarang karena agregasi BLS yang sangat dioptimalkan dan dalam waktu dekat ZK-STARKs, pada dasarnya masih benar bahwa:
Di Ethereum hari ini, slot 12 detik dibagi menjadi tiga sub-slot, untuk (i) publikasi dan distribusi blok, (ii) pengesahan, dan (iii) agregasi pengesahan. Jika jumlah attester jauh lebih rendah, kita bisa turun menjadi dua sub-slot dan memiliki waktu slot 8 detik. Faktor lain, dan secara realistis lebih besar, adalah "kualitas" node. Jika kita juga dapat mengandalkan subset node yang profesional untuk melakukan perkiraan kesepakatan (dan masih menggunakan validator penuh yang ditetapkan untuk finalitas), kita dapat secara masuk akal menurunkannya menjadi ~ 2 detik.
Oleh karena itu, bagi saya terasa bahwa (i) arsitektur slot-dan-epoch jelas benar, tetapi juga (ii) tidak semua arsitektur slot-dan-epoch diciptakan sama, dan ada nilai dalam menjelajahi ruang desain lebih sepenuhnya. Secara khusus, layak untuk menjelajahi opsi yang tidak terlalu terkait seperti Gasper, dan di mana sebaliknya ada pemisahan kepentingan yang lebih kuat antara kedua mekanisme tersebut.
Menurut pandangan saya, ada tiga strategi yang masuk akal bagi L2 untuk diambil saat ini:
Untuk beberapa aplikasi, (misalnya, ENS, keystores), beberapa pembayaran), waktu blok 12 detik sudah cukup. Untuk aplikasi yang tidak, satu-satunya solusi adalah arsitektur slot-and-epoch. Dalam ketiga kasus, "zaman" adalah SSF Ethereum (mungkin kita dapat mengubah akronim itu menjadi sesuatu selain "slot tunggal", misalnya bisa jadi "Secure Speedy Finality"). Tetapi "slot" adalah sesuatu yang berbeda di masing-masing dari tiga kasus di atas:
Pertanyaan kunci adalah, seberapa bagus kita bisa membuat sesuatu dalam kategori (1)? Secara khusus, jika itu benar-benar bagus, maka terasa seperti kategori (3) kehilangan makna sebanyak itu. Kategori (2) akan selalu ada, setidaknya karena apa pun yang "berbasis" tidak berfungsi untuk L2 data di luar rantai seperti plasma dan validiums. Tetapi jika arsitektur slot-dan-epoch asli Ethereum bisa turun menjadi waktu "slot" 1 detik (yaitu sebelum konfirmasi), maka ruang untuk kategori (3) menjadi jauh lebih kecil.
Hari ini, kita masih jauh dari memiliki jawaban akhir atas pertanyaan-pertanyaan ini. Sebuah pertanyaan kunci - seberapa canggihkah para penawar blok akan menjadi - tetap menjadi area di mana masih ada banyak ketidakpastian. Desain seperti Orbit SSFsangat baru-baru ini, menunjukkan bahwa ruang desain desain slot dan epoch di mana sesuatu seperti Orbit SSF adalah epoch masih belum banyak dieksplorasi. Semakin banyak pilihan yang kita miliki, semakin baik yang kita dapat lakukan untuk pengguna baik di L1 maupun di L2, dan semakin kita dapat menyederhanakan pekerjaan pengembang L2.
*Meneruskan Judul Asli ‘Epochs and slots all the way down: cara memberikan waktu konfirmasi transaksi yang lebih cepat kepada pengguna Ethereum’
Salah satu sifat penting dari pengalaman pengguna blockchain yang baik adalah waktu konfirmasi transaksi yang cepat. Saat ini, Ethereum sudah banyak meningkat dibandingkan lima tahun yang lalu. Terima kasih atas kombinasi dari EIP-1559dan waktu blok yang stabil setelahgabungan, transaksi yang dikirim oleh pengguna pada L1 dapat dikonfirmasi dengan andal dalam waktu 5-20 detik. Ini sekitar sebanding dengan pengalaman membayar dengan kartu kredit. Namun, ada nilai tambah dalam meningkatkan pengalaman pengguna lebih lanjut, dan ada beberapa aplikasi yang membutuhkan keterlambatan dalam rentang ratusan milidetik atau bahkan kurang. Posting ini akan membahas beberapa opsi praktis yang dimiliki oleh Ethereum.
Hari ini, Ethereum’s Gasperkonsensus menggunakan arsitektur slot dan epoch. Setiap slot 12 detik, sebagian kecil validator mempublikasikan suara pada kepala rantai, dan seiring berjalannya waktu 32 slot (6,4 menit), semua validator memiliki kesempatan untuk memberikan suara sekali. Suara-sura ini kemudian diinterpretasikan sebagai pesan secara samar-samar,Mirip PBFTalgoritma konsensus, yang setelah dua epoch (12,8 menit) memberikan jaminan ekonomi yang sangat kuat yang disebut finalitas.
Selama beberapa tahun terakhir, kami semakin tidak nyaman dengan pendekatan saat ini. Alasan utamanya adalah bahwa (i) ini rumit dan ada banyak bug interaksi antara mekanisme pemungutan suara slot-by-slot dan mekanisme finalitas epoch-by-epoch, dan (ii) 12,8 menit terlalu lama dan tidak ada yang peduli untuk menunggu begitu lama.
Finalitas satu slot menggantikan arsitektur ini dengan mekanisme yang jauh lebih mirip dengankonsensus Tendermint, di mana blok N difinalisasi sebelum blok N+1 dibuat. Deviasi utama dari Tendermint adalah bahwa kami tetap mempertahankan “Kelebihan kebocoranmekanisme, yang memungkinkan rantai tetap berjalan dan pulih jika lebih dari 1/3 validator offline.
Sebuah diagram dari yang diusulkan terkemuka desain keterakhir tunggal_
Tantangan utama dengan SSF adalah bahwa dengan polosnya, tampaknya menyiratkan bahwa setiap penambang Ethereum perlu mempublikasikan dua pesan setiap 12 detik, yang akan menjadi beban yang besar bagi rantai untuk ditangani. Ada ide-ide cerdasuntuk bagaimana cara mengurangi ini, termasuk yang sangat baruOrbit SSFNamun, meskipun ini meningkatkan UX secara signifikan dengan membuat "finalitas" datang lebih cepat, ini tidak mengubah fakta bahwa pengguna perlu menunggu 5-20 detik.
Selama beberapa tahun terakhir, Ethereum telah mengikuti sebuah roadmap yang berpusat pada rollup, merancang lapisan dasar Ethereum (L1) untuk mendukung ketersediaan datadan fungsionalitas lainnya yang kemudian dapat digunakan oleh protokol lapisan 2 seperti rollups(tetapi juga validiumsdanplasmasyang dapat memberikan pengguna tingkat keamanan yang sama seperti Ethereum, tetapi dalam skala yang jauh lebih tinggi.
Ini menciptakan sebuahpemisahan-kepentingandalam ekosistem Ethereum: Ethereum L1 dapat fokus pada ketahanan sensor, dapat diandalkan, stabil, dan mempertahankan serta meningkatkan tingkat inti fungsionalitas tertentu, dan L2 dapat fokus pada lebih langsung menjangkau pengguna - baik melalui berbagaibudayadan kompromi teknologi. Tetapi jika Anda melangkah ke arah ini, satu isu yang tak terhindarkan muncul: L2 ingin melayani pengguna yang menginginkan konfirmasi jauh lebih cepat dari 5-20 detik.
Sejauh ini, setidaknya dalam retorika, sudah menjadi tanggung jawab L2 untuk menciptakan jaringan "pengurutan terdesentralisasi" mereka sendiri. Sekelompok validator yang lebih kecil akan menandatangani blok, mungkin sekali setiap beberapa ratus milidetik, dan mereka akan meletakkan "taruhan" mereka di belakang blok tersebut. Akhirnya, header blok L2 ini dipublikasikan ke L1.
Set validator L2 bisa menipu: mereka bisa pertama-tama menandatangani blok B1, dan kemudian kemudian menandatangani blok yang konflik B2 dan mengonfirmasikannya ke rantai sebelum B1. Tetapi jika mereka melakukan ini, mereka akan tertangkap dan kehilangan deposit mereka. Dalam prakteknya, kita telah melihat versi terpusat dari ini, tetapi rollups telah lambat untuk mengembangkan jaringan pengurutan terdesentralisasi. Dan Anda bisa berpendapat bahwa menuntut L2 semua melakukan pengurutan terdesentralisasi adalah kesepakatan yang tidak adil: kita meminta rollups untuk pada dasarnya melakukan sebagian besar pekerjaan yang sama seperti menciptakan L1 baru. Untuk alasan ini dan alasan lainnya, Justin Drake telah mempromosikan cara untuk memberikan semua L2 (serta L1) akses ke mekanisme pra-konfirmasi bersama Ethereum-wide:berdasarkan pra-konfirmasi.
Pendekatan pra-konfirmasi berbasis mengasumsikan bahwa pengusul Ethereum akan menjadi pelaku yang sangat terampil untuk alasan terkait MEV (lihat di siniuntuk penjelasan saya tentang MEV, dan lihat jugatiket eksekusipendekatan berbasis pra-konfirmasi ini memanfaatkan kecanggihan ini dengan memberikan insentif kepada para pengusul yang canggih untuk menerima tanggung jawab dalam menawarkan pra-konfirmasi sebagai layanan.
Ide dasar adalah membuat protokol standar di mana seorang pengguna dapat menawarkan biaya tambahan sebagai imbalan untuk jaminan segera bahwa transaksi akan disertakan dalam blok berikutnya, bersama dengan mungkin klaim tentang hasil dari mengeksekusi transaksi tersebut. Jika penawar melanggar janji apa pun yang mereka buat kepada pengguna mana pun, mereka dapat dipotong.
Seperti yang dijelaskan, prekonfirmasi berbasis memberikan jaminan bagi transaksi L1. Jika rollup adalah "berbasis", maka semua blok L2 adalah transaksi L1, dan mekanisme yang sama dapat digunakan untuk memberikan pra-konfirmasi untuk semua L2.
Misalkan kita menerapkan finalitas satu slot. Kita menggunakan Orbit-seperti teknik untuk mengurangi jumlah validator yang menandatangani per slot, tetapi tidak terlalu banyak, sehingga kami juga dapat membuat kemajuan pada tujuan utama mengurangi minimum staking ETH 32. Akibatnya, mungkin waktu slot naik, menjadi 16 detik. Kami kemudian menggunakan pra-konfirmasi rollup, atau berdasarkan pra-konfirmasi, untuk memberikan jaminan yang lebih cepat kepada pengguna. Apa yang kami miliki sekarang? Sebuah arsitektur epoch-dan-slot.
Meme 'they're the same picture' sudah cukup sering digunakan saat ini, jadi saya akan menggunakan diagram lama yang saya gambar beberapa tahun lalu untuk menjelaskan arsitektur slot dan epoch Gasper serta diagram pra-konfirmasi L2 berdampingan, semoga hal tersebut dapat menggambarkan poinnya.
Ada alasan filosofis yang dalam mengapa arsitektur zaman dan slot tampaknya begitu sulit untuk dihindari: pada dasarnya membutuhkan waktu yang lebih sedikit untuk mencapai kesepakatan perkiraan tentang sesuatu, daripada untuk mencapai kesepakatan 'finalitas ekonomi' yang maksimal tentang hal itu.
Salah satu alasan sederhana adalah jumlah node. Sementara itu, linear lama @VitalikButerin/parametrizing-casper-the-decentralization-finality-time-overhead-tradeoff-3f2011672735">decentralization / finalitas time / overhead tradeoff terlihat lebih ringan sekarang karena agregasi BLS yang sangat dioptimalkan dan dalam waktu dekat ZK-STARKs, pada dasarnya masih benar bahwa:
Di Ethereum hari ini, slot 12 detik dibagi menjadi tiga sub-slot, untuk (i) publikasi dan distribusi blok, (ii) pengesahan, dan (iii) agregasi pengesahan. Jika jumlah attester jauh lebih rendah, kita bisa turun menjadi dua sub-slot dan memiliki waktu slot 8 detik. Faktor lain, dan secara realistis lebih besar, adalah "kualitas" node. Jika kita juga dapat mengandalkan subset node yang profesional untuk melakukan perkiraan kesepakatan (dan masih menggunakan validator penuh yang ditetapkan untuk finalitas), kita dapat secara masuk akal menurunkannya menjadi ~ 2 detik.
Oleh karena itu, bagi saya terasa bahwa (i) arsitektur slot-dan-epoch jelas benar, tetapi juga (ii) tidak semua arsitektur slot-dan-epoch diciptakan sama, dan ada nilai dalam menjelajahi ruang desain lebih sepenuhnya. Secara khusus, layak untuk menjelajahi opsi yang tidak terlalu terkait seperti Gasper, dan di mana sebaliknya ada pemisahan kepentingan yang lebih kuat antara kedua mekanisme tersebut.
Menurut pandangan saya, ada tiga strategi yang masuk akal bagi L2 untuk diambil saat ini:
Untuk beberapa aplikasi, (misalnya, ENS, keystores), beberapa pembayaran), waktu blok 12 detik sudah cukup. Untuk aplikasi yang tidak, satu-satunya solusi adalah arsitektur slot-and-epoch. Dalam ketiga kasus, "zaman" adalah SSF Ethereum (mungkin kita dapat mengubah akronim itu menjadi sesuatu selain "slot tunggal", misalnya bisa jadi "Secure Speedy Finality"). Tetapi "slot" adalah sesuatu yang berbeda di masing-masing dari tiga kasus di atas:
Pertanyaan kunci adalah, seberapa bagus kita bisa membuat sesuatu dalam kategori (1)? Secara khusus, jika itu benar-benar bagus, maka terasa seperti kategori (3) kehilangan makna sebanyak itu. Kategori (2) akan selalu ada, setidaknya karena apa pun yang "berbasis" tidak berfungsi untuk L2 data di luar rantai seperti plasma dan validiums. Tetapi jika arsitektur slot-dan-epoch asli Ethereum bisa turun menjadi waktu "slot" 1 detik (yaitu sebelum konfirmasi), maka ruang untuk kategori (3) menjadi jauh lebih kecil.
Hari ini, kita masih jauh dari memiliki jawaban akhir atas pertanyaan-pertanyaan ini. Sebuah pertanyaan kunci - seberapa canggihkah para penawar blok akan menjadi - tetap menjadi area di mana masih ada banyak ketidakpastian. Desain seperti Orbit SSFsangat baru-baru ini, menunjukkan bahwa ruang desain desain slot dan epoch di mana sesuatu seperti Orbit SSF adalah epoch masih belum banyak dieksplorasi. Semakin banyak pilihan yang kita miliki, semakin baik yang kita dapat lakukan untuk pengguna baik di L1 maupun di L2, dan semakin kita dapat menyederhanakan pekerjaan pengembang L2.