MSTR Cat

Blockchain/Tahap VII · Evolusi/7.1 Ethereum: komputer dunia/Pelajaran 2

Akaun dan keadaan global

Dari syiling berasingan kepada satu keadaan global yang boleh diubah.

BahanKertas Kuning Ethereum (G. Wood)Kertas putih Ethereum oleh Vitalik Buterin (2013/2014)Akses ke Etherscan atau peneroka blok Ethereum yang lain

Ingin tahu

  1. Mengapa menganggarkan kekayaan sebagai kumpulan hasil yang belum digunakan menyukarkan penulisan program serba guna?
  2. Apakah akibat mekanikal yang timbul daripada membenarkan sebarang transaksi membaca dan menulis keseluruhan storan rangkaian?
  3. Bagaimanakah model berasaskan akaun mengubah kos untuk mengesahkan sejarah berbanding dengan set UTXO?

Teroka

  1. Bitcoin menjejak nilai melalui output transaksi yang belum digunakan, atau UTXO. Setiap transaksi menggunakan input tertentu dan menghasilkan output baru; proses pengesahan hanya memeriksa syiling yang digunakan (pelajaran 2.2.1). Model ini bersifat setempat dan diskret. Ethereum, yang dilancarkan pada Julai 2015 oleh Vitalik Buterin serta rakan-rakan pengasas termasuk Gavin Wood, menggunakan mesin keadaan berasaskan akaun. Setiap alamat mempunyai baki yang dikemaskini secara langsung. Seluruh sejarah rangkaian ini disimpan dalam satu objek keadaan global: baki semasa semua akaun serta ruang penyimpanan bagi semua kontrak yang digunakan.
  2. Dalam model ini, terdapat dua jenis akaun: akaun yang dimiliki secara luaran (EOA), yang dikawal oleh kunci peribadi, dan akaun kontrak, yang dikawal oleh kod. EOA memulakan transaksi; manakala akaun kontrak hanya melaksanakan logik apabila dipanggil. Fungsi peralihan keadaan mengambil keadaan global semasa dan sebuah transaksi, kemudian menghasilkan keadaan global yang baru. Oleh kerana setiap nod mengira peralihan ini secara deterministik daripada titik permulaan yang sama, konsensus dapat terbentuk tanpa memerlukan kepercayaan. Struktur ini memungkinkan pengiraan serba guna, kerana mana-mana akaun boleh menyimpan data apa sahaja dalam storannya.
  3. Kemampuan ekspresif model akaun ini memungkinkan penggunaan aplikasi yang kompleks seperti pertukaran terdesentralisasi dan protokol pinjaman. Sebuah kontrak boleh menyimpan nilai berbilion-bilion dolar dan melaksanakan logik yang rumit berdasarkan keadaan global. Namun, kuasa ini juga membawa risiko kerentanan. Memandangkan keadaan kontrak itu boleh diubah dan dikongsi, ralat kecil dalam kod sesuatu kontrak boleh menyebabkan keseluruhan baki akaun tersebut hilang atau merosakkan kontrak-kontrak yang berkaitan dengannya. Kerentanan re-entrancy yang dieksploitasi dalam serangan terhadap The DAO (Jun 2016) menunjukkan bagaimana kecacatan setempat boleh mempengaruhi keadaan global, sehingga membawa kepada pembentukan versi baru projek tersebut yang dikendalikan oleh komuniti.
  4. Pertumbuhan keadaan sistem merupakan akibat semula jadi daripada reka bentuk ini. Set UTXO Bitcoin juga bertambah, tetapi setiap entri adalah kecil dan akan dipadamkan apabila digunakan; penyimpanan kontrak Ethereum pula terus berkumpul. Setiap operasi `SSTORE` menambah data yang kekal selama-lamanya melainkan jika dihapuskan secara sengaja (dan ini masih memerlukan penggunaan tenaga komputer). Pertumbuhan yang tidak terhad ini menyebabkan operasi nod penuh menjadi semakin berat dari segi ruang cakera dan memori. Nod perlu menyimpan keseluruhan keadaan sistem global untuk mengesahkan transaksi, sekaligus mencipta keseimbangan antara kemampuan pengiraan dan kos pengesahan.
  5. Ethereum Yellow Paper merumuskan konsep ini sebagai fungsi peralihan keadaan yang deterministik. EVM memproses arahan menggunakan mesin tindanan, di mana operasi seperti `ADD` atau `SLOAD` mengubah konteks pelaksanaan setempat sambil berpotensi mengemaskini penyimpanan akaun global. Reka bentuk ini membolehkan kesempurnaan Turing tetapi memerlukan “gas” untuk memastikan proses selesai. Setiap operasi menggunakan “gas”, yang membantu mencegah gelung tak terhingga dan mengehadkan kos pengiraan bagi setiap transaksi berbanding dengan had “gas” blok tersebut.
  6. Buka alat peneroka blok seperti Etherscan dan periksa interaksi kontrak yang berlaku baru-baru ini. Perhatikan tab ‘Storage’ pada halaman kontrak; ia menyenaraikan pasangan kunci-nilai yang membentuk keadaan berterusan akaun tersebut. Perhatikan bagaimana nilai-nilai ini berubah selepas setiap transaksi yang melibatkan alamat itu. Pandangan ini memperlihatkan realiti sebenar keadaan global: kod bukan sahaja dieksekusi tetapi juga disimpan, dengan data tersebut kekal walaupun selepas pelbagai transaksi dan bertambah dari semasa ke semasa.

Fakta utama

  • Ethereum menggunakan model berasaskan akaun di mana baki dikemaskini secara langsung, berbeza dengan sistem UTXO Bitcoin.
  • Keadaan global merangkumi semua baki akaun dan penyimpanan kontrak, yang boleh dibaca atau ditulis oleh setiap transaksi.
  • Akaun kontrak dikawal oleh kod; akaun yang dimiliki secara luaran dikawal oleh kunci peribadi.
  • Pertumbuhan negeri adalah tidak terhad kerana penyimpanan kontrak berterusan selama-lamanya, sekaligus meningkatkan keperluan perkakasan nod.
  • Satu ralat dalam kontrak pintar boleh menyebabkan keseluruhan baki akaun itu habis disebabkan sifat yang boleh diubah suai bagi keadaan global.
  • EVM menjalankan tugasnya secara deterministik pada setiap nod, memastikan konsensus melalui peralihan keadaan yang serupa.

Latihan sembilan, enam, tiga, satu

9KumpulSenaraikan 9 perbezaan khusus antara model UTXO Bitcoin dan mesin keadaan berasaskan akaun Ethereum dari segi struktur data, skop pengesahan, dan pertumbuhan penyimpanan.
6KelompokkanKumpulkan 9 item ini ke dalam 6 kategori: kekekalan data, kerumitan pengiraan, implikasi keselamatan, penggunaan sumber nod, mekanisme konsensus, dan pengalaman pembangun.
3SaringKurangkan 6 kluster kepada 3 sebab utama mengapa model akaun membolehkan pengiraan serba guna dengan kos peningkatan saiz keadaan.
1KristalkanKeadaan global yang boleh diubah membolehkan interaksi yang kompleks antara kontrak, sesuatu yang sukar dilakukan dalam sistem UTXO.

Semakan fakta

Tarikh, angka dan dakwaan telah disemak berbanding dengan sumber yang diterbitkan yang disenaraikan di bawah.

Buka dalam akademi interaktif →

EN PT ES ZH JA KO RU DE FR