


TMA Wallet — dompet MPC bukan jagaan untuk Apl Mini Telegram anda
JavaScript · Matawang Kripto · Kriptografi
Gambaran keseluruhan
Hello semua! Saya rasa anda sudah tahu bahawa selama kira-kira setahun kini terdapat ledakan apl mini dalam Telegram semua orang mengetuk hamster. Kebanyakan aplikasi mini ini berkaitan dengan crypto. Ramai pembangun ingin memberikan pengguna mereka dompet di dalam apl (EVM, TON, Solana, dll.)—pada asasnya akaun maya yang boleh ditambah nilai, boleh mengeluarkan dana dan yang paling penting, boleh menghubungi kontrak pintar.
Penyelesaian yang mudah tetapi tidak selamat ialah menyimpan semua kunci pada pelayan anda dan membuat transaksi bagi pihak pengguna. Jika seseorang menggodam pelayan anda, semua dana pelanggan akan hilang. Sukar untuk mendapatkan kepercayaan orang dalam senario itu.
Penyelesaian yang kompleks tetapi menyusahkan ialah dompet yang pengguna mesti catatkan pada sekeping kertas dan uruskan sendiri. Dalam kes itu, anda juga boleh menggunakan WalletConnect atau tidak membina apl mini sama sekali. Masalahnya ialah UI apl mini anda boleh menjadi menyakitkan: pengguna perlu mengesahkan setiap tindakan dalam apl luaran.
Kami mencari pilihan untuk apl mini kami yang menawarkan keselamatan dompet bukan penjagaan dengan UX/UI yang paling lancar. Dan kami menemuinya.
Dalam artikel ini, saya akan menyemak Dompet TMA (pakej npm, tapak web, GitHub)—dompet berbilang pihak sumber terbuka, bukan penjagaan, sesuai untuk sebarang rantaian, yang berfungsi menggunakan baru-baru ini memperkenalkan API Storan Awan Telegram.
Jom!
Penjelasan Terma yang Sangat Ringkas
Dompet = Kunci Peribadi. Kunci persendirian ini digunakan untuk menandatangani urus niaga dan memberikan pemiliknya hak untuk mengawal dana di alamat blok tertentu.
Dompet Kustodial = Sesetengah organisasi memiliki kunci peribadi anda dan boleh bertindak bagi pihak anda. Contoh klasik ialah pertukaran kripto seperti Binance. Ia mudah tetapi memerlukan kepercayaan yang tinggi dalam organisasi.
Dompet Bukan Kustodian = Anda sahaja yang mempunyai kunci peribadi anda. Ia disimpan pada peranti anda dan semua tindakan dengan dana anda dilakukan oleh anda atau dengan pengesahan anda. Isu utama ialah ia mudah hilang. Jika anda kehilangan kunci peribadi anda, anda kehilangan dana anda.
MPC (pengiraan berbilang pihak) = Percubaan untuk menyelesaikan isu "dompet hilang": kunci dibahagikan kepada beberapa bahagian, disimpan di tempat yang berbeza dan semua bahagian diperlukan untuk membentuk tandatangan pada transaksi. Dalam senario ini, menggodam satu pihak tidak membenarkan anda mengakses dana pengguna. Sementara itu, pengguna tidak perlu menyimpan kunci sepenuhnya sendiri.
Jadi, dompet MPC bukan jagaan ialah dompet di mana kunci persendirian dibahagikan kepada bahagian yang disimpan di lokasi yang berbeza dan tidak pernah dipasang sepenuhnya oleh mana-mana pihak.
Apakah Sebenarnya Dompet TMA?
Dompet TMA ialah dompet bukan jagaan, berbilang pihak (MPC) yang menggunakan Storan Awan Telegram untuk storan kunci selamat. Semuanya dipautkan ke akaun Telegram pengguna, jadi mereka tidak perlu mengingati sebarang frasa benih atau menyediakan dompet luaran. Alirannya sangat lancar sehingga pengguna anda mungkin tidak menyedari terdapat dompet crypto di bawah hud—anda boleh membina UI yang mesra sepenuhnya dan menyembunyikan keajaiban blockchain daripada pengguna.
Berikut adalah beberapa kelebihan utama:
Integrasi Mudah: Hanya pasang pakej npm, palamkannya ke dalam kod anda, dan itu sahaja. Setiap pengguna apl mini anda kini mempunyai dompet.
Tiada Penyelesaian TON Connect atau WalletConnect: Pengguna kekal sepenuhnya dalam Telegram; semua urus niaga ditandatangani "di bawah tudung."
Teknologi MPC: Kunci peribadi tidak tersedia kepada sesiapa—bukan Telegram, bukan pelayan anda, bukan pelayan TMA Wallet. Ia hanya disatukan pada peranti pengguna selama beberapa nanosaat (semasa menandatangani transaksi) dan kemudian hilang.
Pemulihan Mudah: Kehilangan telefon anda? Tiada masalah—dapatkan yang baharu, log masuk ke Telegram dan dompet dipulihkan secara automatik.
Akses daripada Berbilang Peranti: Jika pengguna membuka apl mini daripada klien desktop dengan akaun Telegram yang sama, mereka akan mendapat akses kepada dompet yang sama seperti pada telefon mereka.
Sumber Terbuka: Semuanya ada di GitHub. Anda boleh menyemak dan mengesahkan keselamatan sendiri atau mentauliahkan audit.
Sokongan Viem/Wagmi/Ethers.js: Jika anda sedang mengusahakan mana-mana rantaian serasi EVM (Ethereum, BSC, Polygon, dll.), anda boleh menggunakan perpustakaan standard.
Menyokong Sebarang Rantaian: Rantaian EVM disokong di luar kotak, tetapi TMA Wallet pada asasnya ialah sistem untuk penyimpanan berasingan bagi sebarang rahsia. Jadi anda boleh menyimpan kunci peribadi untuk TON, Solana atau mana-mana rantai lain.
Bagaimana Ia Berfungsi "Di Bawah Tudung"?
Seperti yang telah saya nyatakan, TMA Wallet adalah berdasarkan prinsip MPC, di mana kunci persendirian dikongsi secara berkesan antara berbilang pihak dan hanya dipasang semula secara ringkas pada pihak pelanggan untuk menandatangani transaksi. Berikut ialah ringkasan ringkas:
Apabila pengguna mula-mula membuka apl mini anda, peranti pengguna menjana ClientPublicKey dan ClientSecretKey. ClientSecretKey disimpan dalam Storan Awan Telegram.
ClientPublicKey dan WebApp.initData (ditandatangani oleh Telegram) dihantar ke pelayan.
Pelayan menyemak sama ada tandatangan Telegram adalah sah dan (sebagai pilihan) meminta pengguna untuk pengesahan tambahan (2FA). Ia adalah pilihan, dan anda tidak perlu melakukannya jika anda tidak mahu.
Pelayan kemudian menjana IntermediaryKey dengan menandatangani (ClientPublicKey telegramUserId) dengan ServerSecretKeynya sendiri. Kemudian ia menyulitkan IntermediaryKey ini sebelum menghantarnya kembali kepada pelanggan.
IntermediaryKey kembali kepada klien dan dinyahsulitkan di sana.
Akhir sekali, pelanggan menandatangani IntermediaryKey dengan ClientSecretKey, menghasilkan WalletPrivateKey (kunci peribadi sebenar dompet).
Kunci ini digunakan untuk menandatangani transaksi dan tidak pernah disimpan di mana-mana dalam jangka masa panjang. Untuk setiap tindakan baharu, rantaian langkah itu (kecuali langkah 1) diulang.
Akhirnya, UX apl kelihatan sempurna: log masuk adalah lancar berkat auto-auto dalam apl mini dan transaksi berjalan lancar kerana terdapat dompet dalam apl.
Bagaimana untuk Menambahkannya pada Apl Mini Anda?
- Pasang SDK:
npm install --save @tmawallet/sdk
- Mulakan kunci dalam kod anda:
import { TMAWalletClient } from '@tmawallet/sdk'; import { ethers } from 'ethers'; // Don't forget to sign up at dash.tmawallet.com const myApiKey = '1234567812345678'; // Your API key const client = new TMAWalletClient(myApiKey); // Authorize the user and create/load their wallet await client.authenticate(); console.log('Your wallet address: ', client.walletAddress);
- Contoh membuat transaksi (di sini menggunakan Ethers.js):
// Use TMA Wallet as the "signer" for ethers const provider = new ethers.JsonRpcProvider(); const signer = client.getEthersSigner(provider); const tx = await signer.sendTransaction({ to: '0x...', value: ethers.parseEther('1.0'), }); console.log('Transaction hash:', tx.hash);
Dan itu sahaja.
Soalan Lazim
Di bawah ialah soalan (diedit sedikit) daripada README TMA Wallet, dengan jawapannya:
Adakah ini pasti selamat?
Ya, itulah idea terasnya. Terima kasih kepada protokol MPC, pelayan TMA Wallet, Telegram, mahupun anda tidak mempunyai akses penuh kepada kunci persendirian—hanya pengguna sahaja.
Adakah saya perlu memberi anda akses kepada token bot saya?
Tidak. Kami antara yang pertama menyokong skim tandatangan asimetri baharu Telegram. Kami hanya memerlukan ID bot anda, yang sudah terbuka.
Sekatan yang manakah boleh disokong?
mana-mana. Blockchain EVM (Ethereum, dll.) berfungsi di luar kotak dengan ethers.js. Untuk sesuatu tersuai, anda boleh menggunakan kaedah accessPrivateKey.
Bagaimana jika pengguna kehilangan peranti mereka?
Selagi mereka mempunyai akses ke akaun Telegram mereka, mereka hanya log masuk pada peranti baharu, dan dompet dipulihkan secara automatik. Tiada frasa benih diperlukan.
Bolehkah saya menyandarkan kunci?
Secara teknikalnya ya, tetapi anda mungkin tidak perlu melakukannya. Dompet sudah boleh dipulihkan melalui Telegram. Jika anda mahu, anda boleh membenarkan pengguna menyandarkannya, tetapi itu atas risiko anda sendiri.
Kesimpulan
Kami menggunakan Dompet TMA dalam dua apl kami sendiri. Satu sudah dalam pengeluaran (saya agak malu untuk menyiarkan pautan pada mulanya, tetapi saya rasa tidak mengapa untuk menyebut di sini dalam pengaki: Only100x).
Ini adalah pilihan yang bagus untuk sesiapa sahaja yang membina apl mini Telegram yang mahu memberikan pengguna dompet selamat tanpa merosakkan UX dengan penyambung luaran.
Jangan ragu untuk mencubanya dan terokai dokumentasi. Semua kod projek dibuka pada GitHub. Semoga berjaya!
Tag:
aplikasi mini telegram · crypto · dompet bukan jagaan · dompet tma
Atas ialah kandungan terperinci TMA Wallet — dompet MPC bukan jagaan untuk Apl Mini Telegram anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Kedua -dua pilihan Python dan JavaScript dalam persekitaran pembangunan adalah penting. 1) Persekitaran pembangunan Python termasuk Pycharm, Jupyternotebook dan Anaconda, yang sesuai untuk sains data dan prototaip cepat. 2) Persekitaran pembangunan JavaScript termasuk node.js, vscode dan webpack, yang sesuai untuk pembangunan front-end dan back-end. Memilih alat yang betul mengikut keperluan projek dapat meningkatkan kecekapan pembangunan dan kadar kejayaan projek.
