Hal ini akan mempermudah kehidupan para pelaksana teknologi, serta pembangun infrastruktur pendukung seperti klien ringan.
Ditulis oleh: Vitalik Buterin, penelitian ini
Disusun oleh: Songxue, Keuangan Emas
Perbedaan utama antara Ethereum dan sebagian besar sistem bukti kepemilikan (finalitas) lainnya adalah bahwa Ethereum berupaya mendukung objek validator dalam jumlah yang sangat besar: saat ini kami memiliki 895.000 objek validator, dan analisis hukum Zipf sederhana menunjukkan bahwa ini sesuai dengan Puluhan ribuan objek validator adalah individu/entitas unik. Tujuannya adalah untuk mendukung desentralisasi dan bahkan memungkinkan individu biasa untuk berpartisipasi dalam staking tanpa mengharuskan setiap orang melepaskan hak pilihannya dan memberikan kendali kepada salah satu dari segelintir staking pool.
Namun, pendekatan ini memerlukan rantai Ethereum untuk memproses sejumlah besar tanda tangan per slot (sekitar 28,000 saat ini; 1,790,000 setelah SSF), yang merupakan beban yang sangat tinggi. Mendukung beban ini memerlukan pengorbanan teknis yang signifikan:
Sistem agregasi tanda tangan mungkin tampak masuk akal pada pandangan pertama, namun kenyataannya menciptakan kompleksitas sistem yang meresap ke setiap aspek.
Terlebih lagi, itu bahkan tidak sesuai dengan tujuannya. Persyaratan minimum untuk staking masih 32 ETH, yang di luar jangkauan banyak orang. Hanya dari analisis logis, dalam jangka panjang, tampaknya tidak mungkin bagi sistem di mana setiap orang masuk untuk benar-benar memberikan staking bagi orang-orang biasa: Jika Ethereum memiliki 500 juta pengguna, dan 10% dari mereka berjanji, maka ini berarti Ada 100 juta tanda tangan per slot. Dalam istilah teori informasi, pemotongan pemrosesan dalam desain ini memerlukan setidaknya 12,5 MB ruang bebas data per slot, kira-kira sebesar tujuan daksharding penuh (!!!). Mungkin bisa dilakukan, namun mengharuskan staking itu sendiri untuk mengandalkan pengambilan sampel ketersediaan data akan menghasilkan kompleksitas yang besar - bahkan jika itu hanya sekitar 0,6% dari populasi dunia yang melakukan staking, dan hal ini bahkan tidak akan menimbulkan masalah komputasi dalam verifikasi. begitu banyak tanda tangan.
Jadi, daripada mengandalkan kriptografer untuk menciptakan peluru ajaib (atau pelindung tubuh ajaib) yang memungkinkan jumlah tanda tangan yang terus meningkat di setiap slot waktu, saya sarankan kita melakukan perubahan filosofis: menyerah pada ekspektasi seperti itu di masa depan. tempat pertama . Hal ini akan sangat memperluas ruang desain PoS dan memungkinkan banyak penyederhanaan teknis, membuatnya lebih aman dengan memungkinkan Helios untuk SNARK langsung pada konsensus Ethereum, dan dengan membuat skema tanda tangan lama yang membosankan seperti Winternitz. memecahkan masalah resistensi kuantum.
Banyak blockchain non-Ethereum yang menghadapi masalah serupa menggunakan pendekatan keamanan berbasis komite. Di setiap slot waktu, mereka secara acak memilih N validator (misalnya, N kira-kira sama dengan 1000), dan validator ini bertanggung jawab untuk menyelesaikan slot waktu tersebut. Perlu diingat mengapa pendekatan ini gagal: pendekatan ini kurang akuntabilitas.
Untuk memahami alasannya, bayangkan serangan 51%. Ini bisa menjadi serangan pembalikan terakhir atau serangan sensor. Untuk melancarkan serangan, pelaku ekonomi yang menguasai mayoritas saham masih harus setuju untuk melakukan serangan, yaitu menjalankan perangkat lunak yang berpartisipasi dalam serangan tersebut, bersama dengan semua validator yang pada akhirnya terpilih menjadi anggota komite. Matematika pengambilan sampel acak menjamin hal ini. Namun, hukuman yang mereka tanggung untuk serangan semacam itu kecil karena sebagian besar validator yang menyetujui serangan tersebut akhirnya tidak terlihat karena mereka tidak terpilih menjadi anggota komite.
Saat ini, Ethereum mengambil pendekatan ekstrem yang sebaliknya. Jika terjadi serangan 51%, mayoritas dari seluruh set validator penyerang akan dipotong taruhannya. Biaya serangan saat ini adalah sekitar 9 juta ETH (sekitar $20 miliar), dan ini mengasumsikan bahwa sinkronisasi jaringan terganggu dengan cara yang memaksimalkan keuntungan penyerang.
Saya pikir ini adalah biaya yang tinggi, dan biayanya terlalu tinggi, dan kita dapat berkorban dalam masalah ini. Sekalipun biaya serangannya 1-2 juta ETH, itu sudah cukup. Selain itu, risiko sentralisasi utama yang ada saat ini untuk Ethereum terletak pada tempat yang sangat berbeda: jika jumlah minimum staking dikurangi hingga mendekati nol, perbedaan kekuatan staking pool skala besar tidak akan banyak.
Itu sebabnya saya menganjurkan solusi sederhana: berkorban dalam akuntabilitas validator, namun tetap menjaga jumlah total ETH yang dapat dipotong cukup tinggi, dan sebagai gantinya, ini memberi kita kumpulan validator yang lebih kecil dan sebagian besar manfaatnya.
Dengan asumsi protokol konsensus dua putaran tradisional (mirip dengan yang digunakan oleh Tendermint, dan pasti digunakan oleh SSF), setiap validator yang berpartisipasi memerlukan dua tanda tangan per slot waktu. Kita perlu menyiasati kenyataan ini. Saya melihat tiga cara utama untuk melakukan hal ini.
Python memiliki pepatah yang sangat penting:
Harus ada satu - sebaiknya hanya satu - cara yang jelas untuk melakukan hal ini.
Mengenai masalah pemerataan staking, Ethereum saat ini melanggar aturan ini karena kami secara bersamaan menerapkan dua strategi berbeda untuk mencapai tujuan ini: (i) staking individu skala kecil, dan (ii) menggunakan teknologi validator terdistribusi (DVT) staking pool terdesentralisasi. Karena alasan di atas, (i) hanya sebagian dari individu yang berkepentingan yang dapat didukung; akan selalu ada banyak orang yang setoran minimumnya terlalu besar. Namun, Ethereum membayar biaya beban teknis yang sangat tinggi untuk mendukung (i).
Salah satu solusi yang mungkin adalah meninggalkan (i) dan melanjutkan (ii). Kami dapat meningkatkan jumlah taruhan minimum menjadi 4096 ETH dan menetapkan batas total 4096 validator (sekitar 16,7 juta ETH). Pemangku kepentingan kecil diharapkan untuk bergabung dengan kumpulan DVT: baik dengan menyediakan dana atau menjadi operator node. Untuk mencegah penyalahgunaan oleh penyerang, peran operator node perlu dibatasi oleh reputasi dalam beberapa cara, dan kumpulan akan bersaing satu sama lain dengan menawarkan opsi berbeda dalam hal ini. Pendanaan tidak akan memerlukan izin.
Kita bisa membuat pertaruhan kolektif dalam model ini lebih “memaafkan” dengan membatasi hukuman, misalnya. hingga 1/8 dari total janji yang diberikan. Hal ini akan mengurangi kepercayaan pada operator node, meskipun pendekatan ini perlu dilakukan dengan hati-hati karena masalah yang diuraikan di sini.
Kami membuat dua tingkatan pemangku kepentingan: tingkat “berat”, yang membutuhkan 4096 ETH, untuk berpartisipasi dalam finalisasi, dan tingkat “ringan”, yang tidak memiliki persyaratan taruhan minimum (juga tidak ada penundaan setoran dan penarikan, dan tidak ada risiko pemotongan), yang Menambahkan lapisan keamanan lain. Agar sebuah blok menjadi final, lapisan berat harus menyelesaikannya dan lapisan ringan memerlukan >= 50% validator ringan online untuk membuktikannya.
Heterogenitas ini bermanfaat bagi ketahanan terhadap sensor dan ketahanan terhadap serangan, karena lapisan berat dan ringan perlu dikorupsi agar serangan berhasil. Jika satu lapisan rusak dan lapisan lainnya tidak, maka rantai akan terhenti; jika lapisan berat rusak, maka dapat dihukum.
Manfaat lain dari pendekatan ini adalah lapisan ringan dapat menyertakan ETH yang juga digunakan sebagai jaminan dalam aplikasi. Kerugian utamanya adalah membuat staking menjadi kurang setara dengan membuat pemisah antara staking kecil dan besar.
Pendekatan yang kami ambil mirip dengan desain komite super yang diusulkan di sini: untuk setiap slot waktu, kami memilih 4096 validator yang sedang aktif, dan kami dengan hati-hati menyesuaikan set ini pada setiap slot waktu untuk memastikan bahwa kami tetap aman.
Namun, kami membuat beberapa pilihan parameter berbeda untuk mendapatkan “manfaat maksimal” dalam kerangka ini. Secara khusus, kami mengizinkan validator untuk berpartisipasi dengan saldo tinggi yang sewenang-wenang, dan jika validator memiliki lebih dari jumlah tertentu M ETH (yang harus mengambang), maka mereka berpartisipasi dalam komite setiap periode. Jika verifikator memiliki N <M ETH,那么他们有 N/M 在任何给定时间段内进入委员会的概率。
Pengungkit menarik yang kami miliki di sini adalah memisahkan “bobot” untuk tujuan insentif dari “bobot” untuk tujuan konsensus: imbalan untuk setiap validator dalam komite harus sama (setidaknya untuk validator dengan ≤M ETH), untuk menjaga imbalan rata-rata proporsional. Kami masih dapat melakukan penghitungan konsensus validator di panitia menggunakan ETH sebagai bobotnya. Hal ini memastikan bahwa penyelesaian finalitas memerlukan jumlah ETH yang setara dengan lebih dari sepertiga jumlah total ETH di panitia.
Analisis hukum Zipf akan menghitung besarnya ETH sebagai berikut:
Pada setiap tingkat kuadrat dari total saldo, jumlah validator berbanding terbalik dengan tingkat saldo tersebut, dan total saldo validator tersebut akan sama.
Oleh karena itu, panitia akan memiliki jumlah ETH yang berpartisipasi sama dari setiap level keseimbangan kecuali level di atas penghalang M (validator selalu berada di panitia).
Oleh karena itu, kami memiliki level Log2(M) untuk setiap K validator di level di atas, dan K+K/2+…=2K di atas level validator. Oleh karena itu, K=4096/Log2(M)+2.
Validator terbesar akan memiliki M*k ETH. Kita dapat bekerja mundur: jika validator terbesar memiliki 2^18=262144 ETH, ini berarti (kira-kira) M = 1024 dan k = 256.
Jumlah total ETH yang dijanjikan adalah:
Semua hak dan kepentingan 512 validator teratas (2^18*1+2^17*2+……+2^10*2^8=2359296)
Ditambah taruhan yang lebih kecil dari pengambilan sampel acak (2^8*(2^9+2^8+2^7…) kira-kira sama dengan 2^8*2^10=2^18)
Kami memperoleh total 2621440 ETH, atau biaya serangannya sekitar 900 ribu ETH.
Kerugian utama dari pendekatan ini adalah pendekatan ini menimbulkan lebih banyak kompleksitas dalam protokol untuk memilih validator secara acak sedemikian rupa sehingga memungkinkan kita untuk tetap mencapai keamanan konsensus ketika komite berganti.
Keuntungan utamanya adalah ia mempertahankan bentuk staking independen yang dapat dikenali, mempertahankan sistem tunggal, dan bahkan memungkinkan jumlah minimum staking dikurangi ke level yang sangat rendah (misalnya 1 ETH).
Jika kami menentukan bahwa di balik protokol SSF, kami ingin tetap menggunakan 8192 tanda tangan, yang akan membuat hidup lebih mudah bagi pelaksana teknis, serta pembangun infrastruktur pendukung seperti klien ringan. Menjadi lebih mudah bagi siapa pun untuk menjalankan klien konsensus, dan pengguna, penggemar staking, dan lainnya dapat segera mengerjakan asumsi ini. Beban protokol Ethereum di masa depan tidak lagi diketahui: protokol ini dapat ditingkatkan di masa depan melalui hard fork, tetapi hanya jika pengembang yakin bahwa teknologi tersebut telah cukup berkembang untuk mampu menangani lebih banyak tanda tangan per slot waktu dengan kemudahan yang sama.
Selebihnya kita tinggal menentukan pendekatan mana di antara ketiga pendekatan di atas yang ingin kita ambil, atau mungkin pendekatan yang berbeda sama sekali. Ini akan menjadi pertanyaan tentang trade-off apa yang kita sukai, terutama bagaimana kita memecahkan masalah yang terlibat, seperti pertaruhan likuiditas, yang mungkin dapat diselesaikan secara terpisah dari masalah teknis yang menjadi lebih mudah saat ini.