Pekerjaan dua minggu terakhir berfokus pada pemikiran tentang penerapan kontrak di DApp. Sebagian besar waktu, saya mempelajari pengembangan kontrak zkRollup Layer2 dan mempelajari karakteristik desain jaringan mereka. Di antara mereka, bahasa pemrograman Kairo yang dirancang oleh StarkNet dapat membantu kami mengembangkan DApps yang kaya aplikasi dengan lebih baik dan mengurangi konsumsi Gas secara signifikan.
Di StarkNet, semua alamat adalah alamat kontrak, dan tidak ada konsep akun eksternal (EOA). Akun dompetnya terdiri dari "kontrak akun" yang ditandatangani dan digunakan oleh pengguna. Hanya tanda tangan kunci privat yang dapat mengoperasikan transfer dari "kontrak akun" ini. Ini adalah ide yang sangat menarik. Kami tahu bahwa di mainnet Ethereum, EOA dan akun kontrak adalah salah satu masalah warisan sejarah. Dari draf EIP86 hingga draf EIP-2938, semuanya berkomitmen untuk mengabstraksi logika akun dari EOA Keluar dan terapkan logikanya ke akun yang dikelola oleh kontrak pintar untuk mewujudkan "dompet kontrak pintar".
Argent X, solusi dompet utama StarkNet, adalah implementasi dari "dompet kontrak pintar". Komunitas juga menyediakan JS SDK yang sesuai untuk membantu pengembang mengimplementasikan dompet kontrak pintar secara lokal atau di DApps yang mereka gunakan sendiri.
Jika kita mengalihkan perhatian kita ke kontrak multi-tanda tangan, kita akan menemukan bahwa dompet kontrak pintar sebagai layanan telah mendapat lebih banyak perhatian dan telah digunakan lebih sering daripada peran Penyedia Injeksi.Di antara mereka, layanan yang paling populer adalah Gnosis Safe *. Namun pada gilirannya, dompet smart contract sebagai dompet independen belum banyak digunakan, terutama dalam skema L1/L1, yang tidak dapat bersaing dengan dompet EOA tradisional (seperti MetaMask).
*Catatan: Di sini, dompet yang disediakan oleh Gnosis Safe adalah paradigma pemrograman kontrak multi-tanda tangan, bukan abstraksi akun kontrak yang disebutkan dalam EIP86 dan EIP-2938.
Menurut pendapat saya, meskipun dompet smart contract memiliki keunggulan teknis dan pengalaman yang jelas, ia memperkenalkan kerumitan tambahan dan risiko keamanan kontrak di jaringan L1/L1 yang berat aset, dan tidak dapat mengubah kesulitan mengingat mnemonik ( Karena ini adalah masih diperlukan untuk mengatur izin untuk dompet smart contract), pengguna tidak dapat melihat keunggulan teknisnya. Selain produk inovatif yang diwakili oleh Argent Guardians yang memungkinkan pengguna menggunakan konfirmasi tiga pihak untuk mendapatkan kembali otoritas dompet kontrak pintar, sebagian besar pengguna hanya menggunakannya dalam konteks kontrak multi-tanda tangan, sebagai aset terbuka atau konfirmasi tambahan. modus manajemen.
Dalam jaringan Layer2 yang mirip dengan StarkNet, tidak ada beban historis pada dompet smart contract, sehingga mungkin dapat membawa beberapa keuntungan arsitektural teknis ke DApp ke publik.
Faktanya, dengan peluncuran jaringan Lapisan 2 Ethereum, terutama jaringan zkRollup, dompet kontrak pintar mungkin akan memungkinkan kami untuk merancang jaringan relai aset multi-lapisan (Multi-layer Asset Relay Network) untuk membantu pengguna kami menggunakan L1 The EOA akun mengontrol semua aset lapisan aplikasi.
Multi-layer Asset Relay Network (selanjutnya disebut MARN) adalah visi produk saya, yang tidak ada dalam realitas saat ini. Di sisa artikel ini, saya akan menjelaskan apa itu MARN dan mengapa kami membutuhkannya.
1. Persyaratan produk pengguna skala besar
Kembali ke persyaratan awal saya dalam mengembangkan DApp Keuangan Cek, saya membutuhkannya untuk mendukung fungsi-fungsi berikut:
- SDK dompet non-eksternal : Pengguna tidak perlu mengunduh dompet pihak ketiga, dan dapat langsung membuat dompet di DApp.
- Model dompet non-penahanan : pengguna tidak perlu menyerahkan kunci pribadi mereka di luar layanan saya atau pihak ketiga, tetapi kami perlu menyediakan proses yang layak bagi pengguna untuk mendapatkan kembali kendali atas dompet mereka.
- Tanpa Biaya Gas : Pengguna tidak merasa bahwa mereka telah membayar biaya Gas, yang sangat diperlukan bagi pengguna baru karena mereka tidak memiliki saluran yang nyaman untuk mendapatkan token gas.
- Konfirmasi blokir cepat : pengguna tidak akan terjebak atau menunggu terlalu lama saat mengoperasikan transaksi blockchain.
- Likuiditas aset yang aman dan baik : pengguna dapat mentransfer aset mereka melalui berbagai kontrak penghubung yang aman, cepat, dan kaya akan kedalaman transaksi.
Dengan mengamati sebagian besar DApps di pasar, saya menemukan bahwa mereka dapat melakukan pekerjaan dengan baik di poin ke-4 dan ke-5, tetapi di 3 poin pertama, karena mereka terutama ditujukan untuk pengguna Crypto Native, umumnya tim ini tidak akan menghabiskan Terlalu banyak biaya untuk mempertimbangkan pengoptimalan.
Tidak diragukan lagi, kesulitan-kesulitan ini membatasi sebagian besar skala pengguna yang memasuki Web3. Jika masalah tidak diselesaikan secara mendasar, sulit bagi saya untuk meyakinkan diri sendiri bahwa produk Web3 dapat mencapai tingkat pertumbuhan pengguna yang sangat besar di siklus berikutnya.
Untuk menyelesaikan masalah 1-3, saya mulai mencari kemungkinan solusi di industri.
Pertama-tama, solusi dompet adalah ambang penting yang harus kita lewati terlebih dahulu. Saat ini, untuk pengembang DApp, mungkin ada beberapa solusi dompet populer:
- Koneksi Dompet Eksternal: Paling populer, tetapi memiliki penghalang tertinggi untuk masuk bagi pengguna baru. Kami tidak mempertimbangkan skenario ini dalam makalah ini.
- SDK dompet lokal: Integrasinya sederhana, tetapi setelah pengguna menghapus data Aplikasi, mereka tidak akan dapat mengambil kunci pribadi dan menghadapi risiko kerugian yang besar.
- Layanan dompet terkelola: Layanan dompet terkelola yang melewati logika aplikasi DApp dan langsung mengunggah kunci pribadi ke Layanan Rahasia untuk manajemen, menggunakan SDK lokal untuk penandatanganan transaksi, dan beberapa layanan dapat mendukung pengeksporan kunci pribadi.
Di antara solusi untuk produk pengguna skala besar, solusi dompet yang dihosting ketiga adalah solusi yang digunakan oleh sebagian besar produk saat ini, dan Web3Auth serta MagicLink adalah produk perwakilan dari solusi semacam ini. Sangat jelas bahwa pengguna dapat menggunakan email, ponsel, atau metode login sosial lainnya untuk mengelola dan mengambil kunci pribadi mereka, dengan cara ini dapat membawa pengguna eksternal yang cukup, tetapi kekurangannya juga sangat jelas: Ini membawa potensi risiko keamanan , yang mungkin tidak terbatas pada layanan penyimpanan kunci pribadi AWS, tetapi juga dapat melibatkan risiko keamanan dalam desain platform dompet terkelola.
Kedua, saat ini ada beberapa paradigma arus utama untuk desain biaya gas nol:
- Gunakan Gas Relayer untuk mem-proxy Gas pengguna saat membuat transaksi: gunakan Gas Relayer yang disediakan oleh GSN atau OpenZeppelin untuk membuat Transaksi Meta (Meta Transaction)
- Gunakan solusi L2 (seperti IMX atau StarkNet) untuk proxy Gas: Buat transaksi meta melalui dompet kontrak pintar, dan kontrak pihak transaksi yang menerima pesan dapat membayar biaya Gas atas nama pengguna.
- Gunakan robot EOA untuk mem-proksi permintaan pengguna di sisi server: Solusi ini adalah yang paling sederhana, tetapi akan membawa risiko keamanan tambahan, dan tidak dapat menunjukkan transaksi nyata antara pengguna dan kontrak.
Mempertimbangkan biaya penanganan tambahan dari Gas Relayer dan biaya Gas dasar, menggunakan yang terakhir (solusi L2) untuk menerapkan kontrak DApp kami jelas merupakan cara yang lebih efektif dan lebih murah. Diantaranya, beberapa solusi L2 bahkan mendukung penggunaan token ERC-20 khusus untuk membayar biaya Gas (seperti zkSync2.0). Model biaya seperti itu akan menjadi bagian dari model ekonomi DApp dan meningkatkan nilai token tata kelola yang kami terbitkan , seperti yang dilakukan DeFi Kingdoms Crystalvale.
Sebagai rangkuman, dalam hal desain produk untuk pengguna skala besar, kita perlu menemukan ide desain produk yang dapat mendukung persyaratan di atas pada saat yang sama Saat ini, cara yang lebih layak tampaknya menggunakan solusi Layer2.
2. Masalah dengan Akun Eksternal (EOA)
Dengan menggunakan solusi Layer 2, kita cukup mengimplementasikan meta-transaksi berdasarkan dompet smart contract.Mengambil StarkNet sebagai contoh, meskipun implementasi dompetnya adalah dompet smart contract, karena kita memerlukan otoritas kontrol yang jelas, ide desain produk dari Argent X masih mengikuti konsep dompet EOA MetaMask: saat dompet diinisialisasi (untuk StarkNet, saat menerapkan kontrak akun), kita perlu mengingat kata-kata mnemonik dompet.
Ini memunculkan konsep yang mudah membingungkan: Berapa banyak jaringan yang didukung DApp kami, dan berapa banyak dompet EOA yang perlu dibuat pengguna?
Sayangnya, sebagian besar DApps di pasaran mengikuti cara berpikir yang bodoh namun tidak berdaya ini. Saya menyebut desain produk ini sebagai "mimpi buruk multi-dompet". Dari perspektif pengguna, tidak hanya tidak berguna untuk memahami perbedaan antara produk Web3 dan Web2, tetapi bahkan sangat meningkatkan risiko keamanan penggunaan produk di sisi pengguna.
Saya mengerti bahwa di satu sisi, metode tak berdaya ini sejalan dengan ide desain dompet EOA saat ini, di sisi lain, desain hak dan tanggung jawab seperti itu sangat jelas, dan tim pengembangan kontrak dan dompet tidak perlu untuk membayar kesalahan pengguna yang kehilangan kunci pribadi. . Tapi saya pikir kita harus bisa menemukan cara yang lebih mudah dipahami dan alami dari dompet smart contract.
Hipotesis sederhananya adalah, dapatkah kita mengizinkan dompet smart contract beroperasi melalui dompet L1 EOA tertentu? Alternatifnya, dapatkah kita merancang dompet kontrak panduan sebagai operator istimewa dari dompet multi-tanda tangan, dan menetapkan akun L1/L2 tepercaya sebagai operator EOA, yang memungkinkan mereka mengubah operasi harian kontrak ini dalam izin anggota darurat?
Faktanya adalah bahwa imajinasi tak terbatas yang dibawa oleh dompet kontrak pintar, untuk dompet EOA, programabilitas yang disediakannya tidak hanya dapat mendukung meta-transaksi biaya Gas agensi, tetapi juga sepenuhnya membebaskan dompet dari kunci tunggal EOA : Dan Saya pikir ini adalah salah satu syarat yang diperlukan agar Web3 dapat diterapkan dalam skala besar.
3. Pemikiran tentang jaringan relai aset multi-layer (MARN)
Sebelum membuat kode DApp Seluler yang diluncurkan oleh Cek Keuangan untuk pasar Jepang, saya berulang kali memikirkan sebuah pertanyaan: Jika di masa mendatang kita dihadapkan pada ratusan DApps di ponsel, dan mereka ditempatkan di beberapa jaringan berbeda, apa yang harus kita lakukan? Bagaimana cara mengelola dompet saya?
Apakah kami akan menautkan semua dompet menggunakan MetaMask? Apakah aset kita sama pentingnya di semua DApps, apakah itu pasar perdagangan DeFi, game, atau NFT? Apakah semua aset kita akan diekspos di Internet untuk dilihat semua orang? Akankah kita membiarkan diri kita kehilangan dompet? Pertanyaan-pertanyaan ini melekat di benak saya dan tidak bisa hilang untuk waktu yang lama.
Pertanyaan-pertanyaan ini menunjuk ke dua inti yang sama yang perlu dijawab:
- Apa sebenarnya produk Web3 yang ideal?
- Bagaimana kita mengelola aset kompleks kita? (Kartu Keanggotaan, Poin, Kembalian, Tabungan, Dana dan Saham)
Kami berada di dunia Web3 multi-rantai dan berlapis-lapis, dan tidak ada keraguan bahwa ini akan berlanjut untuk waktu yang lama, yang berarti bahwa pemain NFT akan mengoperasikan dompet MetaMask mereka di mainnet, penggemar kebugaran akan mengoperasikan dompet MetaMask mereka di Solana Berpartisipasi dalam aktivitas harian StepN, pengguna DeFi akan berpindah-pindah di jaringan yang berbeda, memiliki lusinan dompet EOA pada saat yang sama, dan mengelola jenis aset kompleks mereka, dan DAO akan menjadi kontrak aset lintas jaringan.
Namun, ketika Web3 benar-benar memasuki mata publik dan pengguna tumbuh lebih dari satu urutan besarnya, akankah DApps dan dompet mempertahankan statusnya?
Pendapat saya adalah bahwa dengan pengembangan bertahap Layer 2 dan lapisan aplikasi lainnya, dompet pasti akan menjadi lebih terfragmentasi, dan aset akuntansi yang disimpan oleh dompet juga akan terfragmentasi. Jika semua dompet adalah dompet EOA, pasti akan menimbulkan "mimpi buruk banyak dompet" ratusan kali lebih serius daripada yang sekarang.
Namun, jika kita memindahkan semua aset ekonomi riil ke Web3, kita akan menemukan bahwa beberapa aset secara signifikan kurang penting dibandingkan aset lainnya. Kami akan membiarkan kembalian di dompet kami hilang, tetapi kami mungkin tidak dapat mentolerir hilangnya tabungan kami di bank. Dompet yang sederhana dan mudah digunakan akan menempati beberapa posisi pasar, dan mungkin disematkan di beberapa DApps populer, tidak seperti dompet EOA, seperti MetaMask, yang banyak digunakan.
Saya pikir dompet "kurang penting" yang didistribusikan di "lapisan aplikasi" ini dapat dibuat oleh jaringan izin. Dalam ide awal ini, saya menyebutnya jaringan relai aset multi-lapisan (Multi-layer Asset Relay Network)
MARN berarti kita dapat membuat dan mengontrol dompet smart contract L2 (atau LN) melalui dompet L1 EOA, dan mengizinkan dompet LN ini menjadi lapisan cache asetnya.
Artinya, melalui komunikasi L1 → LN, kami memiliki kemampuan bagi pengguna untuk menggunakan satu dompet, mengelola semua dompet kontrak, dan, tanpa bergantung pada escrow kunci privat, mendukung penggunaan operator pemulihan untuk mendominasi beberapa dompet LN. .
Misalnya, saat pengguna masuk ke DApp, sebagian besar logika kontrak kami didasarkan pada L2 (seperti StarkNet), kami dapat secara otomatis membuat kontrak dompet untuk pengguna, dan merekam kunci pribadi operatornya secara lokal (sebagai cache lokal yang dapat mengizinkan kerugian) Saat membuat kontrak ini, kami membutuhkan pengguna untuk menyediakan akun eksternal L1 (login dengan MetaMask) dan menyediakan kotak surat alternatif atau operator pemulihan khusus. Dengan cara ini, ketika kunci pribadi lokal pengguna hilang, komunikasi akun L1 EOA, atau otentikasi kotak surat cadangan, dapat membantu dompet kontrak pintar memodifikasi operator baru, yaitu, operator yang dibuat secara acak secara lokal dapat dipulihkan , dapat diganti. Dalam hal desain produk, pemulihan semacam ini tidak dapat dirasakan oleh pengguna, terlepas dari apakah pengguna mengingat kunci privat, dia dapat mengoperasikan dompet LN kapan saja.
Melalui desain ini, aset dompet LN dapat digunakan sebagai cache aset dompet L1 EOA Menggunakan komunikasi khusus, pengguna dapat menarik aset dompet LN dari L1 kapan saja (untuk StarkNet, perilaku ini akan selesai dalam waktu < 30 menit) Di sisi lain, ini memperkuat keamanan aset dalam dompet kontrak, dan memberikan manajemen otoritas lintas lapisan yang fleksibel.
MARN telah membawa manfaat yang jelas: bagi pengguna, tidak perlu lagi merekam lebih dari satu mnemonik EOA, dan mereka tidak memiliki persepsi tentang layanan LN; Risiko biaya dan keamanan Secrets Service dapat dikatakan melayani berbagai tujuan.
Tujuan desain utama MARN adalah untuk membantu pengguna menggunakan satu dompet eksternal untuk mencapai kontrol otoritas yang mulus dan transfer aset di jaringan multi-lapisan. Dari perspektif tujuan ini, LN harus menjadi infrastruktur pilihan untuk layanan aplikasi, karena teknologi Layer 2 dapat menjamin keamanan aset lintas-rantai secara maksimal, tanpa menyerahkan risiko keamanan ini kepada pengembang aplikasi yang menulis jembatan lintas-rantai kontrak (seperti yang terjadi pada Axie).
Saat ini, saya masih dalam tahap awal memikirkan konsep ini, tetapi saya telah menerapkan ide ini dalam pengkodean DApp dari Cek Keuangan L2, dengan harapan dapat memberikan pengalaman dompet yang mulus dan aman kepada penggunanya. Untuk MARN, jika Anda memiliki ide yang sama atau memiliki saran yang membangun, silakan berdiskusi dengan saya di Twitter. Saya juga akan secara bertahap memperbarui praktik khusus saya tentang ide ini di Mirror, dan membuka sumber produk dan kode akhir.
Saya memiliki firasat bahwa aplikasi Web3 skala besar dapat terjadi pada siklus berikutnya, mari kita lanjutkan BUIDL untuk menyaksikan perubahan global yang mendalam ini.