Satu perkara teknikal penting yang saya lupa sebut ialah cadangan untuk menukar dari Casper FFG kepada Minimmit sebagai alat finaliti.
Untuk meringkaskan, Casper FFG menyediakan finaliti dua putaran: ia memerlukan setiap penandatangan untuk menandatangani sekali untuk "mengesahkan" blok, kemudian sekali lagi untuk "mengakhiri" ia. Minimmit hanya memerlukan satu putaran. Sebagai imbalannya, ketahanan terhadap kesalahan Minimmit (dalam parameterisasi kami) turun kepada 17%, berbanding 33% Casper FFG.
Dalam perbincangan konsensus ethereum, saya selalu menjadi penganut ketat anggapan keselamatan: saya bersikeras mencapai had teori 49% ketahanan terhadap kesalahan di bawah sinkronisasi, terus mendorong alat pemulihan serangan 51%, dan mencipta DAS untuk membuat semakan ketersediaan data tahan terhadap majoriti tidak jujur, dsb. Tetapi saya bersedia dengan sifat-sifat Minimmit, malah bersemangat dalam beberapa aspek. Dalam pos ini, saya akan menjelaskan mengapa.
Mari kita nyatakan sifat keselamatan tepat bagi kedua-dua 3SF (bukan rantai beacon semasa, yang lemah secara tidak perlu dalam banyak cara, tetapi 3SF ideal) dan Minimmit.
"Rangkaian sinkron" bermaksud "latensi rangkaian kurang daripada 1/4 slot atau lebih kurang", "rangkaian asinkron" bermaksud "latensi mungkin sangat tinggi, bahkan beberapa nod mati selama berjam-jam". Peratusan ("penyerang mempunyai <33%") merujuk kepada peratusan ETH yang di-stake secara aktif.
## Sifat 3SF
Kes rangkaian sinkron:
* Penyerang mempunyai p < 33%: tiada perkara buruk berlaku
* 33% < p < 50%: penyerang boleh menghentikan finaliti (dengan kos kehilangan dana besar melalui inactivity leak), tetapi rantai terus bergerak secara normal
* 50% < p 67%: penyerang boleh mengakhiri perkara secara sewenang-wenangnya, sukar untuk pihak baik melakukan minority soft fork
Kes rangkaian asinkron:
* Penyerang mempunyai p 33%: boleh membatalkan finaliti, dengan kos kehilangan dana besar melalui slashing
## Sifat Minimmit
Kes rangkaian sinkron:
* Penyerang mempunyai p < 17%: tiada perkara buruk berlaku
* 17% < p < 50%: penyerang boleh menghentikan finaliti (dengan kos kehilangan dana besar melalui inactivity leak), tetapi rantai terus bergerak secara normal
* 50% < p 83%: penyerang boleh mengakhiri perkara secara sewenang-wenangnya, sukar untuk pihak baik melakukan minority soft fork
Kes rangkaian asinkron:
* Penyerang mempunyai p 17%: boleh membatalkan finaliti, dengan kos kehilangan dana besar melalui slashing
Saya sebenarnya fikir yang terakhir merupakan pertukaran yang lebih baik. Berikut adalah alasan saya:
* Serangan terburuk sebenarnya bukanlah pembatalan finaliti, tetapi penyekatan. Sebabnya ialah pembatalan finaliti mencipta bukti awam yang besar yang boleh digunakan untuk segera mengenakan kos jutaan ETH kepada penyerang (iaitu berbilion dolar), manakala penyekatan memerlukan koordinasi sosial untuk mengatasinya.
* Dalam kedua-duanya, serangan penyekatan memerlukan 50%
* Serangan penyekatan menjadi *jauh lebih sukar* untuk dikoordinasikan apabila penyerang penyekat boleh mengakhiri secara sepihak (iaitu >67% dalam 3SF, >83% dalam Minimmit). Jika mereka tidak boleh, maka apabila pihak baik berkoordinasi balik, anda akan mendapat dua rantai yang tidak finaliti bertarung selama beberapa hari, dan pengguna boleh memilih. Jika mereka boleh, maka tiada titik Schelling semula jadi untuk mengkoordinasikan soft-fork.
* Dalam kes ralat klien, perkara terburuk yang boleh berlaku ialah mengakhiri sesuatu yang bermasalah. Dalam 3SF, anda hanya perlu 67% klien berkongsi ralat supaya ia diakhiri, manakala dalam Minimmit, anda perlu 83%.
Pada dasarnya, Minimmit memaksimumkan set situasi yang "secara lalai menghasilkan dua rantai yang bertarung", dan ini sebenarnya hasil yang jauh lebih sihat dan lebih mudah dipulihkan berbanding "perkara salah yang diakhiri".
Kita ingin finaliti bermaksud akhir. Jadi dalam situasi ketidakpastian (samada serangan atau ralat perisian), kita sepatutnya lebih selesa dengan memiliki tempoh jam atau hari di mana rantai tidak mengakhiri, tetapi terus maju berdasarkan peraturan pilihan cabang. Ini memberi kita masa untuk berfikir dan memastikan rantai yang mana yang betul.
Selain itu, saya fikir "33% dislash untuk membatalkan finaliti" dalam 3SF adalah berlebihan. Sekiranya walaupun hanya 15 juta ETH di-stake, itu bermaksud 5 juta ($10B) dislash untuk membatalkan rantai sekali sahaja. Jika anda mempunyai $10B, dan anda bersedia untuk melancarkan kekacauan yang melanggar undang-undang perkomputeran banyak negara, terdapat cara YANG JAUH LEBIH BAIK untuk membelanjakannya daripada menyerang rantai. Walaupun matlamat anda ialah merosakkan ethereum, terdapat vektor serangan yang jauh lebih baik.
Oleh itu, jika kita mempunyai jaminan asas >=17% dislash untuk membatalkan finaliti (yang disediakan oleh Minimmit), kita sepatutnya menilai kedua-dua sistem daripada sana berdasarkan sifat-sifat lain mereka—di mana, atas sebab-sebab yang saya terangkan di atas, saya fikir Minimmit berprestasi lebih baik.