Satu hal teknis penting yang saya lupa sebutkan adalah usulan peralihan dari Casper FFG ke Minimmit sebagai gadget finalitas.
Untuk merangkum, Casper FFG menyediakan finalitas dua putaran: memerlukan setiap penandatangan untuk menandatangani sekali untuk "mempertahankan" blok, lalu sekali lagi untuk "mengfinalisasi"nya. Minimmit hanya memerlukan satu putaran. Sebagai gantinya, toleransi kesalahan Minimmit (dalam parameterisasi kami) turun menjadi 17%, dibandingkan dengan 33% pada Casper FFG.
Dalam diskusi konsensus Ethereum, saya selalu menjadi pendukung ketat asumsi keamanan: saya bersikeras mencapai batas teoretis 49% toleransi kesalahan di bawah sinkronisasi, terus mendorong gadget pemulihan serangan 51%, mengembangkan DAS untuk membuat pemeriksaan ketersediaan data tahan terhadap mayoritas tidak jujur, dll. Namun, saya menerima sifat-sifat Minimmit, bahkan antusias dalam beberapa hal. Dalam posting ini, saya akan menjelaskan mengapa.
Mari kita uraikan sifat keamanan tepat dari 3SF (bukan beacon chain saat ini, yang secara tidak perlu lemah dalam banyak hal, tetapi 3SF ideal) dan Minimmit.
"Jaringan sinkron" berarti "latensi jaringan kurang dari sekitar 1/4 slot", "jaringan asinkron" berarti "latensi sangat tinggi, bahkan beberapa node bisa offline selama berjam-jam". Persentase ("penyerang memiliki <33%") mengacu pada persentase ETH yang di-stake aktif.
## Sifat 3SF
Kasus jaringan sinkron:
* Penyerang memiliki p < 33%: tidak ada hal buruk yang terjadi
* 33% < p < 50%: penyerang dapat menghentikan finalitas (dengan biaya kehilangan dana besar melalui inactivity leak), tetapi rantai tetap berjalan normal
* 50% < p 67%: penyerang dapat mengfinalisasi apa pun sesuai keinginan, jauh lebih sulit bagi pihak baik untuk melakukan minority soft fork
Kasus jaringan asinkron:
* Penyerang memiliki p 33%: dapat mengembalikan finalitas, dengan biaya kehilangan dana besar melalui slashing
## Sifat Minimmit
Kasus jaringan sinkron:
* Penyerang memiliki p < 17%: tidak ada hal buruk yang terjadi
* 17% < p < 50%: penyerang dapat menghentikan finalitas (dengan biaya kehilangan dana besar melalui inactivity leak), tetapi rantai tetap berjalan normal
* 50% < p 83%: penyerang dapat mengfinalisasi apa pun sesuai keinginan, jauh lebih sulit bagi pihak baik untuk melakukan minority soft fork
Kasus jaringan asinkron:
* Penyerang memiliki p 17%: dapat mengembalikan finalitas, dengan biaya kehilangan dana besar melalui slashing
Saya sebenarnya berpendapat bahwa yang terakhir adalah kompromi yang lebih baik. Berikut alasan saya:
* Serangan terburuk sebenarnya bukanlah reversion finalitas, melainkan penyensoran. Alasannya adalah bahwa reversion finalitas menciptakan bukti publik besar yang dapat digunakan untuk segera membuat penyerang kehilangan jutaan ETH (yaitu miliaran dolar), sedangkan penyensoran memerlukan koordinasi sosial untuk mengatasinya
* Dalam kedua skenario di atas, serangan penyensoran memerlukan 50%
* Serangan penyensoran menjadi *jauh lebih sulit* untuk dikoordinasikan ketika penyerang penyensor dapat mengfinalisasi secara sepihak (yaitu >67% pada 3SF, >83% pada Minimmit). Jika mereka tidak bisa, maka ketika pihak baik melakukan koordinasi balasan, Anda mendapatkan dua rantai non-finalisasi yang saling bersaing selama beberapa hari, dan pengguna bisa memilih. Jika mereka bisa, maka tidak ada titik Schelling alami untuk mengkoordinasikan soft-fork
* Dalam kasus bug klien, hal terburuk yang bisa terjadi adalah mengfinalisasi sesuatu yang bermasalah. Pada 3SF, Anda hanya perlu 67% klien yang memiliki bug agar bisa mengfinalisasi, sedangkan pada Minimmit, Anda perlu 83%.
Pada dasarnya, Minimmit memaksimalkan himpunan situasi yang "secara default menghasilkan dua rantai yang saling bersaing", dan itu sebenarnya hasil yang jauh lebih sehat dan jauh lebih dapat dipulihkan daripada "hal yang salah yang difinalisasi".
Kita ingin finalitas berarti final. Jadi dalam situasi ketidakpastian (baik serangan maupun bug perangkat lunak), kita seharusnya lebih menerima periode beberapa jam atau hari di mana rantai tidak mengfinalisasi, tetapi tetap berjalan berdasarkan aturan pemilihan fork. Ini memberi kita waktu untuk berpikir dan memastikan rantai mana yang benar.
Selain itu, saya berpendapat bahwa "33% di-slashing untuk mengembalikan finalitas" pada 3SF terlalu berlebihan. Jika bahkan ada misalnya 15 juta ETH yang di-stake, itu berarti 5 juta ($10 miliar) di-slashing untuk mengembalikan rantai sekali saja. Jika Anda memiliki $10 miliar, dan Anda bersedia melakukan kekacauan yang melanggar banyak undang-undang peretasan komputer di berbagai negara, ada CARA YANG JAUH LEBIH BAIK untuk menghabiskannya daripada menyerang rantai. Bahkan jika tujuan Anda adalah merusak Ethereum, ada vektor serangan yang jauh lebih baik.
Dan karena itu, jika kita memiliki jaminan dasar >= 17% di-slashing untuk mengembalikan finalitas (yang disediakan oleh Minimmit), kita seharusnya menilai kedua sistem dari titik itu berdasarkan sifat-sifat lainnya—di mana, karena alasan yang saya jelaskan di atas, saya berpendapat Minimmit tampil lebih baik.