Salah satu tantangan yang dihadapi Ethereum adalah, secara default, ekspansi dan kompleksitas dari protokol blockchain mana pun akan meningkat seiring berjalannya waktu. Ini terjadi di dua tempat: data historis dan fungsi protokol. Agar Ethereum dapat bertahan dalam jangka panjang, kita perlu memberikan tekanan balik yang kuat terhadap kedua tren ini, mengurangi kompleksitas dan ekspansi seiring waktu. Namun, pada saat yang sama, kita perlu mempertahankan salah satu atribut kunci yang membuat blockchain menjadi hebat: ketahanan.
Tujuan utama The Purge:
Mengurangi persyaratan penyimpanan klien dengan mengurangi atau menghilangkan kebutuhan bagi setiap node untuk menyimpan semua riwayat secara permanen bahkan status akhir.
Mengurangi kompleksitas protokol dengan menghilangkan fungsi yang tidak diperlukan.
Kedaluwarsa sejarah
Apa masalah yang dipecahkan?
Hingga saat penulisan, node Ethereum yang sepenuhnya disinkronkan membutuhkan sekitar 1,1 TB ruang disk untuk menjalankan klien, ditambah ratusan GB ruang disk tambahan untuk klien konsensus. Sebagian besar dari ini adalah sejarah: data tentang blok sejarah, transaksi, dan bukti, sebagian besar sudah bertahun-tahun. Ini berarti bahwa bahkan jika batas Gas tidak meningkat sama sekali, ukuran node akan terus meningkat ratusan GB setiap tahun.
Apa itu, dan bagaimana cara kerjanya?
Salah satu fitur penyederhanaan kunci dari masalah penyimpanan historis adalah, karena setiap blok terhubung melalui hash ( dan struktur lainnya ) menunjuk ke blok sebelumnya, maka konsensus saat ini sudah cukup untuk mencapai konsensus historis. Selama jaringan mencapai konsensus pada blok terbaru, setiap blok historis atau transaksi atau status ( saldo akun, bilangan acak, kode, penyimpanan ) dapat disediakan oleh peserta tunggal mana pun serta bukti Merkle, dan bukti tersebut memungkinkan orang lain untuk memverifikasi kebenarannya. Konsensus adalah model kepercayaan N/2-of-N, sementara sejarah adalah model kepercayaan N-of-N.
Ini memberikan banyak pilihan tentang bagaimana kita menyimpan catatan sejarah. Salah satu pilihan alami adalah jaringan di mana setiap node hanya menyimpan sebagian kecil data. Inilah cara kerja jaringan benih selama beberapa dekade: meskipun jaringan secara total menyimpan dan mendistribusikan jutaan file, setiap peserta hanya menyimpan dan mendistribusikan beberapa file di antaranya. Mungkin bertentangan dengan intuisi, metode ini bahkan tidak selalu mengurangi ketahanan data. Jika dengan membuat node berjalan lebih ekonomis, kita bisa membangun jaringan dengan 100.000 node, di mana setiap node menyimpan 10% catatan sejarah secara acak, maka setiap data akan disalin 10.000 kali - sama dengan faktor salinan dari jaringan 10.000 node, di mana setiap node menyimpan semuanya.
Saat ini, Ethereum telah mulai melepaskan model di mana semua node menyimpan semua sejarah secara permanen. Blok konsensus ( terkait dengan bagian konsensus bukti kepemilikan hanya menyimpan sekitar 6 bulan. Blob hanya menyimpan sekitar 18 hari. EIP-4444 bertujuan untuk memperkenalkan periode penyimpanan satu tahun untuk blok dan tanda terima sejarah. Tujuan jangka panjang adalah untuk membangun periode penyimpanan yang seragam ) mungkin sekitar 18 hari (, di mana setiap node bertanggung jawab untuk menyimpan semua konten, dan kemudian membangun jaringan peer-to-peer yang terdiri dari node Ethereum untuk menyimpan data lama dengan cara terdistribusi.
Kode penghapusan dapat digunakan untuk meningkatkan ketahanan, sambil mempertahankan faktor duplikasi yang sama. Faktanya, Blob telah menggunakan kode penghapusan untuk mendukung sampling ketersediaan data. Solusi yang paling sederhana kemungkinan adalah dengan menggunakan kembali kode penghapusan ini, dan juga menempatkan data eksekusi dan konsensus blok ke dalam blob.
![Vitalik: Masa Depan Potensial Ethereum, The Purge])https://img-cdn.gateio.im/webp-social/moments-b4e683a9e42e4b5bd6991a4cf6cf948e.webp(
) Apa lagi yang perlu dilakukan, apa yang perlu dipertimbangkan?
Pekerjaan utama yang tersisa termasuk membangun dan mengintegrasikan solusi terdistribusi konkret untuk menyimpan riwayat------setidaknya riwayat eksekusi, tetapi pada akhirnya juga termasuk konsensus dan blob. Solusi paling sederhana adalah ###i( dengan sederhana memperkenalkan pustaka torrent yang ada, serta )ii( yang disebut solusi asli Ethereum Portal Network. Begitu salah satu dari ini diperkenalkan, kita dapat membuka EIP-4444. EIP-4444 itu sendiri tidak memerlukan hard fork, tetapi memang memerlukan versi protokol jaringan baru. Oleh karena itu, mengaktifkannya secara bersamaan untuk semua klien adalah berharga, jika tidak ada risiko klien gagal karena terhubung ke node lain yang mengharapkan untuk mengunduh riwayat lengkap tetapi sebenarnya tidak dapat diperoleh.
Pertimbangan utama melibatkan bagaimana kita berusaha untuk menyediakan data sejarah "kuno". Solusi yang paling sederhana adalah menghentikan penyimpanan sejarah kuno besok, dan mengandalkan node arsip yang ada serta berbagai penyedia terpusat untuk melakukan replikasi. Ini mudah, tetapi ini melemahkan posisi Ethereum sebagai tempat catatan permanen. Jalur yang lebih sulit tetapi lebih aman adalah dengan terlebih dahulu membangun dan mengintegrasikan jaringan torrent, untuk menyimpan catatan secara terdistribusi. Di sini, "seberapa keras kita berusaha" memiliki dua dimensi:
Bagaimana kami berusaha memastikan bahwa kumpulan node terbesar benar-benar menyimpan semua data?
Seberapa dalam kita mengintegrasikan penyimpanan sejarah ke dalam protokol?
Metode ekstrem paranoid untuk ) akan melibatkan bukti kustodian: pada dasarnya mengharuskan setiap validator bukti kepemilikan untuk menyimpan proporsi tertentu dari riwayat, dan secara berkala memeriksa secara kriptografis apakah mereka melakukannya. Metode yang lebih lunak adalah menetapkan standar sukarela untuk persentase riwayat yang disimpan oleh setiap klien.
Untuk (2), implementasi dasar hanya melibatkan pekerjaan yang telah selesai hari ini: Portal telah menyimpan file ERA yang mencakup seluruh sejarah Ethereum. Implementasi yang lebih menyeluruh akan melibatkan menghubungkannya ke proses sinkronisasi, sehingga, jika seseorang ingin menyinkronkan node penyimpanan riwayat lengkap atau node arsip, bahkan jika tidak ada node arsip lain yang online, mereka dapat mencapainya melalui sinkronisasi langsung dari jaringan portal.
( Bagaimana itu berinteraksi dengan bagian lain dari peta jalan?
Jika kita ingin membuat operasi atau peluncuran node menjadi sangat mudah, maka mengurangi kebutuhan penyimpanan sejarah bisa dibilang lebih penting daripada tanpa status: dari 1,1 TB yang dibutuhkan node, sekitar 300 GB adalah status, dan sekitar 800 GB telah menjadi sejarah. Hanya dengan mewujudkan tanpa status dan EIP-4444, visi untuk menjalankan node Ethereum di jam tangan pintar dan hanya memerlukan beberapa menit untuk disiapkan dapat terwujud.
Penyimpanan sejarah yang terbatas juga membuat implementasi node Ethereum yang lebih baru lebih layak, hanya mendukung versi terbaru dari protokol, yang membuatnya lebih sederhana. Misalnya, sekarang banyak baris kode dapat dihapus dengan aman, karena slot penyimpanan kosong yang dibuat selama serangan DoS pada tahun 2016 telah dihapus semuanya. Sekarang, dengan peralihan ke proof of stake menjadi sejarah, klien dapat dengan aman menghapus semua kode yang terkait dengan proof of work.
![Vitalik: Masa Depan Potensial Ethereum, The Purge])https://img-cdn.gateio.im/webp-social/moments-a97b8c7f7927e17a3ec0fa46a48c9f24.webp###
Kadaluarsa negara
( Apa masalah yang diselesaikan?
Meskipun kita menghilangkan kebutuhan untuk menyimpan riwayat di klien, kebutuhan penyimpanan klien akan terus meningkat, sekitar 50 GB per tahun, karena status yang terus tumbuh: saldo akun dan nomor acak, kode kontrak, dan penyimpanan kontrak. Pengguna dapat membayar biaya sekali untuk selamanya membebani klien Ethereum saat ini dan di masa depan.
Status lebih sulit untuk "kedaluwarsa" dibandingkan dengan sejarah, karena EVM pada dasarnya dirancang dengan asumsi seperti ini: setelah objek status dibuat, itu akan selalu ada dan dapat dibaca oleh transaksi kapan saja. Jika kita memperkenalkan tanpa status, beberapa orang berpendapat bahwa masalah ini mungkin tidak seburuk itu: hanya kelas pembangun blok khusus yang perlu benar-benar menyimpan status, sementara semua node lainnya ) bahkan termasuk daftar yang dihasilkan! ### dapat beroperasi tanpa status. Namun, ada pandangan bahwa kita tidak ingin terlalu bergantung pada tanpa status, dan pada akhirnya, kita mungkin ingin membuat status kedaluwarsa untuk menjaga desentralisasi Ethereum.
( Apa itu, dan bagaimana cara kerjanya
Hari ini, ketika Anda membuat objek status baru, ) dapat terjadi melalui salah satu dari tiga cara berikut: ###i ( mengirim ETH ke akun baru, (ii ) membuat akun baru menggunakan kode, (iii ) mengatur slot penyimpanan yang sebelumnya tidak tersentuh (, objek status tersebut akan selamanya berada dalam keadaan itu. Sebaliknya, yang kita inginkan adalah objek yang secara otomatis kedaluwarsa seiring berjalannya waktu. Tantangan kunci adalah melakukan ini dengan cara yang memenuhi tiga tujuan.
Efisiensi: tidak memerlukan banyak perhitungan tambahan untuk menjalankan proses kedaluwarsa.
Kemudahan penggunaan: Jika seseorang masuk ke dalam gua selama lima tahun dan kembali, mereka seharusnya tidak kehilangan akses ke posisi ETH, ERC20, NFT, CDP...
Ramah bagi pengembang: Pengembang tidak perlu beralih ke model pemikiran yang sepenuhnya tidak familiar. Selain itu, aplikasi yang saat ini kaku dan tidak diperbarui seharusnya dapat terus berfungsi dengan baik.
Tidak memenuhi tujuan ini dapat dengan mudah menyelesaikan masalah. Misalnya, Anda dapat membuat setiap objek status juga menyimpan penghitung tanggal kedaluwarsa. ) dapat diperpanjang dengan membakar ETH, yang dapat terjadi secara otomatis kapan saja saat dibaca atau ditulis ), dan ada proses yang mengiterasi status untuk menghapus objek status tanggal kedaluwarsa. Namun, ini memperkenalkan kebutuhan komputasi tambahan ( bahkan kebutuhan penyimpanan ), dan itu pasti tidak dapat memenuhi persyaratan ramah pengguna. Para pengembang juga kesulitan untuk menyimpulkan keadaan tepi yang melibatkan nilai penyimpanan yang kadang-kadang diatur ulang ke nol. Jika Anda mengatur penghitung kedaluwarsa dalam lingkup kontrak, secara teknis ini akan mempermudah hidup para pengembang, tetapi akan membuat ekonomi menjadi lebih sulit: para pengembang harus mempertimbangkan bagaimana "meneruskan" biaya penyimpanan yang berkelanjutan kepada pengguna.
Ini semua adalah masalah yang telah diupayakan oleh komunitas pengembang inti Ethereum selama bertahun-tahun, termasuk proposal seperti "sewa blockchain" dan "regenerasi". Akhirnya, kami menggabungkan bagian terbaik dari proposal tersebut dan berkonsentrasi pada dua jenis "solusi yang diketahui paling tidak buruk":
Solusi untuk status yang telah kedaluwarsa
Saran status kedaluwarsa berdasarkan siklus alamat.
(# Kadaluarsa status parsial
Beberapa proposal status yang kedaluwarsa mengikuti prinsip yang sama. Kami membagi status menjadi blok. Setiap orang secara permanen menyimpan "pemetaan teratas", di mana blok kosong atau tidak kosong. Data dalam setiap blok hanya akan disimpan jika data tersebut baru-baru ini diakses. Ada mekanisme "kebangkitan", jika tidak disimpan lagi.
Perbedaan utama antara proposal-proposal ini adalah:)i### bagaimana kita mendefinisikan "baru-baru ini", dan(ii) bagaimana kita mendefinisikan "blok"? Salah satu proposal konkret adalah EIP-7736, yang dibangun di atas desain "daun dan batang" yang diperkenalkan untuk pohon Verkle( meskipun kompatibel dengan bentuk status tanpa status apa pun, seperti pohon biner). Dalam desain ini, header, kode, dan slot penyimpanan yang berdekatan satu sama lain disimpan di bawah "batang" yang sama. Data yang disimpan di bawah satu batang dapat mencapai maksimum 256 * 31 = 7.936 byte. Dalam banyak kasus, seluruh header dan kode akun serta banyak slot penyimpanan kunci akan disimpan di bawah batang yang sama. Jika data di bawah batang tertentu tidak dibaca atau ditulis dalam waktu 6 bulan, data tersebut tidak lagi disimpan, melainkan hanya menyimpan komitmen 32 byte dari data tersebut("stub"). Transaksi yang mengakses data tersebut di masa depan akan memerlukan "menghidupkan kembali" data, dan menyediakan bukti untuk pemeriksaan berdasarkan stub.
Ada metode lain untuk mewujudkan ide serupa. Misalnya, jika tingkat granularitas akun tidak cukup, kita dapat merancang skema di mana setiap bagian 1/232 dari pohon dikendalikan oleh mekanisme batang dan daun serupa.
Karena faktor insentif, ini menjadi lebih rumit: penyerang dapat "memperbarui pohon" dengan menempatkan sejumlah besar data ke dalam satu sub-pohon dan mengirimkan satu transaksi setiap tahun, sehingga memaksa klien untuk menyimpan sejumlah besar status secara permanen. Jika Anda membuat biaya perpanjangan sebanding dengan ukuran pohon ( atau durasi perpanjangan berbanding terbalik ), maka seseorang mungkin dapat merugikan pengguna lain dengan menempatkan sejumlah besar data ke dalam sub-pohon yang sama dengan mereka. Orang-orang dapat mencoba membatasi kedua masalah ini dengan mendinamiskan granularitas berdasarkan ukuran sub-pohon: misalnya, setiap 216= 65536 objek status yang berurutan dapat dianggap sebagai satu "kelompok". Namun, ide-ide ini lebih kompleks; pendekatan berbasis tangkai sangat sederhana, dan dapat disesuaikan dengan insentif, karena biasanya tangkai.
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
8 Suka
Hadiah
8
5
Bagikan
Komentar
0/400
AirdropFreedom
· 21jam yang lalu
Jika ingin rug pull, sebaiknya segera.
Lihat AsliBalas0
OnchainDetectiveBing
· 21jam yang lalu
Apakah penurunan ukuran blockchain sudah dimulai?
Lihat AsliBalas0
SatoshiChallenger
· 21jam yang lalu
Satu lagi solusi hibrida, data akan berbicara.
Lihat AsliBalas0
RektRecovery
· 22jam yang lalu
hmm satu lagi "protokol upgrade" yang tercium seperti teater keamanan... rekt akan datang
Ethereum The Purge: Drop kompleksitas dan penyimpanan sejarah untuk mencapai keberlanjutan jangka panjang
Masa Depan Ethereum yang Mungkin: The Purge
Salah satu tantangan yang dihadapi Ethereum adalah, secara default, ekspansi dan kompleksitas dari protokol blockchain mana pun akan meningkat seiring berjalannya waktu. Ini terjadi di dua tempat: data historis dan fungsi protokol. Agar Ethereum dapat bertahan dalam jangka panjang, kita perlu memberikan tekanan balik yang kuat terhadap kedua tren ini, mengurangi kompleksitas dan ekspansi seiring waktu. Namun, pada saat yang sama, kita perlu mempertahankan salah satu atribut kunci yang membuat blockchain menjadi hebat: ketahanan.
Tujuan utama The Purge:
Kedaluwarsa sejarah
Apa masalah yang dipecahkan?
Hingga saat penulisan, node Ethereum yang sepenuhnya disinkronkan membutuhkan sekitar 1,1 TB ruang disk untuk menjalankan klien, ditambah ratusan GB ruang disk tambahan untuk klien konsensus. Sebagian besar dari ini adalah sejarah: data tentang blok sejarah, transaksi, dan bukti, sebagian besar sudah bertahun-tahun. Ini berarti bahwa bahkan jika batas Gas tidak meningkat sama sekali, ukuran node akan terus meningkat ratusan GB setiap tahun.
Apa itu, dan bagaimana cara kerjanya?
Salah satu fitur penyederhanaan kunci dari masalah penyimpanan historis adalah, karena setiap blok terhubung melalui hash ( dan struktur lainnya ) menunjuk ke blok sebelumnya, maka konsensus saat ini sudah cukup untuk mencapai konsensus historis. Selama jaringan mencapai konsensus pada blok terbaru, setiap blok historis atau transaksi atau status ( saldo akun, bilangan acak, kode, penyimpanan ) dapat disediakan oleh peserta tunggal mana pun serta bukti Merkle, dan bukti tersebut memungkinkan orang lain untuk memverifikasi kebenarannya. Konsensus adalah model kepercayaan N/2-of-N, sementara sejarah adalah model kepercayaan N-of-N.
Ini memberikan banyak pilihan tentang bagaimana kita menyimpan catatan sejarah. Salah satu pilihan alami adalah jaringan di mana setiap node hanya menyimpan sebagian kecil data. Inilah cara kerja jaringan benih selama beberapa dekade: meskipun jaringan secara total menyimpan dan mendistribusikan jutaan file, setiap peserta hanya menyimpan dan mendistribusikan beberapa file di antaranya. Mungkin bertentangan dengan intuisi, metode ini bahkan tidak selalu mengurangi ketahanan data. Jika dengan membuat node berjalan lebih ekonomis, kita bisa membangun jaringan dengan 100.000 node, di mana setiap node menyimpan 10% catatan sejarah secara acak, maka setiap data akan disalin 10.000 kali - sama dengan faktor salinan dari jaringan 10.000 node, di mana setiap node menyimpan semuanya.
Saat ini, Ethereum telah mulai melepaskan model di mana semua node menyimpan semua sejarah secara permanen. Blok konsensus ( terkait dengan bagian konsensus bukti kepemilikan hanya menyimpan sekitar 6 bulan. Blob hanya menyimpan sekitar 18 hari. EIP-4444 bertujuan untuk memperkenalkan periode penyimpanan satu tahun untuk blok dan tanda terima sejarah. Tujuan jangka panjang adalah untuk membangun periode penyimpanan yang seragam ) mungkin sekitar 18 hari (, di mana setiap node bertanggung jawab untuk menyimpan semua konten, dan kemudian membangun jaringan peer-to-peer yang terdiri dari node Ethereum untuk menyimpan data lama dengan cara terdistribusi.
Kode penghapusan dapat digunakan untuk meningkatkan ketahanan, sambil mempertahankan faktor duplikasi yang sama. Faktanya, Blob telah menggunakan kode penghapusan untuk mendukung sampling ketersediaan data. Solusi yang paling sederhana kemungkinan adalah dengan menggunakan kembali kode penghapusan ini, dan juga menempatkan data eksekusi dan konsensus blok ke dalam blob.
![Vitalik: Masa Depan Potensial Ethereum, The Purge])https://img-cdn.gateio.im/webp-social/moments-b4e683a9e42e4b5bd6991a4cf6cf948e.webp(
) Apa lagi yang perlu dilakukan, apa yang perlu dipertimbangkan?
Pekerjaan utama yang tersisa termasuk membangun dan mengintegrasikan solusi terdistribusi konkret untuk menyimpan riwayat------setidaknya riwayat eksekusi, tetapi pada akhirnya juga termasuk konsensus dan blob. Solusi paling sederhana adalah ###i( dengan sederhana memperkenalkan pustaka torrent yang ada, serta )ii( yang disebut solusi asli Ethereum Portal Network. Begitu salah satu dari ini diperkenalkan, kita dapat membuka EIP-4444. EIP-4444 itu sendiri tidak memerlukan hard fork, tetapi memang memerlukan versi protokol jaringan baru. Oleh karena itu, mengaktifkannya secara bersamaan untuk semua klien adalah berharga, jika tidak ada risiko klien gagal karena terhubung ke node lain yang mengharapkan untuk mengunduh riwayat lengkap tetapi sebenarnya tidak dapat diperoleh.
Pertimbangan utama melibatkan bagaimana kita berusaha untuk menyediakan data sejarah "kuno". Solusi yang paling sederhana adalah menghentikan penyimpanan sejarah kuno besok, dan mengandalkan node arsip yang ada serta berbagai penyedia terpusat untuk melakukan replikasi. Ini mudah, tetapi ini melemahkan posisi Ethereum sebagai tempat catatan permanen. Jalur yang lebih sulit tetapi lebih aman adalah dengan terlebih dahulu membangun dan mengintegrasikan jaringan torrent, untuk menyimpan catatan secara terdistribusi. Di sini, "seberapa keras kita berusaha" memiliki dua dimensi:
Bagaimana kami berusaha memastikan bahwa kumpulan node terbesar benar-benar menyimpan semua data?
Seberapa dalam kita mengintegrasikan penyimpanan sejarah ke dalam protokol?
Metode ekstrem paranoid untuk ) akan melibatkan bukti kustodian: pada dasarnya mengharuskan setiap validator bukti kepemilikan untuk menyimpan proporsi tertentu dari riwayat, dan secara berkala memeriksa secara kriptografis apakah mereka melakukannya. Metode yang lebih lunak adalah menetapkan standar sukarela untuk persentase riwayat yang disimpan oleh setiap klien.
Untuk (2), implementasi dasar hanya melibatkan pekerjaan yang telah selesai hari ini: Portal telah menyimpan file ERA yang mencakup seluruh sejarah Ethereum. Implementasi yang lebih menyeluruh akan melibatkan menghubungkannya ke proses sinkronisasi, sehingga, jika seseorang ingin menyinkronkan node penyimpanan riwayat lengkap atau node arsip, bahkan jika tidak ada node arsip lain yang online, mereka dapat mencapainya melalui sinkronisasi langsung dari jaringan portal.
( Bagaimana itu berinteraksi dengan bagian lain dari peta jalan?
Jika kita ingin membuat operasi atau peluncuran node menjadi sangat mudah, maka mengurangi kebutuhan penyimpanan sejarah bisa dibilang lebih penting daripada tanpa status: dari 1,1 TB yang dibutuhkan node, sekitar 300 GB adalah status, dan sekitar 800 GB telah menjadi sejarah. Hanya dengan mewujudkan tanpa status dan EIP-4444, visi untuk menjalankan node Ethereum di jam tangan pintar dan hanya memerlukan beberapa menit untuk disiapkan dapat terwujud.
Penyimpanan sejarah yang terbatas juga membuat implementasi node Ethereum yang lebih baru lebih layak, hanya mendukung versi terbaru dari protokol, yang membuatnya lebih sederhana. Misalnya, sekarang banyak baris kode dapat dihapus dengan aman, karena slot penyimpanan kosong yang dibuat selama serangan DoS pada tahun 2016 telah dihapus semuanya. Sekarang, dengan peralihan ke proof of stake menjadi sejarah, klien dapat dengan aman menghapus semua kode yang terkait dengan proof of work.
![Vitalik: Masa Depan Potensial Ethereum, The Purge])https://img-cdn.gateio.im/webp-social/moments-a97b8c7f7927e17a3ec0fa46a48c9f24.webp###
Kadaluarsa negara
( Apa masalah yang diselesaikan?
Meskipun kita menghilangkan kebutuhan untuk menyimpan riwayat di klien, kebutuhan penyimpanan klien akan terus meningkat, sekitar 50 GB per tahun, karena status yang terus tumbuh: saldo akun dan nomor acak, kode kontrak, dan penyimpanan kontrak. Pengguna dapat membayar biaya sekali untuk selamanya membebani klien Ethereum saat ini dan di masa depan.
Status lebih sulit untuk "kedaluwarsa" dibandingkan dengan sejarah, karena EVM pada dasarnya dirancang dengan asumsi seperti ini: setelah objek status dibuat, itu akan selalu ada dan dapat dibaca oleh transaksi kapan saja. Jika kita memperkenalkan tanpa status, beberapa orang berpendapat bahwa masalah ini mungkin tidak seburuk itu: hanya kelas pembangun blok khusus yang perlu benar-benar menyimpan status, sementara semua node lainnya ) bahkan termasuk daftar yang dihasilkan! ### dapat beroperasi tanpa status. Namun, ada pandangan bahwa kita tidak ingin terlalu bergantung pada tanpa status, dan pada akhirnya, kita mungkin ingin membuat status kedaluwarsa untuk menjaga desentralisasi Ethereum.
( Apa itu, dan bagaimana cara kerjanya
Hari ini, ketika Anda membuat objek status baru, ) dapat terjadi melalui salah satu dari tiga cara berikut: ###i ( mengirim ETH ke akun baru, (ii ) membuat akun baru menggunakan kode, (iii ) mengatur slot penyimpanan yang sebelumnya tidak tersentuh (, objek status tersebut akan selamanya berada dalam keadaan itu. Sebaliknya, yang kita inginkan adalah objek yang secara otomatis kedaluwarsa seiring berjalannya waktu. Tantangan kunci adalah melakukan ini dengan cara yang memenuhi tiga tujuan.
Efisiensi: tidak memerlukan banyak perhitungan tambahan untuk menjalankan proses kedaluwarsa.
Kemudahan penggunaan: Jika seseorang masuk ke dalam gua selama lima tahun dan kembali, mereka seharusnya tidak kehilangan akses ke posisi ETH, ERC20, NFT, CDP...
Ramah bagi pengembang: Pengembang tidak perlu beralih ke model pemikiran yang sepenuhnya tidak familiar. Selain itu, aplikasi yang saat ini kaku dan tidak diperbarui seharusnya dapat terus berfungsi dengan baik.
Tidak memenuhi tujuan ini dapat dengan mudah menyelesaikan masalah. Misalnya, Anda dapat membuat setiap objek status juga menyimpan penghitung tanggal kedaluwarsa. ) dapat diperpanjang dengan membakar ETH, yang dapat terjadi secara otomatis kapan saja saat dibaca atau ditulis ), dan ada proses yang mengiterasi status untuk menghapus objek status tanggal kedaluwarsa. Namun, ini memperkenalkan kebutuhan komputasi tambahan ( bahkan kebutuhan penyimpanan ), dan itu pasti tidak dapat memenuhi persyaratan ramah pengguna. Para pengembang juga kesulitan untuk menyimpulkan keadaan tepi yang melibatkan nilai penyimpanan yang kadang-kadang diatur ulang ke nol. Jika Anda mengatur penghitung kedaluwarsa dalam lingkup kontrak, secara teknis ini akan mempermudah hidup para pengembang, tetapi akan membuat ekonomi menjadi lebih sulit: para pengembang harus mempertimbangkan bagaimana "meneruskan" biaya penyimpanan yang berkelanjutan kepada pengguna.
Ini semua adalah masalah yang telah diupayakan oleh komunitas pengembang inti Ethereum selama bertahun-tahun, termasuk proposal seperti "sewa blockchain" dan "regenerasi". Akhirnya, kami menggabungkan bagian terbaik dari proposal tersebut dan berkonsentrasi pada dua jenis "solusi yang diketahui paling tidak buruk":
(# Kadaluarsa status parsial
Beberapa proposal status yang kedaluwarsa mengikuti prinsip yang sama. Kami membagi status menjadi blok. Setiap orang secara permanen menyimpan "pemetaan teratas", di mana blok kosong atau tidak kosong. Data dalam setiap blok hanya akan disimpan jika data tersebut baru-baru ini diakses. Ada mekanisme "kebangkitan", jika tidak disimpan lagi.
Perbedaan utama antara proposal-proposal ini adalah:)i### bagaimana kita mendefinisikan "baru-baru ini", dan(ii) bagaimana kita mendefinisikan "blok"? Salah satu proposal konkret adalah EIP-7736, yang dibangun di atas desain "daun dan batang" yang diperkenalkan untuk pohon Verkle( meskipun kompatibel dengan bentuk status tanpa status apa pun, seperti pohon biner). Dalam desain ini, header, kode, dan slot penyimpanan yang berdekatan satu sama lain disimpan di bawah "batang" yang sama. Data yang disimpan di bawah satu batang dapat mencapai maksimum 256 * 31 = 7.936 byte. Dalam banyak kasus, seluruh header dan kode akun serta banyak slot penyimpanan kunci akan disimpan di bawah batang yang sama. Jika data di bawah batang tertentu tidak dibaca atau ditulis dalam waktu 6 bulan, data tersebut tidak lagi disimpan, melainkan hanya menyimpan komitmen 32 byte dari data tersebut("stub"). Transaksi yang mengakses data tersebut di masa depan akan memerlukan "menghidupkan kembali" data, dan menyediakan bukti untuk pemeriksaan berdasarkan stub.
Ada metode lain untuk mewujudkan ide serupa. Misalnya, jika tingkat granularitas akun tidak cukup, kita dapat merancang skema di mana setiap bagian 1/232 dari pohon dikendalikan oleh mekanisme batang dan daun serupa.
Karena faktor insentif, ini menjadi lebih rumit: penyerang dapat "memperbarui pohon" dengan menempatkan sejumlah besar data ke dalam satu sub-pohon dan mengirimkan satu transaksi setiap tahun, sehingga memaksa klien untuk menyimpan sejumlah besar status secara permanen. Jika Anda membuat biaya perpanjangan sebanding dengan ukuran pohon ( atau durasi perpanjangan berbanding terbalik ), maka seseorang mungkin dapat merugikan pengguna lain dengan menempatkan sejumlah besar data ke dalam sub-pohon yang sama dengan mereka. Orang-orang dapat mencoba membatasi kedua masalah ini dengan mendinamiskan granularitas berdasarkan ukuran sub-pohon: misalnya, setiap 216= 65536 objek status yang berurutan dapat dianggap sebagai satu "kelompok". Namun, ide-ide ini lebih kompleks; pendekatan berbasis tangkai sangat sederhana, dan dapat disesuaikan dengan insentif, karena biasanya tangkai.