Apa Itu Penandatanganan Transaksi?
Penandatanganan transaksi adalah proses kriptografis untuk menyetujui transaksi blockchain menggunakan kunci privat.Dalam kripto, penandatanganan membuktikan bahwa orang atau wallet yang mengendalikan kunci privat telah mengotorisasi transaksi tertentu.Transaksi yang telah ditandatangani dapat disiarkan ke jaringan blockchain agar validator atau miner dapat memverifikasinya dan memutuskan apakah transaksi tersebut valid.Dokumentasi akun Ethereum resmi menjelaskan bahwa kunci privat diperlukan untuk menandatangani pesan dan transaksi, serta signature yang dihasilkan dapat membuktikan kepengarangan.
Penandatanganan transaksi tidak mengungkapkan kunci privat.Proses ini membuat signature digital yang dapat diperiksa menggunakan informasi kriptografis publik.Ini adalah salah satu konsep keamanan terpenting dalam kripto karena pengguna dapat mengotorisasi transfer tanpa mengungkap rahasia yang mengendalikan dana mereka.Saat pengguna mengeklik “konfirmasi” di wallet, wallet biasanya meminta kunci privat atau perangkat penandatanganan untuk membuat signature atas data transaksi.Blockchain kemudian memeriksa apakah signature cocok dengan akun atau alamat yang mencoba membelanjakan dana atau melakukan tindakan.Jika signature valid dan transaksi mengikuti aturan jaringan, transaksi dapat dimasukkan ke dalam blok.Mengapa Penandatanganan Transaksi Penting
Penandatanganan transaksi penting karena blockchain tidak menggunakan kata sandi untuk menyetujui pembayaran.Blockchain menggunakan signature kriptografis yang dibuat dari kunci privat.Bank dapat membatalkan atau memblokir beberapa tindakan akun melalui sistem terpusat, tetapi sebagian besar transaksi blockchain bersifat final setelah konfirmasi.Hal ini membuat langkah penandatanganan sangat penting.Signature yang valid dapat mengotorisasi transfer token, penjualan NFT, persetujuan DeFi, tindakan staking, voting governance, transfer bridge, pemanggilan smart contract, atau delegasi wallet.Jika pengguna menandatangani transaksi yang salah, blockchain dapat memperlakukannya sebagai otorisasi nyata.Jika malware mencuri kunci privat, penyerang dapat menandatangani transaksi tanpa izin pengguna.Jika situs phishing mengelabui pengguna agar menandatangani transaksi berbahaya, akibatnya dapat berupa kehilangan dana meskipun kunci privat tidak pernah keluar dari wallet.Karena itu, penandatanganan transaksi adalah fitur keamanan sekaligus titik risiko utama bagi pengguna.Penggunaan kripto yang aman bergantung pada pemahaman terhadap apa yang ditandatangani sebelum menyetujuinya.Cara Kerja Penandatanganan Transaksi
Wallet terlebih dahulu membangun data transaksi berdasarkan tindakan yang ingin dilakukan pengguna.Data ini dapat mencakup pengirim, penerima, jumlah, biaya, nonce, chain ID, alamat kontrak, pemanggilan fungsi, dan kolom lainnya, bergantung pada blockchain.Wallet kemudian menyiapkan data dalam format yang diwajibkan blockchain tersebut.Proses penandatanganan membuat signature kriptografis atas data transaksi.Transaksi yang ditandatangani mencakup data transaksi asli dan signature.Transaksi kemudian dapat dikirim ke jaringan peer-to-peer atau endpoint RPC.Node memverifikasi bahwa signature valid untuk pengirim yang diklaim.Node juga memverifikasi bahwa pengirim memiliki dana cukup, nonce atau sequence valid, biaya cukup, serta transaksi mengikuti aturan protokol.Jika transaksi lolos validasi, transaksi dapat dimasukkan ke dalam blok.Signature mengubah transaksi yang telah disiapkan menjadi transaksi yang telah diotorisasi.Kunci Privat dan Kunci Publik
Kunci privat adalah nilai rahasia yang digunakan untuk menandatangani transaksi.Kunci publik memiliki hubungan matematis dengan kunci privat dan dapat membantu membuktikan bahwa signature valid.Alamat blockchain biasanya diturunkan dari kunci publik atau dari struktur script atau akun yang terhubung dengan kepemilikan kunci.Kunci privat harus dirahasiakan selamanya.Kunci publik atau alamat dapat dibagikan agar orang lain dapat memverifikasi signature atau mengirim dana.Dokumentasi wallet Bitcoin resmi menjelaskan bahwa program wallet membuat kunci publik untuk menerima satoshi dan menggunakan kunci privat terkait untuk membelanjakannya.
Gagasan dasar yang sama muncul di banyak jaringan kripto, meskipun format alamat dan algoritme signature berbeda.Jika kunci privat hilang, pengguna dapat kehilangan akses ke dana.Jika kunci privat dicuri, penyerang mungkin dapat menandatangani transaksi dan memindahkan dana.Penandatanganan transaksi hanya aman jika kunci privat dibuat, disimpan, dan digunakan secara aman.Signature Digital
Signature digital membuktikan bahwa transaksi diotorisasi oleh seseorang yang memiliki kunci privat yang benar.Signature juga membantu melindungi transaksi agar tidak diubah setelah ditandatangani.Jika seseorang mengubah jumlah transaksi, penerima, biaya, atau pemanggilan kontrak setelah penandatanganan, signature seharusnya tidak lagi dapat diverifikasi untuk data yang berubah tersebut.Artinya, data yang ditandatangani sama pentingnya dengan signature itu sendiri.Pengguna tidak menandatangani niat yang samar seperti “kirim sejumlah kripto”.Pengguna menandatangani data transaksi spesifik dengan detail tertentu.Inilah sebabnya antarmuka wallet harus menampilkan informasi penandatanganan yang jelas sebelum persetujuan.Signature berguna karena peserta jaringan lain dapat memverifikasinya tanpa mengetahui kunci privat.Hal ini memungkinkan validasi terdesentralisasi tanpa server login pusat.Signature digital merupakan fondasi praktis kepemilikan kripto.Penandatanganan Transaksi di Ethereum
Penandatanganan transaksi Ethereum menyetujui transaksi dari externally owned account atau alur akun lain yang didukung.Dokumentasi transaksi Ethereum resmi menjelaskan bahwa transaksi adalah instruksi yang ditandatangani secara kriptografis dari sebuah akun.
Data transaksi Ethereum dapat mencakup nonce, penerima, value, data input, batas gas, kolom biaya, chain ID, dan kolom signature.Nonce membantu mengurutkan transaksi dari akun yang sama dan mencegah transaksi yang sama diterima berulang kali dalam urutan akun yang sama.Kolom gas menentukan jumlah yang bersedia dibayar pengguna untuk eksekusi dan inklusi.Kolom data dapat kosong untuk transfer ETH sederhana atau dapat berisi data pemanggilan smart contract.Transfer token di Ethereum biasanya merupakan transaksi yang memanggil kontrak token, bukan perpindahan ETH native sederhana.Artinya, pengguna dapat menandatangani transaksi yang memanggil
Penandatanganan Transaksi di Bitcoin
Penandatanganan transaksi Bitcoin bekerja berbeda dari chain berbasis akun karena Bitcoin menggunakan model UTXO.UTXO adalah output transaksi yang belum dibelanjakan dan dapat digunakan sebagai input dalam transaksi mendatang.Dokumentasi transaksi Bitcoin resmi menjelaskan bahwa transaksi memungkinkan pengguna membelanjakan satoshi dan disusun dari bagian-bagian yang mendukung pembayaran sederhana maupun kompleks.
Di Bitcoin, signature membuktikan bahwa pembelanja diizinkan membuka kunci output tertentu.Transaksi Bitcoin dapat memiliki beberapa input dan setiap input dapat memerlukan data pembukaan kunci atau data witness sendiri.Artinya, wallet Bitcoin dapat menandatangani beberapa bagian transaksi jika transaksi membelanjakan beberapa UTXO.Signature Bitcoin diperiksa terhadap kondisi penguncian output yang dibelanjakan.Jika signature dan script yang diwajibkan valid, transaksi dapat membelanjakan output tersebut.Desain ini berbeda dari model nonce akun Ethereum, tetapi ide intinya serupa.Kunci privat atau kebijakan penandatanganan harus mengotorisasi perpindahan nilai.Penandatanganan Transaksi di Solana
Penandatanganan transaksi Solana menggunakan signature dari akun yang mengotorisasi instruksi transaksi.Dokumentasi transaksi Solana resmi menyatakan bahwa transaksi mencakup satu atau beberapa instruksi, signature akun yang mengotorisasi perubahan, dan blockhash terbaru.
Transaksi Solana dapat memerlukan lebih dari satu penanda tangan jika beberapa akun harus mengotorisasi instruksi.Solana memproses instruksi dalam transaksi secara bersama-sama.Jika satu instruksi gagal, seluruh transaksi gagal dan perubahan state di-revert.Dokumentasi struktur transaksi Solana resmi menjelaskan bahwa signature pertama dalam array milik pembayar biaya dan juga berfungsi sebagai ID transaksi.
Inilah sebabnya pengguna Solana sering melihat kata “signature” ketika ekosistem lain mungkin menggunakan hash transaksi atau ID transaksi.Pengguna perlu memahami istilah khusus chain saat memeriksa status transaksi.Signature transaksi Solana dapat mengidentifikasi transaksi pada jaringan.Konsep penandatanganan digunakan di berbagai chain, tetapi setiap chain menyusun transaksi dengan cara berbeda.Penandatanganan Transaksi vs Penandatanganan Pesan
Penandatanganan transaksi dan penandatanganan pesan berkaitan, tetapi berbeda.Penandatanganan transaksi mengotorisasi tindakan on-chain yang dapat memindahkan aset, mengubah state kontrak, membayar biaya, atau memperbarui izin akun.Penandatanganan pesan membuktikan kontrol atas alamat wallet tanpa harus mengirim transaksi on-chain.Situs web dapat meminta pengguna menandatangani pesan untuk login, membuktikan kepemilikan wallet, atau menyetujui ketentuan.Penandatanganan pesan dapat berguna karena mungkin tidak memerlukan gas dan tidak langsung memindahkan dana.Namun, penandatanganan pesan tetap berisiko jika pesan memberikan izin, mengotorisasi trading, menandatangani order, atau mendelegasikan kewenangan.Standar EIP-712 resmi mendefinisikan metode untuk hashing dan penandatanganan data terstruktur bertipe, bukan hanya menandatangani string byte mentah.
Penandatanganan data bertipe membantu wallet menampilkan kolom yang mudah dibaca manusia, tetapi pengguna tetap harus membaca detailnya.Untuk Bitcoin, BIP-322 menentukan format penandatanganan pesan umum untuk membuktikan kontrol atas alamat Bitcoin.
Pesan yang ditandatangani tidak otomatis aman hanya karena tidak menyiarkan transaksi.Apa yang Sebenarnya Ditandatangani Pengguna
Pengguna menandatangani data terstruktur yang bergantung pada blockchain dan jenis tindakan.Untuk transfer koin native sederhana, data yang ditandatangani dapat mencakup alamat tujuan, jumlah, biaya, data nonce atau sequence, dan informasi chain.Untuk transfer token, data yang ditandatangani dapat mencakup pemanggilan smart contract untuk memindahkan token.Untuk persetujuan, data yang ditandatangani dapat mengotorisasi kontrak untuk membelanjakan token di kemudian hari.Untuk trading DeFi, data yang ditandatangani dapat mencakup detail rute swap, batas slippage, tenggat waktu, dan persetujuan token.Untuk listing NFT, data yang ditandatangani dapat mengotorisasi order bergaya marketplace atau izin transfer.Untuk delegasi akun, data yang ditandatangani dapat mengizinkan kontrak atau mekanisme akun lain bertindak dengan kewenangan khusus.Pengalaman pengguna sering menyembunyikan kompleksitas ini di balik satu tombol konfirmasi.Hal ini dapat berbahaya ketika prompt wallet tidak jelas.Pengguna paling aman menanyakan kewenangan tepat yang diciptakan suatu signature sebelum menyetujuinya.Perlindungan Replay
Perlindungan replay mencegah signature valid digunakan kembali dalam konteks yang salah.Tanpa perlindungan replay, transaksi yang ditandatangani untuk satu chain atau situasi dapat disalin dan dikirimkan di tempat lain jika datanya diterima di sana.Standar perlindungan replay EIP-155 Ethereum memperkenalkan chain ID ke dalam penandatanganan transaksi agar transaksi untuk satu chain tidak dapat berfungsi di chain kompatibel lain dengan chain ID berbeda.
Hal ini penting karena banyak jaringan dapat memiliki format alamat dan struktur transaksi yang serupa.Signature harus terikat pada chain dan konteks transaksi yang benar.Prompt wallet modern sering menampilkan jaringan sebelum penandatanganan karena konteks jaringan penting.Pengguna harus menolak permintaan penandatanganan yang menampilkan chain tidak terduga.Developer perlu menyertakan pengenal chain, nonce, tenggat waktu, domain, dan alamat kontrak jika sesuai.Perlindungan replay bukan sekadar detail teknis.Perlindungan ini melindungi pengguna dari penggunaan ulang signature di luar tujuan yang dimaksudkan.Nonce dan Urutan Transaksi
Nonce adalah angka yang membantu mencegah eksekusi transaksi duplikat dan mengurutkan transaksi dari akun yang sama.Di Ethereum, setiap transaksi dari externally owned account menggunakan nonce.Jika pengguna menandatangani dua transaksi dengan nonce yang sama, biasanya hanya satu yang dapat diterima untuk urutan akun tersebut.Inilah sebabnya transaksi pengganti dapat terjadi ketika pengguna mempercepat atau membatalkan transaksi tertunda.Penggantian bukanlah sihir.Penggantian adalah transaksi lain yang ditandatangani menggunakan nonce sama dengan kondisi biaya atau detail tindakan berbeda.Pengguna perlu berhati-hati saat mengganti transaksi karena mereka tetap menandatangani data transaksi nyata.Developer harus mengelola nonce dengan benar saat membangun wallet, bot trading, sistem pembayaran, atau pengirim transaksi backend.Kesalahan nonce dapat menyebabkan transaksi tertahan, siaran gagal, atau penggantian yang tidak disengaja.Signature dengan nonce yang benar membantu jaringan memahami urutan transaksi yang dimaksudkan.Gas, Biaya, dan Transaksi yang Ditandatangani
Penandatanganan transaksi biasanya mencakup data terkait biaya.Di Ethereum, transaksi yang ditandatangani mencakup kolom gas dan biaya yang menentukan jumlah bersedia dibayar pengirim.Di Bitcoin, biaya transaksi berkaitan dengan ukuran transaksi dan tingkat biaya.Di Solana, pembayar biaya menandatangani transaksi dan membayar biaya dasar serta biaya prioritas.Biaya penting karena pengguna dapat menandatangani transaksi valid yang tidak pernah terkonfirmasi jika biayanya terlalu rendah untuk kondisi jaringan saat ini.Biaya juga penting karena antarmuka berbahaya dapat menyembunyikan transaksi mahal di balik prompt yang membingungkan.Pengguna perlu meninjau pergerakan aset dan biaya sebelum menandatangani.Developer perlu menampilkan estimasi biaya dengan jelas dan memperbaruinya saat kondisi jaringan berubah.Hardware wallet dan aplikasi wallet harus memudahkan pengguna memahami biaya yang dibayar.Transaksi yang ditandatangani adalah otorisasi untuk membelanjakan aset yang ditransfer dan biaya jaringan yang diperlukan.Penandatanganan dengan Hardware Wallet
Penandatanganan hardware wallet menyimpan kunci privat di dalam perangkat fisik khusus.Perangkat lunak wallet menyiapkan transaksi, tetapi hardware wallet hanya menandatangani setelah pengguna mengonfirmasi detail pada perangkat.Hal ini mengurangi risiko malware pada komputer dapat mencuri kunci privat secara langsung.Hal ini juga memberi pengguna layar tepercaya untuk memeriksa alamat, jumlah, dan detail transaksi.Namun, hardware wallet tidak menjadikan setiap signature aman.Jika pengguna menyetujui transaksi berbahaya, hardware wallet dapat menandatangani transaksi berbahaya tersebut dengan benar.Inilah sebabnya pengguna harus membaca layar perangkat, bukan menyetujui prompt secara buta.Hardware wallet paling kuat untuk kustodi jangka panjang, saldo besar, dan peninjauan transaksi yang cermat.Hardware wallet bukan pengganti pemahaman tentang persetujuan, pemanggilan kontrak, dan risiko phishing.Perangkat melindungi kunci, tetapi pengguna harus melindungi keputusan untuk menandatangani.Penandatanganan Hot Wallet
Hot wallet menandatangani transaksi dari perangkat yang terhubung ke internet.Contohnya termasuk wallet browser, wallet seluler, wallet desktop, dan wallet berbasis aplikasi.Hot wallet praktis karena memudahkan transaksi yang sering dilakukan.Hot wallet juga lebih terpapar malware, phishing, ekstensi browser berbahaya, dan kompromi perangkat.Hot wallet dapat menyimpan kunci privat atau materi kunci pada ponsel atau komputer.Jika perangkat tersebut disusupi, penyerang mungkin dapat menandatangani transaksi atau mencuri rahasia wallet.Pengguna sebaiknya hanya menyimpan jumlah praktis untuk pengeluaran di hot wallet jika memungkinkan.Pengguna sebaiknya menggunakan hardware wallet atau pengaturan kustodi yang lebih kuat untuk kepemilikan yang lebih besar.Pengguna juga sebaiknya memisahkan wallet untuk aktivitas sehari-hari dari wallet penyimpanan jangka panjang.Kenyamanan dan keamanan sering bertentangan dalam penandatanganan transaksi kripto.Penandatanganan Transaksi Multisignature
Penandatanganan transaksi multisignature memerlukan lebih dari satu kunci atau penanda tangan untuk mengotorisasi transaksi.Di Bitcoin, pembelanjaan multisignature dapat memerlukan jumlah signature yang dipilih dari kumpulan kunci yang lebih besar.Dalam ekosistem smart contract, wallet multisig sering menggunakan aturan kontrak untuk memerlukan beberapa persetujuan sebelum eksekusi.Multisig dapat mengurangi risiko kegagalan satu kunci.Misalnya, treasury dapat memerlukan tiga dari lima penanda tangan sebelum dana dapat dipindahkan.Hal ini dapat melindungi dari satu kunci yang dicuri, satu perangkat yang hilang, atau satu operator nakal.Namun, multisig menambah kompleksitas koordinasi dan operasional.Penanda tangan harus memahami apa yang mereka setujui.Kebijakan harus menetapkan siapa yang menandatangani, cara perangkat disimpan, cara keadaan darurat ditangani, dan cara kunci dirotasi.Sistem multisig hanya sekuat proses penandatanganan dan disiplin governance-nya.Penandatanganan Smart Contract Wallet
Smart contract wallet menggunakan logika kontrak untuk memutuskan apakah transaksi atau operasi diotorisasi.Wallet ini dapat mendukung persetujuan multisig, batas pengeluaran, session key, pemulihan sosial, paymaster, dan tindakan batch.Smart contract wallet mungkin tetap mengandalkan signature, tetapi signature diperiksa oleh logika kontrak, bukan hanya aturan akun dasar.Hal ini dapat meningkatkan kegunaan dan keamanan jika diterapkan dengan baik.Hal ini juga dapat menciptakan risiko baru jika kontrak wallet, sistem plugin, sistem modul, atau pengaturan pemulihan tidak aman.Pengguna perlu memahami siapa yang dapat melakukan upgrade atau mengendalikan smart contract wallet.Pengguna perlu meninjau modul, delegate, session key, dan izin secara rutin.Developer harus membuat prompt otorisasi jelas dan menghindari kewenangan tersembunyi.Smart contract wallet membuat penandatanganan lebih fleksibel, tetapi juga membuat makna signature lebih kompleks.Pengguna mungkin menandatangani operasi yang kemudian dieksekusi contract wallet berdasarkan aturan tertentu.EIP-7702 dan Penandatanganan Delegasi
Fitur akun Ethereum yang lebih baru membuat penandatanganan transaksi semakin penting untuk dipahami.Dokumentasi transaksi Ethereum resmi menjelaskan bahwa transaksi Type 4 diperkenalkan melalui EIP-7702 sebagai bagian dari upgrade Pectra Ethereum.Panduan EIP-7702 Ethereum resmi menjelaskan bahwa EIP-7702 memungkinkan externally owned account untuk sementara berperilaku seperti akun smart contract dengan menetapkan pointer ke kode yang telah di-deploy menggunakan jenis transaksi baru.
Hal ini dapat memungkinkan fitur berguna seperti batching, sponsorship, dan upgrade bergaya akun.Hal ini juga dapat membuat prompt penandatanganan lebih sensitif karena delegasi dapat mengubah perilaku akun.Signature bergaya delegasi dapat mengotorisasi lebih dari satu transfer dasar.Pengguna perlu memperlakukan prompt delegasi wallet, daftar otorisasi, session key, atau upgrade akun dengan kehati-hatian tambahan.Pengguna hanya boleh menandatangani permintaan tersebut dari aplikasi tepercaya dan setelah memahami cakupannya.Wallet harus menjelaskan dengan jelas fungsi delegasi dan cara mencabutnya.Seiring fitur akun berkembang, penandatanganan yang aman memerlukan lebih dari sekadar memeriksa alamat penerima.Blind Signing
Blind signing berarti menyetujui transaksi atau pesan tanpa memahami makna data yang dapat dibaca manusia.Hal ini dapat terjadi ketika wallet tidak dapat mendekode data pemanggilan kontrak dengan jelas.Hal ini juga dapat terjadi ketika hardware wallet hanya menampilkan hash atau kolom yang tidak jelas.Blind signing berisiko karena pengguna mungkin tidak mengetahui kewenangan yang diberikan.Situs berbahaya dapat menampilkan tombol yang tampak tidak berbahaya, sementara wallet menandatangani persetujuan berbahaya atau transfer aset.Pengguna sebaiknya menghindari blind signing jika memungkinkan.Pengguna sebaiknya menggunakan wallet yang mendekode transaksi dengan jelas.Pengguna perlu memverifikasi situs web, alamat kontrak, token, jumlah, jaringan, dan izin.Pengguna perlu menolak prompt yang tidak dapat dipahami.Jika transaksi penting tetapi tidak jelas, pilihan yang lebih aman adalah tidak menandatangani sampai tindakan diverifikasi.Penandatanganan Data Bertipe
Penandatanganan data bertipe membuat signature off-chain lebih mudah dipahami dengan memberikan nama dan tipe pada kolom terstruktur.EIP-712 adalah standar Ethereum paling dikenal untuk penandatanganan data terstruktur bertipe.Standar EIP-712 resmi menyatakan bahwa standar ini digunakan untuk hashing dan penandatanganan data terstruktur bertipe, bukan sekadar string byte.Hal ini membantu wallet menampilkan detail seperti domain, spender, jumlah, tenggat waktu, token, atau kolom order.Penandatanganan data bertipe banyak digunakan untuk pesan login, order, permit, voting, dan otorisasi off-chain.Namun, data yang mudah dibaca tidak otomatis berarti data aman.Pesan bertipe tetap dapat mengotorisasi pembelanjaan token, listing marketplace, tindakan delegate, atau eksekusi order.Pengguna perlu membaca setiap kolom sebelum menandatangani.Developer perlu menggunakan nama yang jelas, domain akurat, chain ID, alamat kontrak verifikasi, dan tenggat waktu.Desain data bertipe yang baik mengurangi risiko phishing, tetapi tidak menghilangkannya.Signature Permit
Signature permit adalah signature off-chain yang dapat menyetujui pembelanjaan token tanpa pemilik token terlebih dahulu mengirim transaksi persetujuan on-chain terpisah.Alur bergaya permit dapat meningkatkan pengalaman pengguna dengan mengurangi jumlah transaksi dan biaya gas.Alur ini umum digunakan dalam persetujuan token, swap DeFi, dan integrasi wallet.Namun, permit dapat berbahaya karena pengguna mungkin mengira sedang menandatangani pesan tidak berbahaya, padahal sebenarnya menyetujui pembelanjaan token.Permit biasanya mencakup detail seperti pemilik, spender, value, nonce, tenggat waktu, dan kontrak token.Jika spender berbahaya dan permit valid, spender dapat menggunakannya untuk memindahkan token dalam cakupan yang disetujui.Pengguna perlu memperlakukan penandatanganan permit seperti persetujuan token.Pengguna perlu memverifikasi alamat spender, token, jumlah, tenggat waktu, dan situs web.Developer harus membuat prompt permit jelas dan membatasi jumlah persetujuan jika memungkinkan.Signature permit menunjukkan bahwa penandatanganan pesan dapat memiliki dampak finansial bahkan tanpa transaksi on-chain langsung.Penandatanganan Transaksi dan Persetujuan Token
Persetujuan token adalah salah satu risiko penandatanganan terpenting dalam kripto.Saat pengguna menyetujui smart contract, pengguna dapat mengizinkan kontrak tersebut membelanjakan token di kemudian hari.Tindakan DeFi kecil dapat dimulai dengan transaksi persetujuan besar.Jika kontrak berbahaya, persetujuan dapat digunakan untuk menguras token yang disetujui.Jika kontrak kemudian disusupi, persetujuan lama dapat menjadi berbahaya.Pengguna sebaiknya menghindari persetujuan tanpa batas kecuali memahami risiko dan sangat memercayai kontrak.Pengguna perlu meninjau dan mencabut persetujuan lama ketika tidak lagi diperlukan.Pengguna perlu menggunakan wallet terpisah untuk aktivitas dApp berisiko tinggi dan penyimpanan jangka panjang.Wallet harus memberi label persetujuan dengan jelas dan memperingatkan apabila persetujuan tidak terbatas atau terlalu luas.Menandatangani persetujuan dapat sama berisikonya dengan menandatangani transfer.Penandatanganan Transaksi dan NFT
Penandatanganan transaksi NFT dapat mengotorisasi transfer, listing, persetujuan, bid, mint, burn, atau order marketplace.Scam NFT sering berfokus mengelabui pengguna agar menandatangani persetujuan, bukan mencuri kunci privat secara langsung.Pengguna dapat menandatangani transaksi yang menyetujui kontrak untuk memindahkan satu NFT atau seluruh koleksi.Pengguna dapat menandatangani listing off-chain yang memungkinkan pembeli membeli NFT berdasarkan ketentuan tertentu.Situs mint palsu dapat meminta pengguna menandatangani transaksi yang sebenarnya mentransfer NFT bernilai.Pengguna perlu memverifikasi halaman koleksi, alamat kontrak, cakupan persetujuan, dan detail order marketplace sebelum menandatangani.Pengguna sebaiknya menghindari tautan mendesak, halaman mint dari pesan langsung, dan situs klaim yang tidak dikenal.Hardware wallet dapat membantu melindungi kunci, tetapi tidak dapat memutuskan apakah persetujuan NFT aman.Keamanan penandatanganan NFT bergantung pada pembacaan prompt dan pemahaman izin yang diberikan.Signature NFT yang paling berbahaya sering kali adalah yang tampak rutin.Penandatanganan Transaksi dan DeFi
Penandatanganan transaksi DeFi sering melibatkan pemanggilan smart contract yang kompleks.Satu tindakan pengguna dapat mencakup persetujuan token, eksekusi swap, perpindahan likuiditas, deposit jaminan, peminjaman, pelunasan, staking, atau bridging.Banyak transaksi DeFi bersifat atomik, artinya semua langkah yang disertakan berhasil atau seluruh transaksi gagal.Hal ini dapat berguna, tetapi juga membuat prompt penandatanganan lebih sulit dipahami.Pengguna perlu memeriksa URL protokol, kontrak token, jumlah yang diharapkan, jumlah minimum diterima, slippage, tenggat waktu, dan jumlah persetujuan.Pengguna perlu berhati-hati terhadap token dan pool yang tidak familier.Pengguna perlu menghindari menandatangani transaksi dari tautan salinan atau pesan langsung.Pengguna sebaiknya mempertimbangkan simulasi dan pratinjau transaksi jika tersedia.Developer harus membuat prompt penandatanganan DeFi mudah dipahami dan tidak menyembunyikan izin berisiko tinggi.DeFi menjadikan penandatanganan transaksi sebagai keputusan finansial, bukan sekadar tindakan teknis.Penandatanganan Transaksi dan Bridge
Transaksi bridge sering memerlukan penandatanganan di satu chain untuk mengunci, membakar, me-mint, melepaskan, atau mengklaim aset di chain lain.Hal ini dapat melibatkan beberapa transaksi dan beberapa signature.Bridge dapat meminta pengguna menyetujui token, mendepositkannya ke kontrak bridge, menunggu konfirmasi, dan mengklaim representasi di tempat lain.Setiap langkah penandatanganan memiliki risikonya sendiri.Persetujuan dapat mengekspos token.Deposit dapat mengirim aset ke kontrak.Klaim dapat berinteraksi dengan chain dan format alamat berbeda.Pengguna perlu memverifikasi URL bridge, alamat kontrak, rute yang didukung, biaya, asumsi finalitas, dan wallet tujuan.Pengguna sebaiknya mengirim jumlah uji kecil jika memungkinkan.Penandatanganan bridge menambah kompleksitas cross-chain, sehingga pengguna tidak boleh terburu-buru saat meninjau prompt.Penandatanganan Transaksi dan Phishing
Serangan phishing sering mencoba membuat pengguna menandatangani sesuatu yang berbahaya.Penyerang dapat menggunakan airdrop palsu, mint palsu, halaman dukungan palsu, dasbor staking palsu, peringatan wallet palsu, atau pengaturan ulang persetujuan palsu.Tujuannya dapat berupa membuat pengguna menandatangani persetujuan token, persetujuan NFT, permit, delegasi, atau transfer langsung.Phishing dapat berhasil meskipun kunci privat tidak pernah keluar dari wallet.Penyerang hanya perlu membuat pengguna menandatangani data yang salah.Pengguna harus memeriksa URL dengan cermat dan menghindari tautan dari pesan langsung, komentar, iklan, atau email tidak dikenal.Pengguna tidak boleh menghubungkan wallet ke situs yang tidak dipercaya.Pengguna harus menolak prompt penandatanganan yang tidak terduga.Pengguna tidak boleh membagikan seed phrase, kata pemulihan, kunci privat, atau file cadangan wallet.Keamanan penandatanganan dimulai sebelum prompt wallet muncul.Penandatanganan Transaksi dan Malware
Malware dapat menyerang penandatanganan transaksi dengan beberapa cara.Malware clipboard dapat mengganti alamat yang disalin dengan alamat penyerang.Malware browser dapat mengubah tampilan situs web.Perangkat lunak wallet palsu dapat membuat prompt transaksi berbahaya.Keylogger dapat mencuri kata sandi atau rahasia hot wallet.Serangan overlay layar dapat menyembunyikan detail transaksi sebenarnya.Malware akses jarak jauh dapat mengoperasikan wallet saat pengguna teralihkan.Hardware wallet membantu mengurangi sebagian risiko malware karena kunci privat tetap berada di perangkat.Namun, pengguna tetap perlu memverifikasi alamat dan jumlah pada layar perangkat tepercaya.Risiko malware merupakan alasan penandatanganan transaksi tidak boleh dianggap sebagai kebiasaan satu klik.Penandatanganan Transaksi dan Pencabutan
Transaksi yang telah ditandatangani biasanya tidak dapat dicabut setelah terkonfirmasi secara on-chain.Namun, beberapa izin yang dibuat oleh signature dapat dikurangi kemudian.Persetujuan token sering dapat dicabut atau diturunkan dengan mengirim transaksi lain.Session key terkadang dapat dihapus melalui pengaturan wallet.Delegasi dapat memiliki alur pencabutan bergantung pada sistem akun.Listing marketplace dapat dibatalkan jika desain marketplace mendukung pembatalan dan order belum dieksekusi.Pengguna perlu memahami apakah signature menciptakan tindakan satu kali atau izin berkelanjutan.Pengguna perlu meninjau persetujuan dan izin aktif secara rutin.Pengguna perlu bertindak cepat jika mencurigai persetujuan atau delegasi berbahaya.Pencabutan berguna, tetapi tidak dapat membatalkan aset yang sudah dipindahkan oleh signature valid.Penandatanganan Transaksi dan Transaksi Gagal
Transaksi yang ditandatangani tetap dapat gagal.Transaksi dapat gagal karena akun tidak memiliki saldo biaya yang cukup.Transaksi dapat gagal karena nonce salah.Transaksi dapat gagal karena kondisi kontrak tidak terpenuhi.Transaksi dapat gagal karena slippage terlalu tinggi atau tenggat waktu telah lewat.Transaksi dapat gagal karena batas gas atau estimasi sumber daya terlalu rendah.Transaksi dapat gagal karena pengguna menandatangani di chain yang salah.Transaksi dapat gagal karena persetujuan token atau saldo berubah sebelum eksekusi.Bahkan transaksi gagal dapat mengonsumsi biaya karena validator tetap memproses eksekusi yang dicoba.Pengguna perlu memeriksa status transaksi pada blockchain explorer tepercaya sebelum mengasumsikan dana telah atau belum berpindah.Penandatanganan Transaksi dan Privasi
Signature transaksi dapat mengungkap pola aktivitas yang terhubung dengan alamat wallet.Di blockchain publik, transaksi yang ditandatangani biasanya terlihat oleh siapa pun setelah disiarkan dan dikonfirmasi.Pengamat dapat menganalisis alamat, jumlah, waktu, perpindahan token, persetujuan, dan interaksi smart contract.Signature pesan juga dapat menciptakan keterkaitan privasi jika pengguna menandatangani dengan alamat yang sama di banyak situs.Pesan login yang ditandatangani dapat membuktikan kontrol wallet kepada suatu layanan, dan layanan tersebut mungkin menghubungkan wallet dengan profil pengguna.Pengguna yang peduli privasi perlu memisahkan wallet berdasarkan tujuan.Pengguna perlu menghindari login ke situs yang tidak diperlukan menggunakan wallet penyimpanan jangka panjang.Pengguna perlu menghindari penggunaan ulang alamat ketika desain chain dan wallet mendukung praktik privasi yang lebih baik.Pengguna perlu memahami bahwa penandatanganan transaksi sering menciptakan catatan publik.Privasi yang baik dimulai dengan pemisahan wallet sebelum penandatanganan dimulai.Praktik Terbaik untuk Pengguna
Verifikasi situs web atau aplikasi sebelum menghubungkan wallet.Periksa jaringan sebelum menandatangani.Baca jenis transaksi sebelum menyetujui.Konfirmasikan alamat penerima dan jumlah.Periksa jumlah persetujuan token dengan cermat.Tolak prompt blind signing yang tidak Anda pahami.Gunakan hardware wallet untuk saldo yang lebih besar.Gunakan wallet terpisah untuk penyimpanan jangka panjang dan aktivitas dApp berisiko tinggi.Kirim transaksi uji kecil sebelum memindahkan jumlah besar.Jangan pernah membagikan kunci privat, seed phrase, kata pemulihan, atau file cadangan wallet.Praktik Terbaik untuk Developer
Buat prompt penandatanganan jelas dan mudah dibaca manusia.Gunakan standar data bertipe ketika meningkatkan pemahaman pengguna.Sertakan chain ID, alamat kontrak, nonce, tenggat waktu, dan pemisah domain jika sesuai.Batasi jumlah persetujuan jika memungkinkan.Hindari meminta pengguna menandatangani izin luas tanpa penjelasan yang jelas.Tampilkan simulasi dan pratinjau transaksi jika memungkinkan.Peringatkan pengguna ketika signature menciptakan kewenangan berkelanjutan.Uji alur penandatanganan di berbagai wallet dan perangkat.Tangani signature gagal dan prompt yang ditolak dengan aman.Rancang alur penandatanganan dengan mempertimbangkan ketahanan terhadap phishing.Kesalahan Umum tentang Penandatanganan Transaksi
Kesalahan pertama adalah menganggap signature hanya konfirmasi login.Beberapa signature dapat mengotorisasi tindakan finansial nyata.Kesalahan kedua adalah menganggap hardware wallet membuat setiap signature aman.Hardware wallet melindungi kunci, tetapi tetap dapat menandatangani transaksi berbahaya jika pengguna menyetujuinya.Kesalahan ketiga adalah mengabaikan persetujuan.Persetujuan dapat mengizinkan kontrak memindahkan token di kemudian hari.Kesalahan keempat adalah menandatangani di jaringan yang salah.Chain ID, nama jaringan, dan kontrak verifikasi dapat mengubah makna signature.Kesalahan kelima adalah memercayai prompt wallet yang tidak jelas.Jika prompt tidak dapat dipahami, pengguna tidak boleh menandatangani sampai tindakan diverifikasi.FAQ
Apa itu penandatanganan transaksi dalam kripto?
Penandatanganan transaksi adalah proses menggunakan kunci privat untuk membuat signature digital yang mengotorisasi transaksi blockchain.Apakah penandatanganan transaksi mengungkapkan kunci privat saya?
Tidak, penandatanganan transaksi yang benar membuat signature tanpa mengungkapkan kunci privat.Apakah seseorang dapat mencuri dana hanya dengan signature?
Ya, jika signature mengotorisasi transfer, persetujuan, permit, order, atau delegasi yang memberi penyerang kewenangan yang dapat digunakan.Apakah penandatanganan pesan sama dengan penandatanganan transaksi?
Tidak, penandatanganan pesan biasanya membuktikan kontrol wallet secara off-chain, sedangkan penandatanganan transaksi mengotorisasi tindakan on-chain, tetapi beberapa pesan tetap dapat membawa izin finansial.Mengapa wallet meminta saya menandatangani?
Wallet meminta signature ketika aplikasi membutuhkan bukti kontrol wallet atau otorisasi untuk transaksi, pesan, persetujuan, order, atau tindakan smart contract.Apa itu blind signing?
Blind signing berarti menyetujui data yang tidak dapat dibaca atau dipahami dengan jelas oleh wallet atau pengguna.Apakah blind signing berbahaya?
Ya, blind signing berbahaya karena pengguna dapat menyetujui transfer, persetujuan, atau pemanggilan kontrak tanpa memahaminya.Apa itu perlindungan replay?
Perlindungan replay mencegah signature valid digunakan kembali di chain atau konteks lain yang bukan tujuan awalnya.Apa itu nonce dalam penandatanganan transaksi?
Nonce adalah angka yang digunakan untuk mengurutkan transaksi dan membantu mencegah eksekusi duplikat dari akun yang sama.Apakah transaksi yang ditandatangani dapat gagal?
Ya, transaksi yang ditandatangani dapat gagal karena biaya tidak cukup, nonce salah, kontrak melakukan revert, tenggat waktu kedaluwarsa, slippage, atau aturan jaringan lainnya.Apakah saya dapat membatalkan transaksi yang ditandatangani?
Anda mungkin dapat mengganti transaksi tertunda di beberapa jaringan, tetapi transaksi yang telah dikonfirmasi biasanya tidak dapat dibatalkan.Apakah saya dapat mencabut signature?
Anda tidak dapat menghapus signature setelah signature ada, tetapi mungkin dapat mencabut izin atau persetujuan yang dibuat signature jika sistem mendukung pencabutan.Apakah penandatanganan hardware wallet lebih aman?
Penandatanganan hardware wallet biasanya lebih aman untuk perlindungan kunci, tetapi pengguna tetap perlu memverifikasi detail transaksi sebelum menyetujui.Apa yang harus diperiksa sebelum menandatangani?
Anda perlu memeriksa situs web, jaringan, penerima, jumlah, token, alamat kontrak, jumlah persetujuan, biaya, tenggat waktu, dan cakupan izin.Apa aturan paling aman untuk penandatanganan transaksi?
Aturan paling aman adalah jangan pernah menandatangani sesuatu yang tidak Anda pahami, terutama persetujuan, permit, delegasi, dan permintaan blind signing.Kesimpulan
Penandatanganan transaksi adalah proses persetujuan kriptografis yang memungkinkan kepemilikan blockchain berfungsi.Proses ini memungkinkan pengguna mengotorisasi transfer dan tindakan smart contract tanpa mengungkapkan kunci privat.Signature yang valid membuktikan bahwa kunci yang benar menyetujui data transaksi tertentu.Berbagai blockchain menyusun transaksi yang ditandatangani dengan cara berbeda, tetapi ide inti yang sama berlaku di Bitcoin, Ethereum, Solana, TRON, dan banyak jaringan lainnya.Penandatanganan transaksi sangat kuat karena menghilangkan kebutuhan akan otoritas pusat berbasis kata sandi.Penandatanganan juga berisiko karena signature valid dapat memindahkan aset, menyetujui pembelanjaan token, melakukan listing NFT, mendelegasikan kontrol akun, atau berinteraksi dengan kontrak yang kompleks.Pengguna perlu memperlakukan setiap prompt penandatanganan sebagai keputusan keamanan yang serius.Pengguna perlu memverifikasi aplikasi, jaringan, kontrak, alamat, jumlah, biaya, dan cakupan izin sebelum menyetujui.Developer perlu merancang alur penandatanganan yang mudah dibaca, terbatas, terlindungi dari replay, dan tahan phishing.Hardware wallet, penandatanganan data bertipe, multisig, smart contract wallet, dan abstraksi akun dapat meningkatkan keamanan jika digunakan dengan benar.Tidak satu pun alat tersebut menghilangkan kebutuhan akan peninjauan yang cermat.Dalam glosarium kripto, Penandatanganan Transaksi harus dipahami sebagai langkah otorisasi berbasis kunci privat yang mengubah niat transaksi menjadi tindakan blockchain yang dapat ditegakkan.Anda Mungkin Juga Menyukai
WhatsMiner M30S++
Domain Web3
Proyek Web3
POPULER
Mata uang kripto yang sedang tren saat ini dan menarik perhatian pasar yang signifikan
Volume TERATAS
Mata uang kripto dengan volume trading tertinggi
Baru Ditambahkan
Mata uang kripto yang baru saja masuk listing dan tersedia untuk trading

