Salah satu tantangan yang dihadapi Ethereum adalah, secara default, pembengkakan dan kompleksitas dari setiap protokol blockchain akan meningkat seiring berjalannya waktu. Ini terjadi di dua tempat:
Data historis: Setiap transaksi yang dilakukan dan setiap akun yang dibuat pada waktu mana pun dalam sejarah perlu 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 terus meningkat seiring berjalannya waktu, bahkan jika kapasitas rantai tetap sama.
Fungsi protokol: Menambahkan fitur baru jauh lebih mudah daripada menghapus fitur lama, yang menyebabkan kompleksitas kode meningkat seiring waktu.
Untuk memastikan Ethereum dapat bertahan dalam jangka panjang, kita perlu memberikan tekanan balik yang kuat terhadap kedua tren ini, mengurangi kompleksitas dan pembengkakan seiring berjalannya waktu. Namun, pada saat yang sama, kita perlu mempertahankan salah satu atribut kunci yang membuat blockchain menjadi hebat: ketahanan. Anda dapat meletakkan NFT, sebuah surat cinta dalam data panggilan transaksi, atau kontrak pintar senilai 1 juta dolar di atas rantai, masuk ke sebuah gua selama sepuluh tahun, dan saat keluar, menemukan bahwa itu masih ada menunggu Anda untuk dibaca dan berinteraksi. Agar DApp dapat sepenuhnya terdesentralisasi dengan tenang dan menghapus kunci pemutakhiran, mereka perlu yakin bahwa ketergantungan mereka tidak akan diperbarui dengan cara yang merusak mereka - terutama L1 itu sendiri.
Jika kita bertekad untuk menyeimbangkan antara kedua kebutuhan ini, dan meminimalkan atau membalikkan pembengkakan, kompleksitas, dan penurunan sambil mempertahankan kontinuitas, hal ini tentu saja mungkin. Organisme dapat melakukannya: meskipun sebagian besar organisme menua seiring waktu, beberapa keberuntungan tidak. Bahkan sistem sosial 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 persyaratan penyimpanan klien dengan mengurangi atau menghilangkan kebutuhan setiap node untuk menyimpan secara permanen semua riwayat bahkan status akhir.
Mengurangi kompleksitas protokol dengan menghilangkan fitur yang tidak perlu.
Daftar Isi:
Kedaluwarsa riwayat(历史记录到期)
Kedaluwarsa status(状态到期)
Pembersihan fitur
Riwayat kedaluwarsa
Masalah apa yang diselesaikan?
Hingga saat penulisan ini, node Ethereum yang sepenuhnya disinkronkan memerlukan sekitar 1,1 TB ruang disk untuk menjalankan klien, ditambah lagi beberapa ratus GB ruang disk untuk klien konsensus. Sebagian besar adalah data sejarah: data tentang blok, transaksi, dan bukti sejarah, yang sebagian besar sudah berumur beberapa tahun. Ini berarti bahwa bahkan jika batas Gas tidak meningkat sama sekali, ukuran node akan terus bertambah beberapa ratus GB setiap tahun.
Apa itu, dan bagaimana cara kerjanya?
Salah satu fitur penyederhanaan kunci dari masalah penyimpanan sejarah adalah, karena setiap blok menunjuk ke blok sebelumnya melalui tautan hash (dan struktur lainnya), konsensus saat ini sudah cukup untuk mencapai konsensus sejarah. Selama jaringan mencapai konsensus pada blok terbaru, setiap blok atau transaksi atau status sejarah (saldo akun, nomor acak, kode, penyimpanan) dapat disediakan oleh peserta tunggal mana pun serta bukti Merkle, dan bukti tersebut memungkinkan orang lain untuk memverifikasi keakuratannya. Konsensus adalah model kepercayaan N/2-of-N, sedangkan sejarah adalah model kepercayaan N-of-N.
Ini memberikan banyak pilihan tentang bagaimana kita menyimpan catatan sejarah. 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 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 dapat 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 persis dengan faktor penggandaan 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 sejarah secara permanen. Blok konsensus (yaitu bagian yang terkait dengan konsensus proof-of-stake) hanya menyimpan sekitar 6 bulan. Blob hanya menyimpan sekitar 18 hari. EIP-4444 bertujuan untuk memperkenalkan periode penyimpanan satu tahun untuk blok dan bukti sejarah. Tujuan jangka panjang adalah untuk membangun satu periode terintegrasi (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 pengambilan data yang tersedia. Solusi yang paling sederhana kemungkinan adalah menggunakan kembali kode penghapusan ini dan juga menempatkan data eksekusi dan konsensus blok ke dalam blob.
Apa hubungan dengan penelitian yang ada?
EIP-4444;
Torrents dan EIP-4444;
Jaringan portal;
Jaringan portal dan EIP-4444;
Penyimpanan dan pengambilan terdistribusi objek SSZ 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 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 bernama Portal Network. Setelah 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 untuk semua klien secara bersamaan adalah hal yang berharga; jika tidak, ada risiko klien mengalami kegagalan karena terhubung ke node lain yang mengharapkan untuk mengunduh riwayat lengkap tetapi sebenarnya tidak mendapatkan.
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 replikasi. Ini mudah, tetapi ini melemahkan posisi Ethereum sebagai tempat catatan permanen. Cara yang lebih sulit tetapi lebih aman adalah dengan terlebih dahulu membangun dan mengintegrasikan jaringan torrent untuk menyimpan sejarah 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 historis ke dalam protokol?
Salah satu pendekatan ekstrem untuk (1) akan melibatkan bukti kustodian: pada dasarnya mengharuskan setiap validator bukti kepemilikan untuk menyimpan proporsi tertentu dari catatan sejarah dan secara berkala memverifikasi secara kriptografis apakah mereka melakukannya. Pendekatan yang lebih lunak adalah menetapkan standar sukarela untuk persentase sejarah yang disimpan oleh setiap klien.
Untuk (2), implementasi dasar hanya melibatkan pekerjaan yang telah diselesaikan 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 sejarah lengkap atau node arsip, bahkan jika tidak ada node 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 node berjalan atau memulai menjadi sangat mudah, maka mengurangi kebutuhan penyimpanan sejarah bisa dibilang lebih penting daripada tanpa status: dari 1,1 TB yang diperlukan node, sekitar 300 GB adalah status, dan sisa sekitar 800 GB telah menjadi sejarah. Hanya dengan mencapai tanpa status dan EIP-4444, visi untuk menjalankan node Ethereum di jam tangan pintar dan hanya membutuhkan beberapa menit untuk diatur dapat terwujud.
Pembatasan penyimpanan sejarah juga membuat node Ethereum yang lebih baru lebih dapat dilakukan, hanya mendukung versi terbaru dari protokol, yang membuatnya menjadi 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 semua. Sekarang, karena peralihan ke bukti kepemilikan telah menjadi sejarah, klien dapat dengan aman menghapus semua kode yang terkait dengan bukti kerja.
Masa berlaku 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 tumbuh: saldo akun dan nomor acak, kode kontrak dan penyimpanan kontrak. Pengguna dapat membayar biaya sekali, sehingga membebani klien Ethereum sekarang dan di masa depan selamanya.
Status lebih sulit "kedaluwarsa" dibandingkan sejarah, karena EVM dirancang berdasarkan asumsi bahwa: setelah objek status dibuat, ia akan selalu ada dan dapat dibaca kapan saja oleh transaksi apa pun. Jika kita memperkenalkan tanpa status, beberapa orang berpendapat bahwa masalah ini mungkin tidak begitu buruk: hanya kelas pembangun blok khusus yang perlu menyimpan status secara nyata, sementara semua node lain (bahkan yang mencakup daftar generasi!) dapat beroperasi tanpa status. Namun, ada pandangan bahwa kita tidak ingin terlalu bergantung pada tanpa status; pada akhirnya, kita mungkin ingin membuat status kedaluwarsa untuk mempertahankan desentralisasi Ethereum.
Apa itu, dan bagaimana cara kerjanya
Hari ini, ketika Anda membuat objek status baru (ini 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 terjangkau), objek status tersebut akan selalu berada dalam status itu. Sebaliknya, yang kami inginkan adalah objek tersebut secara otomatis kedaluwarsa seiring berjalannya waktu. Tantangan utama adalah melakukan ini dengan cara yang memenuhi tiga tujuan:
Efisiensi: Tidak perlu banyak perhitungan tambahan untuk menjalankan proses jatuh tempo.
Kemudahan penggunaan: Jika seseorang masuk ke dalam gua selama lima tahun dan kembali, mereka seharusnya tidak kehilangan akses ke posisi ETH, ERC20, NFT, CDP...
Keterpahaman Pengembang: Pengembang tidak perlu beralih ke model pemikiran yang sepenuhnya tidak dikenal. Selain itu, aplikasi yang saat ini kaku dan tidak diperbarui seharusnya dapat terus berjalan dengan normal.
Tidak memenuhi tujuan ini sangat mudah untuk menyelesaikan masalah. Misalnya, Anda dapat membuat setiap objek status juga menyimpan penghitung tanggal kedaluwarsa (yang dapat diperpanjang dengan membakar ETH, yang mungkin secara otomatis terjadi kapan saja saat dibaca atau ditulis), dan memiliki proses yang melintasi status untuk menghapus objek status tanggal kedaluwarsa. Namun, ini memperkenalkan perhitungan tambahan (bahkan kebutuhan penyimpanan), dan itu pasti tidak dapat memenuhi persyaratan ramah pengguna. Pengembang juga sulit untuk menyimpulkan keadaan tepi yang melibatkan nilai penyimpanan yang kadang-kadang direset menjadi nol. Jika Anda mengatur pengatur waktu kedaluwarsa dalam ruang lingkup kontrak, ini secara teknis akan memudahkan hidup pengembang, tetapi akan membuat ekonomi menjadi lebih sulit: 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 dan fokus pada dua kategori "solusi yang paling tidak buruk yang diketahui":
Solusi status sebagian kedaluwarsa
Saran kedaluwarsa status 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 "peta teratas", di mana blok dapat kosong atau tidak kosong. Hanya data dalam setiap blok yang akan disimpan jika data tersebut baru-baru ini diakses. Ada mekanisme "kebangkitan", jika tidak lagi disimpan
Perbedaan utama antara proposal ini adalah: (i) bagaimana kita mendefinisikan "terakhir",
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
8 Suka
Hadiah
8
6
Bagikan
Komentar
0/400
GateUser-3824aa38
· 15jam yang lalu
Sampai kapan sinkronisasi ini akan selesai?
Lihat AsliBalas0
CryptoNomics
· 15jam yang lalu
*sigh* sebenarnya pembengkakan protokol mengikuti fungsi pertumbuhan logaritmik: P(t) = k*ln(t) + c... tapi kalian belum siap untuk percakapan itu
Lihat AsliBalas0
TokenStorm
· 15jam yang lalu
Data on-chain meledak, Ethereum sepertinya tidak bisa bertahan.
Lihat AsliBalas0
DefiVeteran
· 15jam yang lalu
Penghapusan data masih bergantung pada Tuhan V
Lihat AsliBalas0
rug_connoisseur
· 15jam yang lalu
Beban sejarah terlalu berat.
Lihat AsliBalas0
OnchainGossiper
· 15jam yang lalu
Sederhananya, itu berarti ingin diet karena sudah gemuk.
Perjalanan Transformasi Ethereum: The Purge Menjelajahi Paradigma Baru Manajemen Data on-chain
Masa Depan Potensial Ethereum: The Purge
Salah satu tantangan yang dihadapi Ethereum adalah, secara default, pembengkakan dan kompleksitas dari setiap protokol blockchain akan meningkat seiring berjalannya waktu. Ini terjadi di dua tempat:
Data historis: Setiap transaksi yang dilakukan dan setiap akun yang dibuat pada waktu mana pun dalam sejarah perlu 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 terus meningkat seiring berjalannya waktu, bahkan jika kapasitas rantai tetap sama.
Fungsi protokol: Menambahkan fitur baru jauh lebih mudah daripada menghapus fitur lama, yang menyebabkan kompleksitas kode meningkat seiring waktu.
Untuk memastikan Ethereum dapat bertahan dalam jangka panjang, kita perlu memberikan tekanan balik yang kuat terhadap kedua tren ini, mengurangi kompleksitas dan pembengkakan seiring berjalannya waktu. Namun, pada saat yang sama, kita perlu mempertahankan salah satu atribut kunci yang membuat blockchain menjadi hebat: ketahanan. Anda dapat meletakkan NFT, sebuah surat cinta dalam data panggilan transaksi, atau kontrak pintar senilai 1 juta dolar di atas rantai, masuk ke sebuah gua selama sepuluh tahun, dan saat keluar, menemukan bahwa itu masih ada menunggu Anda untuk dibaca dan berinteraksi. Agar DApp dapat sepenuhnya terdesentralisasi dengan tenang dan menghapus kunci pemutakhiran, mereka perlu yakin bahwa ketergantungan mereka tidak akan diperbarui dengan cara yang merusak mereka - terutama L1 itu sendiri.
Jika kita bertekad untuk menyeimbangkan antara kedua kebutuhan ini, dan meminimalkan atau membalikkan pembengkakan, kompleksitas, dan penurunan sambil mempertahankan kontinuitas, hal ini tentu saja mungkin. Organisme dapat melakukannya: meskipun sebagian besar organisme menua seiring waktu, beberapa keberuntungan tidak. Bahkan sistem sosial 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 persyaratan penyimpanan klien dengan mengurangi atau menghilangkan kebutuhan setiap node untuk menyimpan secara permanen semua riwayat bahkan status akhir.
Mengurangi kompleksitas protokol dengan menghilangkan fitur yang tidak perlu.
Daftar Isi:
Kedaluwarsa riwayat(历史记录到期)
Kedaluwarsa status(状态到期)
Pembersihan fitur
Riwayat kedaluwarsa
Masalah apa yang diselesaikan?
Hingga saat penulisan ini, node Ethereum yang sepenuhnya disinkronkan memerlukan sekitar 1,1 TB ruang disk untuk menjalankan klien, ditambah lagi beberapa ratus GB ruang disk untuk klien konsensus. Sebagian besar adalah data sejarah: data tentang blok, transaksi, dan bukti sejarah, yang sebagian besar sudah berumur beberapa tahun. Ini berarti bahwa bahkan jika batas Gas tidak meningkat sama sekali, ukuran node akan terus bertambah beberapa ratus GB setiap tahun.
Apa itu, dan bagaimana cara kerjanya?
Salah satu fitur penyederhanaan kunci dari masalah penyimpanan sejarah adalah, karena setiap blok menunjuk ke blok sebelumnya melalui tautan hash (dan struktur lainnya), konsensus saat ini sudah cukup untuk mencapai konsensus sejarah. Selama jaringan mencapai konsensus pada blok terbaru, setiap blok atau transaksi atau status sejarah (saldo akun, nomor acak, kode, penyimpanan) dapat disediakan oleh peserta tunggal mana pun serta bukti Merkle, dan bukti tersebut memungkinkan orang lain untuk memverifikasi keakuratannya. Konsensus adalah model kepercayaan N/2-of-N, sedangkan sejarah adalah model kepercayaan N-of-N.
Ini memberikan banyak pilihan tentang bagaimana kita menyimpan catatan sejarah. 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 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 dapat 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 persis dengan faktor penggandaan 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 sejarah secara permanen. Blok konsensus (yaitu bagian yang terkait dengan konsensus proof-of-stake) hanya menyimpan sekitar 6 bulan. Blob hanya menyimpan sekitar 18 hari. EIP-4444 bertujuan untuk memperkenalkan periode penyimpanan satu tahun untuk blok dan bukti sejarah. Tujuan jangka panjang adalah untuk membangun satu periode terintegrasi (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 pengambilan data yang tersedia. Solusi yang paling sederhana kemungkinan adalah menggunakan kembali kode penghapusan ini dan juga menempatkan data eksekusi dan konsensus blok ke dalam blob.
Apa hubungan dengan penelitian yang ada?
EIP-4444;
Torrents dan EIP-4444;
Jaringan portal;
Jaringan portal dan EIP-4444;
Penyimpanan dan pengambilan terdistribusi objek SSZ 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 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 bernama Portal Network. Setelah 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 untuk semua klien secara bersamaan adalah hal yang berharga; jika tidak, ada risiko klien mengalami kegagalan karena terhubung ke node lain yang mengharapkan untuk mengunduh riwayat lengkap tetapi sebenarnya tidak mendapatkan.
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 replikasi. Ini mudah, tetapi ini melemahkan posisi Ethereum sebagai tempat catatan permanen. Cara yang lebih sulit tetapi lebih aman adalah dengan terlebih dahulu membangun dan mengintegrasikan jaringan torrent untuk menyimpan sejarah 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 historis ke dalam protokol?
Salah satu pendekatan ekstrem untuk (1) akan melibatkan bukti kustodian: pada dasarnya mengharuskan setiap validator bukti kepemilikan untuk menyimpan proporsi tertentu dari catatan sejarah dan secara berkala memverifikasi secara kriptografis apakah mereka melakukannya. Pendekatan yang lebih lunak adalah menetapkan standar sukarela untuk persentase sejarah yang disimpan oleh setiap klien.
Untuk (2), implementasi dasar hanya melibatkan pekerjaan yang telah diselesaikan 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 sejarah lengkap atau node arsip, bahkan jika tidak ada node 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 node berjalan atau memulai menjadi sangat mudah, maka mengurangi kebutuhan penyimpanan sejarah bisa dibilang lebih penting daripada tanpa status: dari 1,1 TB yang diperlukan node, sekitar 300 GB adalah status, dan sisa sekitar 800 GB telah menjadi sejarah. Hanya dengan mencapai tanpa status dan EIP-4444, visi untuk menjalankan node Ethereum di jam tangan pintar dan hanya membutuhkan beberapa menit untuk diatur dapat terwujud.
Pembatasan penyimpanan sejarah juga membuat node Ethereum yang lebih baru lebih dapat dilakukan, hanya mendukung versi terbaru dari protokol, yang membuatnya menjadi 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 semua. Sekarang, karena peralihan ke bukti kepemilikan telah menjadi sejarah, klien dapat dengan aman menghapus semua kode yang terkait dengan bukti kerja.
Masa berlaku 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 tumbuh: saldo akun dan nomor acak, kode kontrak dan penyimpanan kontrak. Pengguna dapat membayar biaya sekali, sehingga membebani klien Ethereum sekarang dan di masa depan selamanya.
Status lebih sulit "kedaluwarsa" dibandingkan sejarah, karena EVM dirancang berdasarkan asumsi bahwa: setelah objek status dibuat, ia akan selalu ada dan dapat dibaca kapan saja oleh transaksi apa pun. Jika kita memperkenalkan tanpa status, beberapa orang berpendapat bahwa masalah ini mungkin tidak begitu buruk: hanya kelas pembangun blok khusus yang perlu menyimpan status secara nyata, sementara semua node lain (bahkan yang mencakup daftar generasi!) dapat beroperasi tanpa status. Namun, ada pandangan bahwa kita tidak ingin terlalu bergantung pada tanpa status; pada akhirnya, kita mungkin ingin membuat status kedaluwarsa untuk mempertahankan desentralisasi Ethereum.
Apa itu, dan bagaimana cara kerjanya
Hari ini, ketika Anda membuat objek status baru (ini 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 terjangkau), objek status tersebut akan selalu berada dalam status itu. Sebaliknya, yang kami inginkan adalah objek tersebut secara otomatis kedaluwarsa seiring berjalannya waktu. Tantangan utama adalah melakukan ini dengan cara yang memenuhi tiga tujuan:
Efisiensi: Tidak perlu banyak perhitungan tambahan untuk menjalankan proses jatuh tempo.
Kemudahan penggunaan: Jika seseorang masuk ke dalam gua selama lima tahun dan kembali, mereka seharusnya tidak kehilangan akses ke posisi ETH, ERC20, NFT, CDP...
Keterpahaman Pengembang: Pengembang tidak perlu beralih ke model pemikiran yang sepenuhnya tidak dikenal. Selain itu, aplikasi yang saat ini kaku dan tidak diperbarui seharusnya dapat terus berjalan dengan normal.
Tidak memenuhi tujuan ini sangat mudah untuk menyelesaikan masalah. Misalnya, Anda dapat membuat setiap objek status juga menyimpan penghitung tanggal kedaluwarsa (yang dapat diperpanjang dengan membakar ETH, yang mungkin secara otomatis terjadi kapan saja saat dibaca atau ditulis), dan memiliki proses yang melintasi status untuk menghapus objek status tanggal kedaluwarsa. Namun, ini memperkenalkan perhitungan tambahan (bahkan kebutuhan penyimpanan), dan itu pasti tidak dapat memenuhi persyaratan ramah pengguna. Pengembang juga sulit untuk menyimpulkan keadaan tepi yang melibatkan nilai penyimpanan yang kadang-kadang direset menjadi nol. Jika Anda mengatur pengatur waktu kedaluwarsa dalam ruang lingkup kontrak, ini secara teknis akan memudahkan hidup pengembang, tetapi akan membuat ekonomi menjadi lebih sulit: 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 dan fokus pada dua kategori "solusi yang paling tidak buruk yang diketahui":
Kadaluarsa status parsial
Beberapa proposal status yang kedaluwarsa mengikuti prinsip yang sama. Kami membagi status menjadi blok. Setiap orang secara permanen menyimpan "peta teratas", di mana blok dapat kosong atau tidak kosong. Hanya data dalam setiap blok yang akan disimpan jika data tersebut baru-baru ini diakses. Ada mekanisme "kebangkitan", jika tidak lagi disimpan
Perbedaan utama antara proposal ini adalah: (i) bagaimana kita mendefinisikan "terakhir",