Salah satu tantangan yang dihadapi Ethereum adalah, secara default, pembengkakan dan kompleksitas protokol blockchain mana pun akan meningkat seiring berjalannya waktu. Ini terjadi di dua tempat:
Data Historis: Setiap transaksi yang dilakukan dan setiap akun yang dibuat pada waktu bersejarah mana pun harus disimpan secara permanen oleh semua klien dan diunduh oleh klien baru mana pun, sehingga sepenuhnya disinkronkan dengan jaringan. Ini akan menyebabkan beban klien dan waktu sinkronisasi meningkat seiring berjalannya waktu, bahkan jika kapasitas rantai tetap sama.
Fitur protokol: Menambahkan fitur baru jauh lebih mudah daripada menghapus fitur lama, yang mengakibatkan kompleksitas kode meningkat seiring berjalannya waktu.
Untuk memastikan Ethereum dapat bertahan dalam jangka panjang, kita perlu menerapkan tekanan balik yang kuat terhadap kedua tren ini, mengurangi kompleksitas dan pembengkakan seiring waktu. Namun, pada saat yang sama, kita perlu mempertahankan salah satu atribut kunci yang membuat blockchain menjadi hebat: ketahanan. Anda dapat menempatkan sebuah NFT, sebuah surat cinta dalam data panggilan transaksi, atau sebuah kontrak pintar yang berisi 1.000.000 USD di atas rantai, masuk ke sebuah gua selama sepuluh tahun, dan ketika keluar, menemukan bahwa itu masih ada menunggu Anda untuk membaca dan berinteraksi. Agar DApp dapat sepenuhnya terdesentralisasi dengan tenang dan menghapus kunci upgrade, mereka perlu yakin bahwa ketergantungan mereka tidak akan diupgrade dengan cara yang merusak mereka - terutama L1 itu sendiri.
Jika kita bertekad untuk mencapai keseimbangan antara kedua kebutuhan ini, dan meminimalkan atau membalikkan pembengkakan, kompleksitas, dan kemunduran sambil menjaga kontinuitas, itu adalah hal yang sangat mungkin. Organisme dapat melakukannya: meskipun sebagian besar organisme mengalami penuaan seiring waktu, beberapa yang beruntung tidak. Bahkan sistem sosial juga dapat memiliki umur yang sangat panjang. Dalam beberapa kasus, Ethereum telah berhasil: bukti kerja telah menghilang, opcode SELFDESTRUCT sebagian besar telah menghilang, dan node rantai beacon telah menyimpan data lama hingga enam bulan. Menemukan jalan ini untuk Ethereum dengan cara yang lebih umum dan menuju hasil akhir yang stabil dalam jangka panjang adalah tantangan utama untuk skalabilitas jangka panjang Ethereum, keberlanjutan teknologi, bahkan keamanan.
The Purge: Tujuan Utama.
Mengurangi kebutuhan penyimpanan klien dengan mengurangi atau menghilangkan kebutuhan setiap node untuk menyimpan semua riwayat bahkan status akhir secara permanen.
Mengurangi kompleksitas protokol dengan menghilangkan fungsi yang tidak diperlukan.
Daftar Isi:
Kadaluwarsa sejarah
Kedaluwarsa status
Pembersihan fitur
Kadaluarsa sejarah
Apa masalah yang diselesaikan?
Hingga saat penulisan ini, node Ethereum yang sepenuhnya disinkronkan memerlukan sekitar 1,1 TB ruang disk untuk menjalankan klien, dan juga memerlukan ratusan GB ruang disk untuk klien konsensus. Sebagian besar dari ini adalah sejarah: data tentang blok, transaksi, dan bukti sejarah, sebagian besar dari mana sudah berusia 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 sejarah adalah bahwa karena setiap blok terhubung ke blok sebelumnya melalui tautan hash (dan struktur lainnya), mencapai konsensus saat ini sudah cukup untuk mencapai konsensus sejarah. Selama jaringan mencapai konsensus pada blok terbaru, blok sejarah, transaksi, atau status (saldo akun, angka acak, kode, penyimpanan) dapat disediakan oleh peserta individu 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 riwayat. Salah satu pilihan yang alami adalah jaringan di mana setiap node hanya menyimpan sebagian kecil data. Inilah cara kerja jaringan benih selama beberapa dekade: meskipun jaringan menyimpan dan mendistribusikan jutaan file, setiap peserta hanya menyimpan dan mendistribusikan beberapa file di antaranya. Mungkin bertentangan dengan intuisi, pendekatan ini bahkan tidak selalu mengurangi ketahanan data. Jika kita dapat membangun jaringan dengan 100.000 node di mana setiap node menyimpan 10% riwayat secara acak dengan cara yang lebih ekonomis, maka setiap data akan disalin 10.000 kali - sama dengan faktor salinan dari jaringan 10.000 node - di mana setiap node menyimpan semua konten.
Saat ini, Ethereum telah mulai melepaskan model di mana semua node menyimpan semua riwayat secara permanen. Blok konsensus (yaitu bagian yang terkait dengan 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 terpadu (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 menerapkan kode penghapusan untuk mendukung pengambilan data yang tersedia. Solusi yang paling sederhana kemungkinan adalah menggunakan kembali kode penghapusan ini, dan juga memasukkan blok data eksekusi dan konsensus ke dalam blob.
memiliki hubungan dengan penelitian yang ada?
EIP-4444;
Torrents dan EIP-4444;
Jaringan portal;
Jaringan portal dan EIP-4444;
Penyimpanan dan pengambilan objek SSZ yang terdistribusi di Portal;
Bagaimana cara meningkatkan batas gas (Paradigm).
Apa lagi yang perlu dilakukan, apa yang perlu dipertimbangkan?
Pekerjaan utama yang tersisa termasuk membangun dan mengintegrasikan solusi terdistribusi konkret untuk menyimpan catatan sejarah------setidaknya catatan eksekusi, tetapi pada akhirnya juga termasuk konsensus dan blob. Solusi paling sederhana adalah (i) cukup dengan memperkenalkan pustaka torrent yang ada, serta (ii) solusi asli Ethereum yang disebut jaringan Portal. Setelah salah satu dari keduanya diperkenalkan, kita dapat membuka EIP-4444. EIP-4444 sendiri tidak memerlukan hard fork, tetapi memang memerlukan versi protokol jaringan baru. Oleh karena itu, mengaktifkannya untuk semua klien secara bersamaan adalah hal yang berharga, jika tidak ada risiko klien mengalami kegagalan karena terhubung ke node lain dengan harapan mengunduh catatan sejarah lengkap tetapi sebenarnya tidak didapat.
Pertimbangan utama melibatkan bagaimana kita berusaha untuk menyediakan data sejarah "kuno". Solusi termudah adalah menghentikan penyimpanan sejarah kuno besok dan bergantung pada node arsip yang ada dan berbagai penyedia terpusat untuk replikasi. Ini mudah, tetapi ini melemahkan posisi Ethereum sebagai tempat catatan permanen. Cara yang lebih sulit tetapi lebih aman adalah 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 integrasi penyimpanan sejarah ke dalam protokol?
Salah satu metode ekstrem yang sangat paranoid untuk (1) akan melibatkan bukti penahanan: pada kenyataannya, mengharuskan setiap validator bukti kepemilikan untuk menyimpan proporsi tertentu dari catatan sejarah, dan secara berkala memeriksa dengan cara yang terenkripsi apakah mereka melakukannya. Metode yang lebih lunak adalah menetapkan standar sukarela untuk persentase sejarah 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 mendalam akan melibatkan menghubungkannya ke proses sinkronisasi, sehingga, jika seseorang ingin menyinkronkan simpul penyimpanan sejarah lengkap atau simpul arsip, bahkan jika tidak ada simpul arsip lain yang online, mereka dapat mencapainya melalui sinkronisasi langsung dari jaringan portal.
Bagaimana ia berinteraksi dengan bagian lain dari peta jalan?
Jika kita ingin membuat menjalankan atau memulai 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 sisa sekitar 800 GB telah menjadi sejarah. Hanya dengan mewujudkan tanpa status dan EIP-4444, visi untuk menjalankan node Ethereum di smartwatch dan hanya membutuhkan beberapa menit untuk disetup dapat tercapai.
Pembatasan penyimpanan sejarah juga membuat node Ethereum yang lebih baru menjadi lebih praktis, hanya mendukung versi terbaru dari protokol, yang membuatnya jauh lebih sederhana. Misalnya, sekarang banyak baris kode dapat dihapus dengan aman karena slot penyimpanan kosong yang dibuat selama serangan DoS tahun 2016 telah dihapus sepenuhnya. Sekarang bahwa peralihan ke bukti kepemilikan telah menjadi sejarah, klien dapat dengan aman menghapus semua kode yang terkait dengan bukti pekerjaan.
Masa kadaluarsa negara
masalah apa yang diselesaikan?
Meskipun kami menghilangkan kebutuhan untuk menyimpan riwayat di klien, kebutuhan penyimpanan klien akan terus meningkat sekitar 50 GB per tahun, karena status terus berkembang: saldo akun dan angka acak, kode kontrak, dan penyimpanan kontrak. Pengguna dapat membayar biaya sekali, sehingga membebani klien Ethereum sekarang dan di masa depan selamanya.
Status lebih sulit untuk "kedaluwarsa" daripada sejarah, karena EVM pada dasarnya dirancang dengan asumsi ini: setelah objek status dibuat, ia akan selalu ada dan dapat dibaca kapan saja oleh transaksi mana pun. Jika kita memperkenalkan tanpa status, beberapa orang berpendapat bahwa masalah ini mungkin tidak seburuk itu: hanya kelas pembangun blok khusus yang perlu menyimpan status secara nyata, sementara semua node lainnya (bahkan yang mencakup pembuatan daftar!) dapat berjalan 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 (ini dapat terjadi dengan 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 status itu. Sebaliknya, yang kita inginkan adalah objek tersebut secara otomatis kedaluwarsa seiring berjalannya waktu. Tantangan utama adalah melakukannya dengan cara yang memenuhi tiga tujuan:
Efisiensi: Tidak memerlukan banyak perhitungan tambahan untuk menjalankan proses kedaluwarsa.
Kemudahan Penggunaan: Jika seseorang masuk ke gua selama lima tahun dan kembali, mereka seharusnya tidak kehilangan akses ke ETH, ERC20, NFT, dan posisi CDP...
Ramah Pengembang: Pengembang tidak perlu beralih ke model pemikiran yang sepenuhnya tidak familiar. Selain itu, aplikasi yang saat ini sudah kaku dan tidak diperbarui seharusnya dapat terus berfungsi dengan normal.
Tidak memenuhi tujuan-tujuan ini akan membuat masalahnya mudah diselesaikan. Misalnya, Anda dapat membuat setiap objek status juga menyimpan penghitung tanggal kedaluwarsa (yang dapat diperpanjang dengan membakar ETH, yang mungkin terjadi secara otomatis saat membaca atau menulis kapan saja), dan memiliki proses yang melintasi status untuk menghapus objek status yang kadaluwarsa. Namun, ini memperkenalkan perhitungan tambahan (bahkan kebutuhan penyimpanan), dan pasti tidak dapat memenuhi persyaratan kemudahan penggunaan. Para pengembang juga kesulitan untuk menyimpulkan kasus tepi yang melibatkan nilai penyimpanan yang kadang-kadang direset menjadi nol. Jika Anda mengatur penghitung kedaluwarsa dalam ruang lingkup kontrak, ini secara teknis akan mempermudah hidup para pengembang, tetapi akan membuat aspek ekonomi menjadi lebih sulit: para pengembang harus mempertimbangkan bagaimana "mengalihkan" 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 fokus pada dua kategori "solusi yang diketahui tidak terlalu buruk":
Solusi untuk status yang kadaluarsa
Saran kedaluwarsa status berdasarkan siklus alamat.
Partial state expiry bagian status kedaluwarsa
Beberapa proposal status yang kadaluarsa mengikuti prinsip yang sama. Kami membagi status menjadi blok. Setiap orang secara permanen menyimpan "peta tertinggi", di mana blok bisa kosong atau tidak kosong. Data dalam setiap blok hanya akan disimpan jika data tersebut baru-baru ini diakses. Ada mekanisme "kebangkitan", jika tidak lagi disimpan.
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.
10 Suka
Hadiah
10
7
Bagikan
Komentar
0/400
RektButStillHere
· 8jam yang lalu
Data on-chain menumpuk terlalu menakutkan
Lihat AsliBalas0
NonFungibleDegen
· 19jam yang lalu
bearish af pada rantai yang bengkak... mungkin tidak ada ser
Lihat AsliBalas0
BackrowObserver
· 19jam yang lalu
Dompet ini menyinkronkan dengan sangat lambat, bisa membuat pemula mundur.
Lihat AsliBalas0
MetamaskMechanic
· 19jam yang lalu
Blockchain老司机 Lagi mau dioptimalkan
Lihat AsliBalas0
MysteriousZhang
· 19jam yang lalu
Akar, kita perlu mendukung program penurunan berat badan.
Rencana Jangka Panjang Ethereum: Bagaimana The Purge Menyeimbangkan Daya Tahan dan Kompleksitas
Masa Depan Ethereum yang Mungkin: The Purge
Salah satu tantangan yang dihadapi Ethereum adalah, secara default, pembengkakan dan kompleksitas protokol blockchain mana pun akan meningkat seiring berjalannya waktu. Ini terjadi di dua tempat:
Data Historis: Setiap transaksi yang dilakukan dan setiap akun yang dibuat pada waktu bersejarah mana pun harus disimpan secara permanen oleh semua klien dan diunduh oleh klien baru mana pun, sehingga sepenuhnya disinkronkan dengan jaringan. Ini akan menyebabkan beban klien dan waktu sinkronisasi meningkat seiring berjalannya waktu, bahkan jika kapasitas rantai tetap sama.
Fitur protokol: Menambahkan fitur baru jauh lebih mudah daripada menghapus fitur lama, yang mengakibatkan kompleksitas kode meningkat seiring berjalannya waktu.
Untuk memastikan Ethereum dapat bertahan dalam jangka panjang, kita perlu menerapkan tekanan balik yang kuat terhadap kedua tren ini, mengurangi kompleksitas dan pembengkakan seiring waktu. Namun, pada saat yang sama, kita perlu mempertahankan salah satu atribut kunci yang membuat blockchain menjadi hebat: ketahanan. Anda dapat menempatkan sebuah NFT, sebuah surat cinta dalam data panggilan transaksi, atau sebuah kontrak pintar yang berisi 1.000.000 USD di atas rantai, masuk ke sebuah gua selama sepuluh tahun, dan ketika keluar, menemukan bahwa itu masih ada menunggu Anda untuk membaca dan berinteraksi. Agar DApp dapat sepenuhnya terdesentralisasi dengan tenang dan menghapus kunci upgrade, mereka perlu yakin bahwa ketergantungan mereka tidak akan diupgrade dengan cara yang merusak mereka - terutama L1 itu sendiri.
Jika kita bertekad untuk mencapai keseimbangan antara kedua kebutuhan ini, dan meminimalkan atau membalikkan pembengkakan, kompleksitas, dan kemunduran sambil menjaga kontinuitas, itu adalah hal yang sangat mungkin. Organisme dapat melakukannya: meskipun sebagian besar organisme mengalami penuaan seiring waktu, beberapa yang beruntung tidak. Bahkan sistem sosial juga dapat memiliki umur yang sangat panjang. Dalam beberapa kasus, Ethereum telah berhasil: bukti kerja telah menghilang, opcode SELFDESTRUCT sebagian besar telah menghilang, dan node rantai beacon telah menyimpan data lama hingga enam bulan. Menemukan jalan ini untuk Ethereum dengan cara yang lebih umum dan menuju hasil akhir yang stabil dalam jangka panjang adalah tantangan utama untuk skalabilitas jangka panjang Ethereum, keberlanjutan teknologi, bahkan keamanan.
The Purge: Tujuan Utama.
Mengurangi kebutuhan penyimpanan klien dengan mengurangi atau menghilangkan kebutuhan setiap node untuk menyimpan semua riwayat bahkan status akhir secara permanen.
Mengurangi kompleksitas protokol dengan menghilangkan fungsi yang tidak diperlukan.
Daftar Isi:
Kadaluarsa sejarah
Apa masalah yang diselesaikan?
Hingga saat penulisan ini, node Ethereum yang sepenuhnya disinkronkan memerlukan sekitar 1,1 TB ruang disk untuk menjalankan klien, dan juga memerlukan ratusan GB ruang disk untuk klien konsensus. Sebagian besar dari ini adalah sejarah: data tentang blok, transaksi, dan bukti sejarah, sebagian besar dari mana sudah berusia 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 sejarah adalah bahwa karena setiap blok terhubung ke blok sebelumnya melalui tautan hash (dan struktur lainnya), mencapai konsensus saat ini sudah cukup untuk mencapai konsensus sejarah. Selama jaringan mencapai konsensus pada blok terbaru, blok sejarah, transaksi, atau status (saldo akun, angka acak, kode, penyimpanan) dapat disediakan oleh peserta individu 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 riwayat. Salah satu pilihan yang alami adalah jaringan di mana setiap node hanya menyimpan sebagian kecil data. Inilah cara kerja jaringan benih selama beberapa dekade: meskipun jaringan menyimpan dan mendistribusikan jutaan file, setiap peserta hanya menyimpan dan mendistribusikan beberapa file di antaranya. Mungkin bertentangan dengan intuisi, pendekatan ini bahkan tidak selalu mengurangi ketahanan data. Jika kita dapat membangun jaringan dengan 100.000 node di mana setiap node menyimpan 10% riwayat secara acak dengan cara yang lebih ekonomis, maka setiap data akan disalin 10.000 kali - sama dengan faktor salinan dari jaringan 10.000 node - di mana setiap node menyimpan semua konten.
Saat ini, Ethereum telah mulai melepaskan model di mana semua node menyimpan semua riwayat secara permanen. Blok konsensus (yaitu bagian yang terkait dengan 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 terpadu (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 menerapkan kode penghapusan untuk mendukung pengambilan data yang tersedia. Solusi yang paling sederhana kemungkinan adalah menggunakan kembali kode penghapusan ini, dan juga memasukkan blok data eksekusi dan konsensus ke dalam blob.
memiliki hubungan dengan penelitian yang ada?
Apa lagi yang perlu dilakukan, apa yang perlu dipertimbangkan?
Pekerjaan utama yang tersisa termasuk membangun dan mengintegrasikan solusi terdistribusi konkret untuk menyimpan catatan sejarah------setidaknya catatan eksekusi, tetapi pada akhirnya juga termasuk konsensus dan blob. Solusi paling sederhana adalah (i) cukup dengan memperkenalkan pustaka torrent yang ada, serta (ii) solusi asli Ethereum yang disebut jaringan Portal. Setelah salah satu dari keduanya diperkenalkan, kita dapat membuka EIP-4444. EIP-4444 sendiri tidak memerlukan hard fork, tetapi memang memerlukan versi protokol jaringan baru. Oleh karena itu, mengaktifkannya untuk semua klien secara bersamaan adalah hal yang berharga, jika tidak ada risiko klien mengalami kegagalan karena terhubung ke node lain dengan harapan mengunduh catatan sejarah lengkap tetapi sebenarnya tidak didapat.
Pertimbangan utama melibatkan bagaimana kita berusaha untuk menyediakan data sejarah "kuno". Solusi termudah adalah menghentikan penyimpanan sejarah kuno besok dan bergantung pada node arsip yang ada dan berbagai penyedia terpusat untuk replikasi. Ini mudah, tetapi ini melemahkan posisi Ethereum sebagai tempat catatan permanen. Cara yang lebih sulit tetapi lebih aman adalah 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 integrasi penyimpanan sejarah ke dalam protokol?
Salah satu metode ekstrem yang sangat paranoid untuk (1) akan melibatkan bukti penahanan: pada kenyataannya, mengharuskan setiap validator bukti kepemilikan untuk menyimpan proporsi tertentu dari catatan sejarah, dan secara berkala memeriksa dengan cara yang terenkripsi apakah mereka melakukannya. Metode yang lebih lunak adalah menetapkan standar sukarela untuk persentase sejarah 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 mendalam akan melibatkan menghubungkannya ke proses sinkronisasi, sehingga, jika seseorang ingin menyinkronkan simpul penyimpanan sejarah lengkap atau simpul arsip, bahkan jika tidak ada simpul arsip lain yang online, mereka dapat mencapainya melalui sinkronisasi langsung dari jaringan portal.
Bagaimana ia berinteraksi dengan bagian lain dari peta jalan?
Jika kita ingin membuat menjalankan atau memulai 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 sisa sekitar 800 GB telah menjadi sejarah. Hanya dengan mewujudkan tanpa status dan EIP-4444, visi untuk menjalankan node Ethereum di smartwatch dan hanya membutuhkan beberapa menit untuk disetup dapat tercapai.
Pembatasan penyimpanan sejarah juga membuat node Ethereum yang lebih baru menjadi lebih praktis, hanya mendukung versi terbaru dari protokol, yang membuatnya jauh lebih sederhana. Misalnya, sekarang banyak baris kode dapat dihapus dengan aman karena slot penyimpanan kosong yang dibuat selama serangan DoS tahun 2016 telah dihapus sepenuhnya. Sekarang bahwa peralihan ke bukti kepemilikan telah menjadi sejarah, klien dapat dengan aman menghapus semua kode yang terkait dengan bukti pekerjaan.
Masa kadaluarsa negara
masalah apa yang diselesaikan?
Meskipun kami menghilangkan kebutuhan untuk menyimpan riwayat di klien, kebutuhan penyimpanan klien akan terus meningkat sekitar 50 GB per tahun, karena status terus berkembang: saldo akun dan angka acak, kode kontrak, dan penyimpanan kontrak. Pengguna dapat membayar biaya sekali, sehingga membebani klien Ethereum sekarang dan di masa depan selamanya.
Status lebih sulit untuk "kedaluwarsa" daripada sejarah, karena EVM pada dasarnya dirancang dengan asumsi ini: setelah objek status dibuat, ia akan selalu ada dan dapat dibaca kapan saja oleh transaksi mana pun. Jika kita memperkenalkan tanpa status, beberapa orang berpendapat bahwa masalah ini mungkin tidak seburuk itu: hanya kelas pembangun blok khusus yang perlu menyimpan status secara nyata, sementara semua node lainnya (bahkan yang mencakup pembuatan daftar!) dapat berjalan 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 (ini dapat terjadi dengan 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 status itu. Sebaliknya, yang kita inginkan adalah objek tersebut secara otomatis kedaluwarsa seiring berjalannya waktu. Tantangan utama adalah melakukannya dengan cara yang memenuhi tiga tujuan:
Efisiensi: Tidak memerlukan banyak perhitungan tambahan untuk menjalankan proses kedaluwarsa.
Kemudahan Penggunaan: Jika seseorang masuk ke gua selama lima tahun dan kembali, mereka seharusnya tidak kehilangan akses ke ETH, ERC20, NFT, dan posisi CDP...
Ramah Pengembang: Pengembang tidak perlu beralih ke model pemikiran yang sepenuhnya tidak familiar. Selain itu, aplikasi yang saat ini sudah kaku dan tidak diperbarui seharusnya dapat terus berfungsi dengan normal.
Tidak memenuhi tujuan-tujuan ini akan membuat masalahnya mudah diselesaikan. Misalnya, Anda dapat membuat setiap objek status juga menyimpan penghitung tanggal kedaluwarsa (yang dapat diperpanjang dengan membakar ETH, yang mungkin terjadi secara otomatis saat membaca atau menulis kapan saja), dan memiliki proses yang melintasi status untuk menghapus objek status yang kadaluwarsa. Namun, ini memperkenalkan perhitungan tambahan (bahkan kebutuhan penyimpanan), dan pasti tidak dapat memenuhi persyaratan kemudahan penggunaan. Para pengembang juga kesulitan untuk menyimpulkan kasus tepi yang melibatkan nilai penyimpanan yang kadang-kadang direset menjadi nol. Jika Anda mengatur penghitung kedaluwarsa dalam ruang lingkup kontrak, ini secara teknis akan mempermudah hidup para pengembang, tetapi akan membuat aspek ekonomi menjadi lebih sulit: para pengembang harus mempertimbangkan bagaimana "mengalihkan" 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 fokus pada dua kategori "solusi yang diketahui tidak terlalu buruk":
Partial state expiry bagian status kedaluwarsa
Beberapa proposal status yang kadaluarsa mengikuti prinsip yang sama. Kami membagi status menjadi blok. Setiap orang secara permanen menyimpan "peta tertinggi", di mana blok bisa kosong atau tidak kosong. Data dalam setiap blok hanya akan disimpan jika data tersebut baru-baru ini diakses. Ada mekanisme "kebangkitan", jika tidak lagi disimpan.