Ethereum menggunakan dua jenis akun: akun yang dimiliki secara eksternal (EOA) dan akun kontrak. EOA dikendalikan oleh kunci privat dan digunakan oleh individu atau aplikasi untuk menandatangani transaksi. Akun ini memiliki struktur yang sederhana. Mereka mencakup nonce, saldo, dan kunci publik yang terkait tetapi tidak memiliki kode internal. Ketika seorang pengguna menandatangani transaksi dari EOA, Mesin Virtual Ethereum (EVM) memverifikasi tanda tangan dan memotong biaya gas sebelum mengeksekusi transaksi. Akun kontrak, sebaliknya, dikendalikan oleh kode dan tidak memulai tindakan sendiri. Mereka hanya merespons transaksi yang dipicu oleh EOA. EVM memproses logika kontrak dan menyimpan status, tetapi kontrak tidak dapat menandatangani transaksi secara mandiri atau memulainya tanpa masukan eksternal.
Arsitektur ini membatasi fungsionalitas akun di Ethereum. Karena semua aktivitas harus berasal dari EOA dan setiap transaksi memerlukan tanda tangan kriptografi yang valid, fitur-fitur canggih seperti otentikasi multi-faktor, pemulihan sosial, dan operasi terkelompok memerlukan solusi yang kompleks. Kendala-kendala ini memotivasi konsep abstraksi akun—untuk membuat semua akun dapat diprogram dan menyatukan perbedaan antara aktivitas yang dikendalikan pengguna dan yang dikendalikan kontrak.
Abstraksi akun memodifikasi jalur validasi transaksi dengan memungkinkan akun itu sendiri untuk mendefinisikan bagaimana tindakan disetujui dan dieksekusi. Alih-alih memaksakan tanda tangan dari kunci pribadi tertentu, dompet kontrak pintar dapat mendefinisikan logikanya sendiri untuk autentikasi. Logika ini mungkin termasuk tanda tangan ambang, pemeriksaan perangkat keras, atau aturan untuk batas pengeluaran dan penguncian waktu.
Salah satu perubahan paling berdampak yang diperkenalkan oleh abstraksi akun adalah pemisahan pembayaran gas dari pengirim. Secara tradisional, penginisiasi transaksi harus membayar gas dalam ETH. Di bawah abstraksi akun, logika validasi dapat memungkinkan pihak ketiga—disebut paymaster—untuk menanggung biaya gas atas nama pengguna. Ini membuka kemungkinan baru seperti mensponsori transaksi untuk pengguna pertama kali, memungkinkan interaksi dApp tanpa biaya gas, atau membayar biaya dalam stablecoin atau token proyek asli.
Selain itu, abstraksi akun memperkenalkan kemampuan untuk menggabungkan beberapa operasi menjadi satu transaksi. Misalnya, seorang pengguna dapat menyetujui token, melakukan pertukaran, dan mentransfer dana dalam satu tindakan, mengurangi jumlah konfirmasi yang diperlukan dan meningkatkan pengalaman pengguna. Peningkatan ini secara signifikan mengurangi gesekan dalam interaksi dApp sambil mempertahankan keamanan dan komposabilitas.
ERC-4337, yang diselesaikan pada tahun 2023, merupakan tonggak penting dalam perjalanan Ethereum menuju abstraksi akun. Tidak seperti proposal sebelumnya seperti EIP-2938, ERC-4337 tidak memerlukan perubahan pada lapisan konsensus Ethereum. Sebaliknya, ia beroperasi sepenuhnya dalam lingkungan kontrak pintar yang ada dengan memperkenalkan aliran transaksi paralel menggunakan mempool alternatif dan arsitektur kontrak tertentu.
Di bawah ERC-4337, transaksi digantikan oleh UserOperations—objek data yang menggambarkan tindakan yang diinginkan tetapi tidak diajukan ke mempool tradisional. UserOperations ini diambil oleh aktor off-chain khusus yang dikenal sebagai bundler. Seorang bundler mengagregasi beberapa UserOperations menjadi satu transaksi Ethereum standar dan mengajukannya ke blockchain.
Di dalam rantai, sebuah kontrak tunggal yang disebut EntryPoint memverifikasi dan memproses operasi yang dibundel ini. EntryPoint berinteraksi dengan akun pintar pengguna, yang mendefinisikan logika validasi mereka sendiri dan mendelegasikan eksekusi transaksi setelah divalidasi. Untuk membayar biaya gas, akun dapat secara opsional berinteraksi dengan paymaster, yang mensponsori biaya eksekusi di bawah kondisi yang ditentukan dalam kode.
Struktur ini memungkinkan cara yang terdesentralisasi dan tanpa izin untuk mendukung abstraksi akun tanpa memodifikasi protokol dasar Ethereum. Akibatnya, pengembang dapat menerapkan dompet kontrak pintar yang berfungsi seperti EOA dari perspektif pengguna tetapi menawarkan fungsionalitas yang jauh lebih kaya.
Solana mengambil pendekatan yang secara fundamental berbeda terhadap abstraksi akun dengan mendukungnya di tingkat protokol. Akun Solana tidak dibagi menjadi EOA dan akun kontrak. Sebagai gantinya, semua akun di Solana adalah wadah penyimpanan serbaguna yang dapat menyimpan data, diberikan kepemilikan, dan berinteraksi dengan program.
Dalam model Solana, validasi tindakan terintegrasi dalam program (kontrak pintar) itu sendiri. Alamat yang Diperoleh dari Program (PDA) adalah elemen kunci dari sistem ini. Ini adalah alamat deterministik yang dihasilkan dari benih dan program yang tidak memiliki kunci pribadi terkait. Sebagai gantinya, mereka dikendalikan oleh logika program dan dapat melakukan tindakan ketika kondisi yang tepat terpenuhi.
Karena fleksibilitas bawaan ini, Solana telah menawarkan fitur seperti otorisasi multi-tanda tangan, delegasi akun, dan pembayaran biaya pihak ketiga tanpa memerlukan standar eksternal atau alur transaksi yang disimulasikan. Dompet seperti Phantom dan Solflare telah mengintegrasikan kemampuan ini sejak awal, menunjukkan pengalaman pengguna yang mulus dan kontrol terprogram atas dana. Ini bertentangan dengan Ethereum, di mana fungsionalitas serupa bergantung pada lapisan tambahan seperti ERC-4337 dan jaringan bundler.
Ethereum menggunakan dua jenis akun: akun yang dimiliki secara eksternal (EOA) dan akun kontrak. EOA dikendalikan oleh kunci privat dan digunakan oleh individu atau aplikasi untuk menandatangani transaksi. Akun ini memiliki struktur yang sederhana. Mereka mencakup nonce, saldo, dan kunci publik yang terkait tetapi tidak memiliki kode internal. Ketika seorang pengguna menandatangani transaksi dari EOA, Mesin Virtual Ethereum (EVM) memverifikasi tanda tangan dan memotong biaya gas sebelum mengeksekusi transaksi. Akun kontrak, sebaliknya, dikendalikan oleh kode dan tidak memulai tindakan sendiri. Mereka hanya merespons transaksi yang dipicu oleh EOA. EVM memproses logika kontrak dan menyimpan status, tetapi kontrak tidak dapat menandatangani transaksi secara mandiri atau memulainya tanpa masukan eksternal.
Arsitektur ini membatasi fungsionalitas akun di Ethereum. Karena semua aktivitas harus berasal dari EOA dan setiap transaksi memerlukan tanda tangan kriptografi yang valid, fitur-fitur canggih seperti otentikasi multi-faktor, pemulihan sosial, dan operasi terkelompok memerlukan solusi yang kompleks. Kendala-kendala ini memotivasi konsep abstraksi akun—untuk membuat semua akun dapat diprogram dan menyatukan perbedaan antara aktivitas yang dikendalikan pengguna dan yang dikendalikan kontrak.
Abstraksi akun memodifikasi jalur validasi transaksi dengan memungkinkan akun itu sendiri untuk mendefinisikan bagaimana tindakan disetujui dan dieksekusi. Alih-alih memaksakan tanda tangan dari kunci pribadi tertentu, dompet kontrak pintar dapat mendefinisikan logikanya sendiri untuk autentikasi. Logika ini mungkin termasuk tanda tangan ambang, pemeriksaan perangkat keras, atau aturan untuk batas pengeluaran dan penguncian waktu.
Salah satu perubahan paling berdampak yang diperkenalkan oleh abstraksi akun adalah pemisahan pembayaran gas dari pengirim. Secara tradisional, penginisiasi transaksi harus membayar gas dalam ETH. Di bawah abstraksi akun, logika validasi dapat memungkinkan pihak ketiga—disebut paymaster—untuk menanggung biaya gas atas nama pengguna. Ini membuka kemungkinan baru seperti mensponsori transaksi untuk pengguna pertama kali, memungkinkan interaksi dApp tanpa biaya gas, atau membayar biaya dalam stablecoin atau token proyek asli.
Selain itu, abstraksi akun memperkenalkan kemampuan untuk menggabungkan beberapa operasi menjadi satu transaksi. Misalnya, seorang pengguna dapat menyetujui token, melakukan pertukaran, dan mentransfer dana dalam satu tindakan, mengurangi jumlah konfirmasi yang diperlukan dan meningkatkan pengalaman pengguna. Peningkatan ini secara signifikan mengurangi gesekan dalam interaksi dApp sambil mempertahankan keamanan dan komposabilitas.
ERC-4337, yang diselesaikan pada tahun 2023, merupakan tonggak penting dalam perjalanan Ethereum menuju abstraksi akun. Tidak seperti proposal sebelumnya seperti EIP-2938, ERC-4337 tidak memerlukan perubahan pada lapisan konsensus Ethereum. Sebaliknya, ia beroperasi sepenuhnya dalam lingkungan kontrak pintar yang ada dengan memperkenalkan aliran transaksi paralel menggunakan mempool alternatif dan arsitektur kontrak tertentu.
Di bawah ERC-4337, transaksi digantikan oleh UserOperations—objek data yang menggambarkan tindakan yang diinginkan tetapi tidak diajukan ke mempool tradisional. UserOperations ini diambil oleh aktor off-chain khusus yang dikenal sebagai bundler. Seorang bundler mengagregasi beberapa UserOperations menjadi satu transaksi Ethereum standar dan mengajukannya ke blockchain.
Di dalam rantai, sebuah kontrak tunggal yang disebut EntryPoint memverifikasi dan memproses operasi yang dibundel ini. EntryPoint berinteraksi dengan akun pintar pengguna, yang mendefinisikan logika validasi mereka sendiri dan mendelegasikan eksekusi transaksi setelah divalidasi. Untuk membayar biaya gas, akun dapat secara opsional berinteraksi dengan paymaster, yang mensponsori biaya eksekusi di bawah kondisi yang ditentukan dalam kode.
Struktur ini memungkinkan cara yang terdesentralisasi dan tanpa izin untuk mendukung abstraksi akun tanpa memodifikasi protokol dasar Ethereum. Akibatnya, pengembang dapat menerapkan dompet kontrak pintar yang berfungsi seperti EOA dari perspektif pengguna tetapi menawarkan fungsionalitas yang jauh lebih kaya.
Solana mengambil pendekatan yang secara fundamental berbeda terhadap abstraksi akun dengan mendukungnya di tingkat protokol. Akun Solana tidak dibagi menjadi EOA dan akun kontrak. Sebagai gantinya, semua akun di Solana adalah wadah penyimpanan serbaguna yang dapat menyimpan data, diberikan kepemilikan, dan berinteraksi dengan program.
Dalam model Solana, validasi tindakan terintegrasi dalam program (kontrak pintar) itu sendiri. Alamat yang Diperoleh dari Program (PDA) adalah elemen kunci dari sistem ini. Ini adalah alamat deterministik yang dihasilkan dari benih dan program yang tidak memiliki kunci pribadi terkait. Sebagai gantinya, mereka dikendalikan oleh logika program dan dapat melakukan tindakan ketika kondisi yang tepat terpenuhi.
Karena fleksibilitas bawaan ini, Solana telah menawarkan fitur seperti otorisasi multi-tanda tangan, delegasi akun, dan pembayaran biaya pihak ketiga tanpa memerlukan standar eksternal atau alur transaksi yang disimulasikan. Dompet seperti Phantom dan Solflare telah mengintegrasikan kemampuan ini sejak awal, menunjukkan pengalaman pengguna yang mulus dan kontrol terprogram atas dana. Ini bertentangan dengan Ethereum, di mana fungsionalitas serupa bergantung pada lapisan tambahan seperti ERC-4337 dan jaringan bundler.