Terima kasih khusus kepada Mike Neuder, Justin Drake, dan lainnya atas masukan dan ulasannya. Lihat juga: postingan sebelumnya tentang tema serupa oleh<a href="https://notes.ethereum.org/ @mikeneuder /goldilocks">Mike Neuder, Dankrad Feist dan arixon.eth .
Status quo Ethereum dapat digambarkan sebagai termasuk sebagian besar pertaruhan dua tingkat yang muncul. Yang saya maksud dengan two-tiered staking adalah model staking dimana terdapat dua kelas peserta:
Taruhan dua tingkat yang muncul ini muncul melalui tindakan sebagian besar pemangku kepentingan yang berpartisipasi dalam kumpulan taruhan yang menawarkan token taruhan cair (LST), misalnya. Kolam Roket dan Lido.
Status quo mempunyai dua kelemahan utama:
Posting ini akan menjelaskan kemungkinan solusi untuk kedua masalah ini. Hal ini terutama akan mengambil sudut pandang berikut: misalkan kita menganggap bahwa sebagian besar modal dipegang oleh orang-orang yang tidak bersedia secara pribadi menjalankan staking node dalam bentuknya saat ini, menandatangani pesan di setiap slot dan mengunci deposit mereka dan melakukan pemotongan pada mereka. . Peran apa lagi yang dapat mereka miliki yang memberikan kontribusi berarti terhadap desentralisasi dan keamanan jaringan?
Dua staking pool terdesentralisasi yang paling populer saat ini, Lido dan RocketPool, keduanya menciptakan ekosistem staking dua tingkat. Dalam kasus Lido, tingkatannya adalah:
Dalam kasus Rocket Pool, tingkatannya adalah:
Dalam sistem ini (atau sistem baru yang dimungkinkan oleh potensi perubahan protokol di masa depan), satu pertanyaan kunci yang perlu ditanyakan adalah: dari sudut pandang protokol, apa gunanya memiliki delegator?
Untuk mengetahui mengapa pertanyaan ini bermakna, mari kita perhatikan dunia berikut. Perubahan protokol yang diusulkan dalam postingan terbaru ini, yang membatasi hukuman pemotongan hingga 2 ETH, telah diterapkan. Rocket Pool mengurangi deposit operator node menjadi 2 ETH sebagai respons. Pangsa pasar Rocket Pool meningkat hingga 100% (tidak hanya di kalangan pemangku kepentingan, tetapi juga di antara pemegang ETH: karena rETH menjadi bebas risiko, hampir semua pemegang ETH menjadi pemegang rETH atau operator node).
Misalkan pemegang rETH mendapatkan keuntungan sebesar 3% (termasuk imbalan dalam protokol dan biaya prioritas + MEV) dan operator node mendapatkan keuntungan sebesar 4%. Misalkan total pasokan ETH adalah 100 juta.
Begini cara perhitungannya. Untuk menghindari penggabungan, kita akan melihat return harian, bukan tahunan, sehingga suku-suku orde kedua menjadi cukup kecil untuk diabaikan:
Sekarang, mari kita pertimbangkan dunia yang berbeda. Kolam Roket tidak ada. Setoran minimum setiap pemangku kepentingan dikurangi menjadi 2 ETH, dan jumlah total ETH yang dipertaruhkan dibatasi hingga 6,25 juta. Selain itu, pengembalian operator node diturunkan menjadi 1%. Mari kita berhitung:
Sekarang, mari kita pertimbangkan kedua situasi tersebut dari perspektif dampak serangan. Dalam kasus pertama, penyerang tidak akan mendaftar sebagai delegator: delegator tidak memiliki kekuasaan, jadi tidak ada gunanya. Oleh karena itu, mereka akan menggunakan seluruh ETH mereka untuk mendaftar sebagai operator node. Untuk mendapatkan 1/3 dari seluruh taruhan, mereka perlu memasukkan 2,08 juta ETH (yang, sejujurnya, masih cukup banyak! Misalnya. lihat<a href="https://notes.ethereum.org/ @vbuterin /single_slot_finality#Idea-1-super-committees">ini diskusi tentang komite super, proposal penskalaan pertaruhan yang juga akan menurunkan biaya serangan ke nilai yang sama). Dalam kasus kedua, penyerang hanya akan melakukan staking, dan untuk mendapatkan 1/3 dari seluruh pasak, mereka perlu memasukkan… 2,08 juta ETH.
Dari perspektif ekonomi pertaruhan dan perspektif biaya serangan, hasil akhir dalam kedua kasus tersebut sama persis. Bagian dari total pasokan ETH yang dimiliki oleh operator node meningkat sebesar 0,00256% per hari, dan bagian dari total pasokan ETH yang dimiliki oleh operator non-node menurun sebesar 0,00017% per hari. Biaya serangannya adalah 2,08 juta ETH. Oleh karena itu, rasanya dalam model ini delegasi menjadi mesin Rube Goldberg yang tidak ada gunanya: sebaiknya kita menghilangkan perantara, dan secara drastis mengurangi imbalan staking dan membatasi total ETH yang dipertaruhkan menjadi 6,25 juta.
Tujuan dari argumen ini bukan untuk menganjurkan pengurangan imbalan staking sebesar 4x dan membatasi total ETH yang dipertaruhkan menjadi 6,25 juta. Sebaliknya, hal ini untuk menunjukkan properti utama yang harus dimiliki oleh sistem staking yang berfungsi dengan baik: yaitu, delegator harus melakukan sesuatu yang benar-benar penting. Selain itu, tidak masalah jika para delegasi sebagian besar termotivasi untuk bertindak benar karena tekanan komunitas dan altruisme; lagi pula, hal itulah yang menjadi kekuatan utama yang memotivasi masyarakat untuk menggunakan cara-cara yang terdesentralisasi yang meningkatkan keamanan (tetapi dengan upaya yang lebih besar) daripada cara-cara yang bersifat terpusat yang mengancam keamanan (tetapi dengan upaya yang lebih rendah).
Saya melihat dua kelas jawaban:
Ada tiga cara untuk memperluas kewenangan pemilihan delegasi:
Pemungutan suara dalam kumpulan tidak benar-benar ada saat ini: di Rocket Pool, siapa pun dapat menjadi operator node, dan di Lido, pemegang LDOlah yang memberikan suara, bukan pemegang ETH. Lido memiliki proposal untuk tata kelola ganda LDO + stETH, yang akan memberikan pemegang stETH hak suara dalam arti bahwa mereka dapat mengaktifkan gadget yang memblokir suara baru dan karenanya memblokir penambahan atau penghapusan operator node. Meskipun demikian, ini terbatas, dan bisa menjadi lebih kuat.
Persaingan lintas kelompok ada saat ini, namun lemah. Tantangan utamanya adalah staking token dari staking pool yang lebih kecil (i) kurang likuid, (ii) lebih sulit dipercaya, dan (iii) kurang didukung oleh aplikasi.
Kita dapat memperbaiki dua masalah pertama dengan membatasi pengurangan hukuman ke jumlah yang lebih kecil, misalnya. 2 atau 4 ETH. ETH yang tersisa (tidak dapat dipotong) kemudian dapat disimpan dan ditarik dengan aman secara instan, membuat LST berdasarkan ETH tersebut dapat dikonversi dua arah dengan ETH bahkan untuk kumpulan terkecil. Kami dapat memperbaiki masalah ketiga dengan membuat kontrak penerbitan terpusat untuk LST - agak mirip dengan ERC-4337 dan ERC-6900 untuk dompet, sehingga kami dapat menjamin bahwa setiap token staking yang dikeluarkan melalui kontrak tersebut aman. Aplikasi (misalnya versi RAI yang mendukung ETH yang dipertaruhkan) sangat dianjurkan untuk mendukung semua token taruhan yang dikeluarkan melalui registri ini.
Delegasi yang diabadikan saat ini belum ada dalam protokol, namun berpotensi untuk diperkenalkan. Ini akan melibatkan logika serupa dengan ide di atas, namun diterapkan pada tingkat protokol. Lihat posting ini untuk mengetahui pro dan kontra dari mengabadikan sesuatu.
Semua ide ini merupakan perbaikan dari status quo, namun ada batas seberapa besar manfaat yang dapat mereka berikan. Tata kelola pemungutan suara token buruk, dan pada akhirnya segala bentuk pemilihan delegasi yang tidak diberi insentif hanyalah jenis pemungutan suara token; ini telah menjadi sumber utama ketidaknyamanan saya dengan bukti kepemilikan yang didelegasikan sejak awal. Oleh karena itu, tampaknya penting juga untuk mempertimbangkan kemungkinan bentuk partisipasi konsensus yang lebih kuat.
Ada batasan pada pendekatan solo staking saat ini, bahkan tanpa mempertimbangkan masalah terkini seputar liquid staking. Dengan asumsi finalitas satu slot, perkiraan terbaik kami menyarankan batas ~100 ribu - 1 juta tanda tangan BLS yang dapat diproses per slot, dan itu dengan asumsi peningkatan waktu slot yang signifikan. Bahkan jika kita menggunakan SNARK rekursif untuk mengumpulkan tanda tangan, akuntabilitas penandatanganan (untuk tujuan pemotongan) memerlukan bitfield siapa yang berpartisipasi agar tersedia untuk setiap tanda tangan. Jika Ethereum menjadi jaringan skala global, menggunakan danksharding penuh untuk menyimpan bitfield tidak akan cukup: 16 MB per slot hanya akan mendukung ~64 juta pemangku kepentingan.
Di sini, dari perspektif tersebut juga, ada gunanya membagi staking ke dalam tingkatan yang dapat disayat dengan kompleksitas lebih tinggi, yang berlaku di setiap slot tetapi mungkin hanya memiliki 10.000 peserta, dan tingkat dengan kompleksitas lebih rendah yang hanya dipanggil untuk berpartisipasi sesekali. Tingkat kompleksitas yang lebih rendah dapat dikecualikan dari pemotongan seluruhnya, atau dapat secara acak memberikan kesempatan kepada pesertanya untuk sementara waktu (mis. untuk beberapa slot) deposit dan menjadi sasaran pemotongan.
Dalam praktiknya, hal ini dapat diterapkan dengan<a href="https://notes.ethereum.org/ @mikeneuder /eip-7251-faq">meningkatkan batas saldo validator, dan kemudian menerapkan ambang batas saldo (mis. 2048 ETH) untuk menentukan validator mana yang memasuki tingkat kompleksitas lebih tinggi dan lebih rendah.
Berikut adalah beberapa ide tentang bagaimana peran kecil ini dapat bekerja:
Semua peran dengan taruhan kecil ini memiliki kesamaan yaitu tidak melibatkan partisipasi aktif di setiap slot, tidak dapat dipangkas (sehingga memiliki risiko manajemen kunci yang sangat rendah), dan sangat “ringan” dalam arti bahwa peran tersebut bahkan tidak memerlukan a simpul penuh untuk dijalankan. Memverifikasi lapisan konsensus saja sudah cukup. Oleh karena itu, mereka dapat diimplementasikan melalui aplikasi atau plugin browser yang sebagian besar bersifat pasif dan memiliki overhead komputasi, persyaratan perangkat keras, atau persyaratan pengetahuan teknis yang sangat rendah, semuanya bahkan tanpa mengasumsikan kemajuan teknis seperti ZK-EVM.
Peran-peran kecil ini juga memiliki tujuan yang sama: mencegah 51% mayoritas operator node terlibat dalam sensor transaksi. Alasan pertama dan kedua juga menghalangi mayoritas untuk terlibat dalam pengembalian finalitas. Yang ketiga lebih fokus pada penyensoran, meskipun lebih rentan terhadap kemungkinan bahwa mayoritas operator node juga akan memilih untuk menyensor pesan konfirmasi penyedia daftar penyertaan.
Ide-ide ini ditulis dari perspektif solusi staking dua tingkat yang diterapkan dalam protokol, tetapi ide-ide ini juga dapat diimplementasikan sebagai fitur staking pool. Berikut adalah beberapa ide implementasi yang konkrit:
Jika dilakukan dengan benar, penyesuaian pada desain staking dapat menyelesaikan dua masalah dengan satu masalah:
Untuk sebagian besar solusi ini, terdapat berbagai lapisan abstraksi tempat solusi masalah dapat diterapkan: wewenang yang diberikan kepada pengguna dalam protokol staking pool, pilihan pengguna antara protokol staking pool, dan percandian dalam protokol. Pilihan ini harus dipertimbangkan dengan hati-hati, dan percandian minimal yang layak, yang meminimalkan kompleksitas protokol dan tingkat perubahan terhadap keekonomian protokol sambil tetap mencapai tujuan yang diinginkan, umumnya merupakan pilihan terbaik.
Terima kasih khusus kepada Mike Neuder, Justin Drake, dan lainnya atas masukan dan ulasannya. Lihat juga: postingan sebelumnya tentang tema serupa oleh<a href="https://notes.ethereum.org/ @mikeneuder /goldilocks">Mike Neuder, Dankrad Feist dan arixon.eth .
Status quo Ethereum dapat digambarkan sebagai termasuk sebagian besar pertaruhan dua tingkat yang muncul. Yang saya maksud dengan two-tiered staking adalah model staking dimana terdapat dua kelas peserta:
Taruhan dua tingkat yang muncul ini muncul melalui tindakan sebagian besar pemangku kepentingan yang berpartisipasi dalam kumpulan taruhan yang menawarkan token taruhan cair (LST), misalnya. Kolam Roket dan Lido.
Status quo mempunyai dua kelemahan utama:
Posting ini akan menjelaskan kemungkinan solusi untuk kedua masalah ini. Hal ini terutama akan mengambil sudut pandang berikut: misalkan kita menganggap bahwa sebagian besar modal dipegang oleh orang-orang yang tidak bersedia secara pribadi menjalankan staking node dalam bentuknya saat ini, menandatangani pesan di setiap slot dan mengunci deposit mereka dan melakukan pemotongan pada mereka. . Peran apa lagi yang dapat mereka miliki yang memberikan kontribusi berarti terhadap desentralisasi dan keamanan jaringan?
Dua staking pool terdesentralisasi yang paling populer saat ini, Lido dan RocketPool, keduanya menciptakan ekosistem staking dua tingkat. Dalam kasus Lido, tingkatannya adalah:
Dalam kasus Rocket Pool, tingkatannya adalah:
Dalam sistem ini (atau sistem baru yang dimungkinkan oleh potensi perubahan protokol di masa depan), satu pertanyaan kunci yang perlu ditanyakan adalah: dari sudut pandang protokol, apa gunanya memiliki delegator?
Untuk mengetahui mengapa pertanyaan ini bermakna, mari kita perhatikan dunia berikut. Perubahan protokol yang diusulkan dalam postingan terbaru ini, yang membatasi hukuman pemotongan hingga 2 ETH, telah diterapkan. Rocket Pool mengurangi deposit operator node menjadi 2 ETH sebagai respons. Pangsa pasar Rocket Pool meningkat hingga 100% (tidak hanya di kalangan pemangku kepentingan, tetapi juga di antara pemegang ETH: karena rETH menjadi bebas risiko, hampir semua pemegang ETH menjadi pemegang rETH atau operator node).
Misalkan pemegang rETH mendapatkan keuntungan sebesar 3% (termasuk imbalan dalam protokol dan biaya prioritas + MEV) dan operator node mendapatkan keuntungan sebesar 4%. Misalkan total pasokan ETH adalah 100 juta.
Begini cara perhitungannya. Untuk menghindari penggabungan, kita akan melihat return harian, bukan tahunan, sehingga suku-suku orde kedua menjadi cukup kecil untuk diabaikan:
Sekarang, mari kita pertimbangkan dunia yang berbeda. Kolam Roket tidak ada. Setoran minimum setiap pemangku kepentingan dikurangi menjadi 2 ETH, dan jumlah total ETH yang dipertaruhkan dibatasi hingga 6,25 juta. Selain itu, pengembalian operator node diturunkan menjadi 1%. Mari kita berhitung:
Sekarang, mari kita pertimbangkan kedua situasi tersebut dari perspektif dampak serangan. Dalam kasus pertama, penyerang tidak akan mendaftar sebagai delegator: delegator tidak memiliki kekuasaan, jadi tidak ada gunanya. Oleh karena itu, mereka akan menggunakan seluruh ETH mereka untuk mendaftar sebagai operator node. Untuk mendapatkan 1/3 dari seluruh taruhan, mereka perlu memasukkan 2,08 juta ETH (yang, sejujurnya, masih cukup banyak! Misalnya. lihat<a href="https://notes.ethereum.org/ @vbuterin /single_slot_finality#Idea-1-super-committees">ini diskusi tentang komite super, proposal penskalaan pertaruhan yang juga akan menurunkan biaya serangan ke nilai yang sama). Dalam kasus kedua, penyerang hanya akan melakukan staking, dan untuk mendapatkan 1/3 dari seluruh pasak, mereka perlu memasukkan… 2,08 juta ETH.
Dari perspektif ekonomi pertaruhan dan perspektif biaya serangan, hasil akhir dalam kedua kasus tersebut sama persis. Bagian dari total pasokan ETH yang dimiliki oleh operator node meningkat sebesar 0,00256% per hari, dan bagian dari total pasokan ETH yang dimiliki oleh operator non-node menurun sebesar 0,00017% per hari. Biaya serangannya adalah 2,08 juta ETH. Oleh karena itu, rasanya dalam model ini delegasi menjadi mesin Rube Goldberg yang tidak ada gunanya: sebaiknya kita menghilangkan perantara, dan secara drastis mengurangi imbalan staking dan membatasi total ETH yang dipertaruhkan menjadi 6,25 juta.
Tujuan dari argumen ini bukan untuk menganjurkan pengurangan imbalan staking sebesar 4x dan membatasi total ETH yang dipertaruhkan menjadi 6,25 juta. Sebaliknya, hal ini untuk menunjukkan properti utama yang harus dimiliki oleh sistem staking yang berfungsi dengan baik: yaitu, delegator harus melakukan sesuatu yang benar-benar penting. Selain itu, tidak masalah jika para delegasi sebagian besar termotivasi untuk bertindak benar karena tekanan komunitas dan altruisme; lagi pula, hal itulah yang menjadi kekuatan utama yang memotivasi masyarakat untuk menggunakan cara-cara yang terdesentralisasi yang meningkatkan keamanan (tetapi dengan upaya yang lebih besar) daripada cara-cara yang bersifat terpusat yang mengancam keamanan (tetapi dengan upaya yang lebih rendah).
Saya melihat dua kelas jawaban:
Ada tiga cara untuk memperluas kewenangan pemilihan delegasi:
Pemungutan suara dalam kumpulan tidak benar-benar ada saat ini: di Rocket Pool, siapa pun dapat menjadi operator node, dan di Lido, pemegang LDOlah yang memberikan suara, bukan pemegang ETH. Lido memiliki proposal untuk tata kelola ganda LDO + stETH, yang akan memberikan pemegang stETH hak suara dalam arti bahwa mereka dapat mengaktifkan gadget yang memblokir suara baru dan karenanya memblokir penambahan atau penghapusan operator node. Meskipun demikian, ini terbatas, dan bisa menjadi lebih kuat.
Persaingan lintas kelompok ada saat ini, namun lemah. Tantangan utamanya adalah staking token dari staking pool yang lebih kecil (i) kurang likuid, (ii) lebih sulit dipercaya, dan (iii) kurang didukung oleh aplikasi.
Kita dapat memperbaiki dua masalah pertama dengan membatasi pengurangan hukuman ke jumlah yang lebih kecil, misalnya. 2 atau 4 ETH. ETH yang tersisa (tidak dapat dipotong) kemudian dapat disimpan dan ditarik dengan aman secara instan, membuat LST berdasarkan ETH tersebut dapat dikonversi dua arah dengan ETH bahkan untuk kumpulan terkecil. Kami dapat memperbaiki masalah ketiga dengan membuat kontrak penerbitan terpusat untuk LST - agak mirip dengan ERC-4337 dan ERC-6900 untuk dompet, sehingga kami dapat menjamin bahwa setiap token staking yang dikeluarkan melalui kontrak tersebut aman. Aplikasi (misalnya versi RAI yang mendukung ETH yang dipertaruhkan) sangat dianjurkan untuk mendukung semua token taruhan yang dikeluarkan melalui registri ini.
Delegasi yang diabadikan saat ini belum ada dalam protokol, namun berpotensi untuk diperkenalkan. Ini akan melibatkan logika serupa dengan ide di atas, namun diterapkan pada tingkat protokol. Lihat posting ini untuk mengetahui pro dan kontra dari mengabadikan sesuatu.
Semua ide ini merupakan perbaikan dari status quo, namun ada batas seberapa besar manfaat yang dapat mereka berikan. Tata kelola pemungutan suara token buruk, dan pada akhirnya segala bentuk pemilihan delegasi yang tidak diberi insentif hanyalah jenis pemungutan suara token; ini telah menjadi sumber utama ketidaknyamanan saya dengan bukti kepemilikan yang didelegasikan sejak awal. Oleh karena itu, tampaknya penting juga untuk mempertimbangkan kemungkinan bentuk partisipasi konsensus yang lebih kuat.
Ada batasan pada pendekatan solo staking saat ini, bahkan tanpa mempertimbangkan masalah terkini seputar liquid staking. Dengan asumsi finalitas satu slot, perkiraan terbaik kami menyarankan batas ~100 ribu - 1 juta tanda tangan BLS yang dapat diproses per slot, dan itu dengan asumsi peningkatan waktu slot yang signifikan. Bahkan jika kita menggunakan SNARK rekursif untuk mengumpulkan tanda tangan, akuntabilitas penandatanganan (untuk tujuan pemotongan) memerlukan bitfield siapa yang berpartisipasi agar tersedia untuk setiap tanda tangan. Jika Ethereum menjadi jaringan skala global, menggunakan danksharding penuh untuk menyimpan bitfield tidak akan cukup: 16 MB per slot hanya akan mendukung ~64 juta pemangku kepentingan.
Di sini, dari perspektif tersebut juga, ada gunanya membagi staking ke dalam tingkatan yang dapat disayat dengan kompleksitas lebih tinggi, yang berlaku di setiap slot tetapi mungkin hanya memiliki 10.000 peserta, dan tingkat dengan kompleksitas lebih rendah yang hanya dipanggil untuk berpartisipasi sesekali. Tingkat kompleksitas yang lebih rendah dapat dikecualikan dari pemotongan seluruhnya, atau dapat secara acak memberikan kesempatan kepada pesertanya untuk sementara waktu (mis. untuk beberapa slot) deposit dan menjadi sasaran pemotongan.
Dalam praktiknya, hal ini dapat diterapkan dengan<a href="https://notes.ethereum.org/ @mikeneuder /eip-7251-faq">meningkatkan batas saldo validator, dan kemudian menerapkan ambang batas saldo (mis. 2048 ETH) untuk menentukan validator mana yang memasuki tingkat kompleksitas lebih tinggi dan lebih rendah.
Berikut adalah beberapa ide tentang bagaimana peran kecil ini dapat bekerja:
Semua peran dengan taruhan kecil ini memiliki kesamaan yaitu tidak melibatkan partisipasi aktif di setiap slot, tidak dapat dipangkas (sehingga memiliki risiko manajemen kunci yang sangat rendah), dan sangat “ringan” dalam arti bahwa peran tersebut bahkan tidak memerlukan a simpul penuh untuk dijalankan. Memverifikasi lapisan konsensus saja sudah cukup. Oleh karena itu, mereka dapat diimplementasikan melalui aplikasi atau plugin browser yang sebagian besar bersifat pasif dan memiliki overhead komputasi, persyaratan perangkat keras, atau persyaratan pengetahuan teknis yang sangat rendah, semuanya bahkan tanpa mengasumsikan kemajuan teknis seperti ZK-EVM.
Peran-peran kecil ini juga memiliki tujuan yang sama: mencegah 51% mayoritas operator node terlibat dalam sensor transaksi. Alasan pertama dan kedua juga menghalangi mayoritas untuk terlibat dalam pengembalian finalitas. Yang ketiga lebih fokus pada penyensoran, meskipun lebih rentan terhadap kemungkinan bahwa mayoritas operator node juga akan memilih untuk menyensor pesan konfirmasi penyedia daftar penyertaan.
Ide-ide ini ditulis dari perspektif solusi staking dua tingkat yang diterapkan dalam protokol, tetapi ide-ide ini juga dapat diimplementasikan sebagai fitur staking pool. Berikut adalah beberapa ide implementasi yang konkrit:
Jika dilakukan dengan benar, penyesuaian pada desain staking dapat menyelesaikan dua masalah dengan satu masalah:
Untuk sebagian besar solusi ini, terdapat berbagai lapisan abstraksi tempat solusi masalah dapat diterapkan: wewenang yang diberikan kepada pengguna dalam protokol staking pool, pilihan pengguna antara protokol staking pool, dan percandian dalam protokol. Pilihan ini harus dipertimbangkan dengan hati-hati, dan percandian minimal yang layak, yang meminimalkan kompleksitas protokol dan tingkat perubahan terhadap keekonomian protokol sambil tetap mencapai tujuan yang diinginkan, umumnya merupakan pilihan terbaik.