Dasar
Spot
Perdagangkan kripto dengan bebas
Perdagangan Margin
Perbesar keuntungan Anda dengan leverage
Konversi & Investasi Otomatis
0 Fees
Perdagangkan dalam ukuran berapa pun tanpa biaya dan tanpa slippage
ETF
Dapatkan eksposur ke posisi leverage dengan mudah
Perdagangan Pre-Market
Perdagangkan token baru sebelum listing
Futures
Akses ribuan kontrak perpetual
TradFi
Emas
Satu platform aset tradisional global
Opsi
Hot
Perdagangkan Opsi Vanilla ala Eropa
Akun Terpadu
Memaksimalkan efisiensi modal Anda
Perdagangan Demo
Pengantar tentang Perdagangan Futures
Bersiap untuk perdagangan futures Anda
Acara Futures
Gabung acara & dapatkan hadiah
Perdagangan Demo
Gunakan dana virtual untuk merasakan perdagangan bebas risiko
Peluncuran
CandyDrop
Koleksi permen untuk mendapatkan airdrop
Launchpool
Staking cepat, dapatkan token baru yang potensial
HODLer Airdrop
Pegang GT dan dapatkan airdrop besar secara gratis
Launchpad
Jadi yang pertama untuk proyek token besar berikutnya
Poin Alpha
Perdagangkan aset on-chain, raih airdrop
Poin Futures
Dapatkan poin futures dan klaim hadiah airdrop
Investasi
Simple Earn
Dapatkan bunga dengan token yang menganggur
Investasi Otomatis
Investasi otomatis secara teratur
Investasi Ganda
Keuntungan dari volatilitas pasar
Soft Staking
Dapatkan hadiah dengan staking fleksibel
Pinjaman Kripto
0 Fees
Menjaminkan satu kripto untuk meminjam kripto lainnya
Pusat Peminjaman
Hub Peminjaman Terpadu
Interpretasi teknologi MetaMask Snap: analisis pengalaman pengembangan, batasan kapasitas, keamanan dan potensi bisnis
Isi | Li Damao, Bruce
Pengeditan & Pemformatan | Cikey
Desain | WangTeng
Apa itu MetaMask Snap?
Beberapa hari yang lalu ConsenSys mengumumkan peluncuran MetaMask Snaps Open Beta ke publik. MetaMask Snaps dapat memperluas kemampuan dompet, dan Anda dapat menginstal aplikasi (Snaps) yang dibuat oleh pengembang pihak ketiga untuk mendapatkan fungsionalitas baru.
Jika ConsenSys membuat MetaMask ke dalam WeChat, maka Snap adalah applet WeChat. Oleh karena itu, kita dapat melihat ambisi MetaMask, dikombinasikan dengan ukuran ConsenSys dan jumlah pengguna MetaMask, pola bidang dompet akan berubah.
Saat ini, pejabat tersebut telah mengumumkan 35 model Snap yang tersedia dan merilis Snap App Store
Daftar Jepretan Sebagian
Jadi seperti apa sebenarnya MetaMask Snap dari sudut pandang teknis? Apa keterbatasan kemampuan mereka? Apakah aman? Bagaimana pengalaman pengembangannya? Ini semua mungkin menentukan potensi MetaMask Snap di masa depan.
Sejak tahun lalu, LXDAO telah melakukan penelitian mendalam tentang implementasi Snap. Saat ini, banyak anggota yang berpartisipasi dalam pengembangan Snap dan berpartisipasi aktif dalam hackathon terkait. Hari ini, kami akan mempelajari masalah di atas dari sudut pandang teknis dan benar-benar mengembangkan Snap agar Anda dapat merasakan pengalaman pengembang Snap.
Pengalaman pertama MetaMask Snap
Instal MetaMask Snap
Biasanya dapat diinstal melalui pasar resmi MetaMask Snap, atau langsung di situs resmi proyek. Mengambil contoh UniPass, saat mengakses halaman aplikasi, akan disediakan tombol untuk memungkinkan Anda menautkan ke MetaMask.
Setelah mengklik, Snap akan diinstal:
Gunakan Snap MetaMask
Setelah instalasi selesai, Anda dapat mulai menggunakan produk dan fungsi yang sesuai.Dalam aplikasi ini, UniPass membuat akun kontrak pintar untuk Anda guna memfasilitasi kontrol Anda melalui akun EOA MetaMask.
Saat Anda melakukan transfer, UniPass akan memunculkan Snap untuk mengonfirmasi kepada Anda apakah Anda ingin melakukan operasi ini pada dompet UniPass AA.
Setelah konfirmasi melalui MetaMask, operasi yang relevan dapat dilakukan. Dalam skenario ini, MetaMask memiliki kemampuan untuk mengontrol dompet UniPass AA melalui Snap. UniPass memungkinkan pengguna untuk mengoperasikan dompet tanpa mengembangkan plug-in dompet, dan MetaMask juga dapat digunakan untuk memperkenalkan pengguna dengan biaya yang sangat rendah!
Informasi apa saja yang dapat kita peroleh dari proses instalasi dan penggunaan ini?
Untuk produk dompet, keamanan selalu diutamakan. Selanjutnya, mari kita analisis desain keamanan Snap.
Apakah Snap aman?
Analisis waktu proses kode jepret
Seperti disebutkan di atas, Snap didasarkan pada NPM untuk manajemen paket dan versi, yang menunjukkan bahwa Snap sebenarnya adalah aplikasi berbasis Web dan Java. Seperti kita ketahui bersama, sintaksis JS sangat fleksibel dan gratis, serta dapat dengan mudah menyebabkan serangan seperti XSS dan phishing. Bagaimana MetaMask Snap mengatasi tantangan ini?
Setelah melakukan beberapa penelitian, tidak sulit untuk menemukan bahwa MetaMask mendanai Agoric dan mengintegrasikan secara mendalam JavaS Hardened (juga dikenal sebagai Secure Ecma) milik tim Agoric sebagai solusi sandbox “virtualisasi lengkap”. Agoric merancang API terbatas Java dan mengajukan Draf proposal ke TC-39 (Konsorsium Standardisasi JS) di:
Sederhananya, Hardened Java adalah subset Java standar yang lebih aman. Dengan bantuan beberapa kemampuan dan mekanisme JS, beberapa izin dan metode panggilan JS API dikurangi, sehingga mengurangi beberapa risiko. Ini membuat kotak pasir aman untuk mengeksekusi kode yang sesuai, dan juga mengikuti **Prinsip Hak Istimewa Terkecil untuk merencanakan kontrol izin kode. **
Agoric berkolaborasi dengan MetaMask untuk mengembangkan LavoMoat (proyek ini untuk meningkatkan keamanan Snap. LavaMoat adalah seperangkat alat yang berfokus pada penyelesaian risiko keamanan ketergantungan eksternal dalam proyek JS dan menambahkan batasan pada beberapa API dan logika.
Agoric dan MetaMask bersama-sama meluncurkan pengujian serangan dan pertahanan keamanan black-box dan white-box, dan menghasilkan laporan keamanan terperinci. Jadi pada tingkat waktu proses kode, kami memiliki alasan kuat untuk meyakini bahwa Snap aman.
Kode Snap harus open source dan diaudit
Selain memiliki proses otorisasi pengguna yang jelas dan desain hak istimewa minimal, untuk menjadi Snap yang diakui secara resmi, kode tersebut harus menjadi sumber terbuka. Melalui kekuatan komunitas, kemungkinan Snap membawa kode berbahayanya sendiri sangat berkurang.
Selain itu, kami juga menemukan bahwa Snap di situs resminya harus menjalani audit kode oleh perusahaan keamanan pihak ketiga sebelum dirilis. Hal ini sangat meningkatkan kredibilitas keamanan Snap, dan auditornya menyertakan SlowMist, yang sangat familiar bagi semua orang.
Risiko keamanan Snap yang saat ini ditemukan
Karena Snap saat ini didasarkan pada manajemen paket dan versi NPM, ada kemungkinan perubahan tertentu pada tingkat kode, dan audit yang tidak wajib dapat menyebabkan risiko keamanan tertentu.
Karena MetaMask tidak dapat mengontrol rilis versi platform NPM, proyek dapat merilis versi baru kapan saja untuk dipasang oleh pengguna. Karena biaya audit, perusahaan audit tidak akan mengaudit setiap versi, sehingga akan timbul situasi: perubahan pada versi terbaru mungkin tidak bersifat open source atau diaudit.
Namun, karena lingkungan eksekusi adalah lingkungan kotak pasir dan menggunakan desain izin minimal, kecuali pengguna mengonfirmasi perubahan izin baru secara manual, versi baru Snap hanya akan memiliki izin dari versi sebelumnya untuk melakukan operasi. Namun jika suatu Snap meminta izin terlalu banyak, tetap akan menimbulkan risiko sehingga Anda tetap perlu waspada saat menginstal dan menggunakan Snap.
Kemampuan Teknis dan Keterbatasan MetaMask Snap
Meski MetaMask Snap baru diumumkan secara resmi baru-baru ini, Snap sebenarnya sudah dikembangkan selama 4 tahun! Ide awal MetaMask Snap dipublikasikan di Medium oleh Dan Finlay pada 10 Oktober 2019
Menyeimbangkan keamanan, fleksibilitas, dan efektivitas merupakan tantangan yang sangat besar, terlihat juga bahwa MetaMask telah mengeluarkan banyak uang dan melakukan banyak persiapan untuk hari ini.
Saat ini, tiga API utama terbuka:
Berikut ini adalah pengenalan singkat tentang kemampuan terbuka spesifik dan efek MetaMask Snap, sehingga Anda dapat memiliki persepsi yang lebih jelas.
Kemampuan notifikasi notifikasi
Antarmuka Snap_notify dapat menampilkan notifikasi di MetaMask atau browser. Snap dapat mengirim pesan langsung ke pengguna melalui antarmuka ini, seperti yang ditunjukkan pada gambar di bawah
Kemampuan Wawasan Transaksi
Saat pengguna berinteraksi dengan kontrak pintar, MetaMask akan memicu peristiwa onTransaction Snap. MetaMask akan meneruskan transaksi asli yang tidak ditandatangani ke metode pengendali onTransaction. Snap dapat mengembalikan antarmuka pada halaman konfirmasi sekunder transaksi dan menyesuaikan konten tampilan. .
Melalui kemampuan ini, fungsi seperti audit keamanan informasi transaksi dan tampilan informasi yang diperluas dapat diwujudkan.
Antarmuka dialog dan kemampuan antarmuka khusus
Kemampuan Dialog akan memungkinkan Snap untuk langsung memunculkan jendela independen, mencapai kemampuan yang mirip dengan jendela pop-up /Konfirmasi/ tradisional (seperti yang ditunjukkan di bawah), yang dapat digunakan untuk pengingat, konfirmasi, pengiriman informasi, dll.
Melalui Dialog, Anda akan dapat menyesuaikan antarmuka dan operasi interaktif sederhana untuk terhubung dengan DApp Anda.
Fungsi apa yang saat ini tidak tersedia untuk MetaMask Snap?
Karena alasan keamanan dan lainnya, Snap saat ini tidak mendukung kerangka kerja front-end pihak ketiga dan hanya menyediakan UIKit dalam jumlah yang relatif kecil.Berikut ini masih menggunakan Insight sebagai contoh untuk menunjukkan pustaka komponen UI yang dapat dipanggil oleh semua pengembang.
Seperti yang ditunjukkan pada gambar, saat ini hanya Heading (teks besar), Teks (teks kecil), Panel (kartu dan hanya dapat digunakan sekali), Divider (pemisah garis), Copyable (klik untuk menyalin) dan sebagian kecil Markdown ( **tebal ** dan miring), sehingga tampaknya membangun interaktivitas untuk sementara tidak mungkin dilakukan, dan tidak mungkin menggunakan html tersemat untuk mencapai operasi interaktif. Namun, setelah mengajukan pertanyaan di Discord resmi, pejabat tersebut mengklaim bahwa ini untuk alasan keamanan dan akan dirilis di versi berikutnya.
Selain itu, juga berdasarkan pertimbangan keamanan, hanya metode Ambil yang didukung untuk permintaan eksternal, dan protokol permintaan lainnya seperti WebSocket tidak didukung. Karena keterbatasan keamanan, kemampuan, dan privasi, informasi klien juga tidak mungkin diperoleh, seperti URL saat ini yang menggunakan Snap, dan tidak dapat menerapkan fungsi yang lebih kaya dan beragam.
Sebagian besar masalah dan pembatasan ini disebabkan oleh pertimbangan keamanan, dan saya yakin bahwa di masa depan, setelah keamanan diverifikasi, lebih banyak izin akan dipertimbangkan.
MetaMask, yang menyediakan API ini, sebenarnya telah menjadi produk yang mirip dengan platform terbuka. Perasaan ini seperti ketika WeChat meluncurkan akun resmi dan mini program, yang langsung membuat orang merasa bahwa WeChat bukan lagi alat ngobrol sederhana.
MetaMask mengantisipasi struktur pasar saat ini pada tahun 2019, yaitu terdapat banyak jaringan publik dan pihak proyek, serta berbagai kebutuhan dompet yang disesuaikan. Daripada setiap pihak proyek perlu mengembangkan plug-innya sendiri dan pengguna perlu menginstal beberapa plug-in secara bersamaan, lebih baik mengembangkan berdasarkan MetaMask Snap. Di antara Snaps batch pertama yang dirilis, kami juga menemukan dompet ekologis non-EVM lainnya seperti Sui Wallet, Solana Wallet, dan Arweave Wallet. Dengan basis pengguna yang ada, MetaMask Snap pasti akan mempunyai dampak signifikan pada lanskap dompet.
Faktanya, imajinasi MetaMask Snap mungkin lebih besar dari yang kami harapkan, bahkan di luar cakupan dompet. Kita juga bisa melihat hasil kerja tim EthSign yang membuat KeyChain pengelola kata sandi universal berdasarkan MetaMask Snaps. Kata sandi di semua browser dapat dienkripsi dengan kunci dompet dan disimpan. Jaga baik-baik dompet Anda dengan cara ini dan simpan semua kata sandi Anda.
Snap sangat relevan bagi pengembang. Dengan API terbuka, seperti apa pengalaman pengembang spesifiknya? Sebaiknya kita mengembangkan Snap sendiri untuk merasakannya.
Kembangkan tes Snap secara langsung
Pikiran Keterasingan
Seperti yang kita semua tahu, sebagian besar pengguna tidak benar-benar mengetahui kontrak pintar apa yang mereka gunakan dalam banyak kasus, hal ini terutama mencakup masalah-masalah berikut:
Bagi pengguna awam, bahkan lebih mustahil lagi meminta mereka membaca kode soliditas kontrak sebelum mengoperasikannya. Saat ini, sebenarnya sangat cocok menggunakan fungsi Transaction Insight untuk mengimplementasikan beberapa analisis kontrak pintar. Misalnya, menggunakan AI untuk melakukan audit keamanan yang relatif sederhana terhadap kontrak pintar dapat menyaring 80% serangan phishing tingkat rendah. **
**Siapkan lingkungan pengembangan dan **unduh dompetnya
Pertama, Anda perlu menginstal MetaMask Flask
MetaMask Flask adalah distribusi ekstensi MetaMask yang berpusat pada pengembang, terutama digunakan untuk pratinjau fitur baru dan pengembangan fitur eksperimental. Perhatikan bahwa ini adalah MetaMask versi pengembang. Harap jangan menggunakannya setiap hari, dan jangan mengimpor kunci pribadi yang Anda gunakan setiap hari. Flask digunakan di sini terutama untuk memfasilitasi pratinjau Snap yang kami kembangkan secara lokal dan real-time.
Buat Akun
Setelah memasang dompet, buatlah dompet baru seperti membuat dompet MetaMask biasanya. Harap dicatat bahwa ini adalah dompet khusus untuk pengujian. Mohon jangan mengimpor dompet harian Anda sendiri.
Selanjutnya kita perlu mengisi ulang beberapa koin uji ke dalam dompet yang baru dibuat. Koin uji dapat diperoleh melalui faucet.Snap yang disebutkan dalam artikel ini menggunakan Goerli, jadi artikel berikut akan fokus pada Goerli.
Inisialisasi Snap berdasarkan templat
Menurut dokumentasi resmi, pertama-tama gunakan CLI @metamask/create-snap untuk membuat proyek Snap baru, dan kami menggunakan templat resmi untuk menginisialisasi:
benang buat @metamask/snap wawasan-transaksi-snap && cd wawasan-transaksi-snap
Struktur file jepret
File utama Snap ada di ./packages/snap, dan struktur direktori file adalah sebagai berikut
File konfigurasi Snap ditempatkan di snap.mainfest.json, dan file utama Snap adalah ./src/index.ts, yang sangat ringkas.
Aktifkan Izin
Pertama kita perlu mengaktifkan izin. Pertama kita tambahkan tiga item berikut di snap.mainfest.json
“Izin awal”: {
“endowment:transaction-insight”: {}, //Insight Transaksi
“endowment:ethereum-provider”: {}, //Dapatkan rpc
“endowment:network-access”: {}//Permintaan jaringan
}
Anda juga dapat mengubah deskripsi dan Nama yang diusulkan di file Mainfest untuk mengubah deskripsi dan nama proyek.
DAPATKAN TRANSAKSI
Selanjutnya dalam hal ini anda hanya perlu memodifikasi file index.ts agar semua fungsi dapat selesai, contoh kode sederhananya adalah sebagai berikut, silahkan pindah ke kode yang sudah bisa dijalankan secara penuh:
impor { OnTransactionHandler, OnRpcRequestHandler } dari’@metamask/snaps-types’;import { judul, panel, teks, dapat disalin, pembagi } dari’@metamask/snaps-ui’;ekspor const onTransaction: OnTransactionHandler = async ({ transaksi }) => {
// transaksi mencakup ke (alamat kontrak), data (data interaksi) dan nilai lainnya
//Berikut ini adalah contoh kode untuk mendapatkan data Audit kontrak
info const = ambil(
//Berikut ini adalah contoh kode bagian UI
kembali {
isi: [
teks(
${info.riskList.length} item risiko,
),
heading(${info.riskList.length ? ‘Daftar Risiko’ : ‘’}),
…info.riskList.map((item, i) => teks(${i + 1} ${item.teks})),
pembagi(),
teks(
Info audit lebih lanjut dari url berikut,
),
dapat disalin(
)
]
};
};
Untuk informasi lebih lanjut, silakan merujuk ke dokumentasi pengembang MetaMask Snap untuk menyelesaikan produk Snap yang lebih kompleks.
Setelah instalasi, Anda akan melihat informasi peringatan risiko serupa untuk setiap transaksi:
Saat ini, pengalaman pengembangan Snap sangat lancar, hampir tidak ada masalah yang ditemui, dan templat resminya juga sangat kaya dan beragam. Pengembang dengan pengalaman luas biasanya dapat memulai dan menjalankan serta mulai mengembangkan Snap yang mereka perlukan dalam beberapa jam. Namun aplikasi ini perlu dirilis secara resmi dan tersedia bagi pengguna umum. Kendala terbesarnya adalah audit keamanan. Tidak semua pengembang independen dan tim kecil memiliki sumber daya untuk mengaudit Snap mereka. Oleh karena itu, jumlah dan kekayaan Snap diperkirakan tidak akan mengalami ledakan pertumbuhan yang sangat besar dalam waktu yang lama di masa depan.
Dukungan Pengembang
Jika Anda dapat menjalankan contoh di atas, selamat Anda telah menjadi pengembang Snap tingkat pemula yang memenuhi syarat!
Pejabat MetaMask juga mendirikan MetaMask Grants DAO tahun lalu untuk mendanai proyek bernilai tinggi di ekosistem MetaMask melalui program hibah. MetaMask Grants DAO adalah program eksperimental yang dipimpin oleh karyawan yang memberikan hibah kepada pengembang eksternal di seluruh dunia untuk membangun pengalaman yang berdampak dalam ekosistem MetaMask. MetaMask menyuntikkan sebagian keuntungannya ke DAO ini setiap kuartal. Anggaran tahunan MetaMask Grants DAO saat ini adalah US$2,4 juta.
Saat ini, proyek apa pun yang dapat memperkaya ekosistem MetaMask dapat mengajukan permohonan MetaMask Grants DAO (MetaMask Grant) resmi. Untuk informasi lebih lanjut, silakan buka di sini
Perlu disebutkan bahwa LXDAO merasa terhormat untuk mengajukan Hibah MetaMask tahun ini dan berpartisipasi dalam pengembangan proyek terkait, dan telah membentuk saluran kontak. Jika Anda adalah anggota LXDAO dan memiliki ide yang relevan, Anda dapat menghubungi mereka dengan lebih efisien untuk kirimkan lamaran Anda.
Kesimpulan
Di atas, kami menganalisis apa itu Snap dari sudut pandang teknis, apakah aman, keterbatasan kemampuan, dan pengalaman pengembang. Ringkasan singkatnya adalah sebagai berikut:
Saat ini, MetaMask Snap masih melakukan iterasi dengan cepat, dan saya yakin lebih banyak izin dan kemampuan akan dibuka di masa mendatang. Diharapkan mekanisme yang lebih terbuka dan aman dapat diperkenalkan, seperti mekanisme peninjauan Audit resmi Apple dan kontrol versi repositori kode resmi, sehingga lebih banyak pengembang dapat berpartisipasi dengan biaya rendah. Jika masalah ini diperbaiki, diharapkan akan ada banyak permintaan di masa depan. Bahkan akan ada posisi khusus pengembang Snap.
Dengan banyaknya pengguna MetaMask, pengembang independen mungkin juga memiliki peluang tertentu. Mari kita tunggu dan lihat apa terobosan inovasi selanjutnya yang dihadirkan Snap.