Apa Itu Tanda Tangan dalam Kripto?
Tanda tangan dalam kripto adalah bukti digital bahwa wallet, kunci privat, atau akun yang berwenang telah menyetujui transaksi, pesan, order, voting, atau tindakan smart contract tertentu.Berbeda dari tanda tangan tulisan tangan, tanda tangan kripto dibuat menggunakan kriptografi dan dapat diperiksa oleh software tanpa mengungkap kunci privat.Standar Tanda Tangan Digital NIST resmi menjelaskan bahwa tanda tangan digital digunakan untuk mendeteksi perubahan data tanpa izin dan mengautentikasi identitas penanda tangan.
Dalam sistem blockchain, tanda tangan membuktikan bahwa orang atau sistem yang mengendalikan kunci privat telah mengotorisasi data tertentu.Karena itu, pengguna dapat mengirim kripto tanpa mengetik nama pengguna, kata sandi, atau kode otorisasi seperti di bank ke dalam blockchain.Wallet menandatangani transaksi, lalu jaringan memverifikasi bahwa tanda tangan tersebut cocok dengan akun yang hendak membelanjakan dana atau melakukan suatu tindakan.Tanda tangan tidak membuktikan bahwa penanda tangan memahami transaksi tersebut.Tanda tangan hanya membuktikan bahwa kunci privat, wallet, atau akun berbasis kontrak menghasilkan otorisasi yang valid atas data yang ditandatangani.Sederhananya, tanda tangan kripto adalah persetujuan matematis yang memberi tahu blockchain atau aplikasi bahwa “wallet ini mengotorisasi tindakan spesifik ini”.Mengapa Tanda Tangan Penting dalam Kripto
Tanda tangan penting karena kepemilikan kripto didasarkan pada otorisasi kriptografis, bukan sistem login akun tradisional.Dokumentasi resmi akun Ethereum menjelaskan bahwa akun menggunakan pasangan kunci publik dan kunci privat, dan kunci privat digunakan untuk menandatangani pesan serta transaksi.
Saat pengguna menandatangani transaksi, blockchain dapat memastikan bahwa transaksi tersebut diotorisasi oleh pemilik akun tanpa melihat kunci privatnya.Hal ini menjadikan tanda tangan salah satu fondasi terpenting self-custody.Tanpa tanda tangan, blockchain tidak dapat memastikan siapa yang berhak memindahkan koin, menyetujui token, melakukan voting dalam tata kelola, mengklaim reward, atau berinteraksi dengan smart contract.Tanda tangan juga memungkinkan aplikasi terdesentralisasi karena pengguna dapat mengotorisasi tindakan langsung dari wallet.Smart contract dapat menerima permit, order, persetujuan, atau voting yang ditandatangani, lalu menjalankan logika berdasarkan otorisasi tersebut.Bridge, wallet multisignature, atau sistem account abstraction juga dapat mengandalkan tanda tangan untuk menentukan validitas permintaan.Bagi pengguna, tanda tangan penting karena proses ini sering menjadi langkah terakhir sebelum aset, izin, atau hak nyata berubah.Bagi developer, tanda tangan penting karena satu alur penandatanganan yang lemah dapat membuat seluruh protokol rentan terhadap replay attack, phishing, atau eksekusi tanpa izin.Cara Kerja Tanda Tangan Kripto
Tanda tangan kripto dibuat saat software wallet menggunakan kunci privat untuk menandatangani transaksi atau pesan tertentu.Pertama, wallet menyiapkan data yang perlu disetujui.Selanjutnya, wallet melakukan hashing atau encoding terhadap data tersebut sesuai aturan penandatanganan blockchain.Kunci privat digunakan dalam algoritma tanda tangan digital untuk menghasilkan tanda tangan.Tanda tangan kemudian dilampirkan pada transaksi atau dikirim bersama pesan.Software lain dapat menggunakan tanda tangan, data yang ditandatangani, serta kunci publik atau alamat untuk memeriksa validitas tanda tangan.Jika data berubah, tanda tangan yang sama seharusnya tidak lagi valid untuk data yang telah diubah.Artinya, tanda tangan melindungi otorisasi sekaligus integritas data.Tanda tangan yang valid membuktikan bahwa penanda tangan menyetujui payload tertentu, bukan sekadar niat umum yang tidak spesifik.Karena itu, pengguna perlu memperhatikan dengan saksama apa yang diminta wallet untuk ditandatangani.Kunci Privat
Kunci privat adalah nilai rahasia yang digunakan untuk membuat tanda tangan kripto.Kunci privat tidak boleh dibagikan karena siapa pun yang memiliki akses ke kunci tersebut biasanya dapat menandatangani transaksi dan memindahkan aset dari akun terkait.Kunci privat berbeda dari kata sandi email karena blockchain biasanya tidak dapat mengatur ulang kunci yang hilang.Wallet sering mengubah kendali kunci privat menjadi seed phrase atau frasa pemulihan agar pengguna dapat mencadangkan akun.Panduan keamanan wallet Bitcoin resmi memperingatkan pengguna agar mengamankan wallet karena kendali atas kunci privat sangat penting untuk mengendalikan dana.
Saat kunci privat menandatangani data, kunci tersebut tidak perlu keluar dari wallet atau perangkat penandatangan.Karena itu, hardware wallet dapat membuat tanda tangan sambil menjaga kunci privat tetap terisolasi dari komputer atau ponsel.Jika kunci privat dicuri, penyerang dapat membuat tanda tangan yang valid dan blockchain dapat menganggapnya sah.Oleh sebab itu, keamanan tanda tangan dimulai dari keamanan kunci privat.Kunci Publik
Kunci publik adalah nilai yang memungkinkan pihak lain memverifikasi tanda tangan yang dibuat dengan kunci privat pasangannya.Kunci publik dapat dibagikan karena, berdasarkan asumsi kriptografi normal, kunci tersebut seharusnya tidak mengungkap kunci privat.Banyak alamat blockchain diturunkan dari kunci publik atau hash kunci publik.Tanda tangan dapat membuktikan bahwa penanda tangan mengendalikan kunci privat yang terhubung dengan kunci publik atau alamat tersebut.Namun, tanda tangan tidak membuktikan identitas penanda tangan di dunia nyata, kecuali alamat tersebut telah dikaitkan dengan identitas melalui proses terpisah.Misalnya, tanda tangan valid dapat membuktikan kendali atas alamat wallet, tetapi tidak membuktikan apakah penanda tangan dapat dipercaya.Kunci publik dan tanda tangan bekerja bersama untuk mendukung kepemilikan tanpa otoritas akun terpusat.Inilah salah satu alasan utama aset kripto dapat ditransfer secara peer-to-peer.Kunci publik memverifikasi kendali, sedangkan kunci privat menciptakan kendali.Tanda Tangan Transaksi
Tanda tangan transaksi adalah tanda tangan yang dilampirkan pada transaksi blockchain.Tanda tangan ini membuktikan bahwa penanda tangan yang diwajibkan menyetujui isi transaksi.Di Bitcoin, tanda tangan membantu membuktikan bahwa pihak yang membelanjakan dana berwenang menggunakan output tertentu berdasarkan aturan script.Panduan developer transaksi Bitcoin resmi menyatakan bahwa Bitcoin menggunakan ECDSA dengan kurva secp256k1.
Dalam sistem bergaya Ethereum, tanda tangan transaksi mengotorisasi akun untuk menggunakan nonce, membayar biaya, mengirim nilai, dan memanggil data kontrak.Di Solana, transaksi dapat memerlukan tanda tangan dari beberapa akun, bergantung pada instruksi yang dijalankan.Dokumentasi resmi transaksi Solana menyatakan bahwa setiap penanda tangan memberikan tanda tangan Ed25519 sepanjang 64 byte.
Jika tanda tangan transaksi yang diwajibkan tidak ada atau tidak valid, jaringan seharusnya menolak transaksi.Karena itu, tanda tangan transaksi menjadi unsur utama dalam mencegah transfer tanpa izin.Tanda Tangan Pesan
Tanda tangan pesan adalah tanda tangan atas pesan yang mungkin tidak langsung menjadi transaksi on-chain.Pengguna dapat menandatangani pesan untuk login ke aplikasi terdesentralisasi, membuktikan kepemilikan wallet, menyetujui order off-chain, melakukan voting tanpa membayar gas, atau membuat permit untuk digunakan kemudian.Penandatanganan pesan mungkin terasa tidak berbahaya karena tidak selalu langsung menyiarkan transaksi.Namun, pesan yang ditandatangani tetap dapat mengotorisasi tindakan berpengaruh jika kemudian diterima oleh smart contract atau aplikasi.Contohnya, permit yang ditandatangani dapat mengizinkan alamat lain membelanjakan token berdasarkan aturan tertentu.Order yang ditandatangani dapat memungkinkan perdagangan dieksekusi kemudian.Klaim yang ditandatangani dapat memungkinkan seseorang menerima token dari kontrak distribusi.Pengguna perlu membaca permintaan penandatanganan pesan dengan saksama karena tanda tangan pesan dapat memiliki konsekuensi finansial nyata.Penandatanganan tanpa gas bukan berarti penandatanganan bebas risiko.Tanda Tangan vs. Verifikasi Tanda Tangan
Tanda tangan adalah bukti yang dibuat oleh penanda tangan.Verifikasi tanda tangan adalah proses untuk memeriksa validitas bukti tersebut.Penandatanganan terjadi saat wallet menggunakan kunci privat atau aturan akun untuk menyetujui data.Verifikasi terjadi saat node, wallet, aplikasi, smart contract, atau server memeriksa apakah tanda tangan cocok dengan penanda tangan dan pesan yang diharapkan.Kedua langkah diperlukan agar otorisasi kripto berlangsung dengan aman.Tanda tangan yang tidak pernah diverifikasi tidak berguna.Proses verifikasi seharusnya menolak tindakan yang tidak memiliki tanda tangan yang benar.Pengguna biasanya melihat proses penandatanganan melalui permintaan di wallet, sedangkan verifikasi berlangsung di balik layar.Developer perlu memahami keduanya karena aturan verifikasi yang buruk dapat menerima tanda tangan yang seharusnya ditolak.Tanda Tangan ECDSA
ECDSA adalah singkatan dari Elliptic Curve Digital Signature Algorithm.Sistem Bitcoin dan sistem bergaya Ethereum umumnya menggunakan ECDSA pada kurva secp256k1 untuk tanda tangan akun dan transaksi.Tanda tangan ECDSA biasanya direpresentasikan melalui nilai-nilai tanda tangan yang memungkinkan software memverifikasi bahwa kunci privat menyetujui data yang ditandatangani.Tanda tangan bergaya Ethereum sering menyertakan nilai recovery yang membantu memulihkan kunci publik atau alamat penanda tangan dari tanda tangan tersebut.ECDSA telah banyak digunakan dalam kripto, tetapi harus diimplementasikan dengan cermat.Randomness yang lemah atau penggunaan ulang nonce saat menandatangani dapat mengungkap kunci privat.Validasi tanda tangan yang buruk dapat menimbulkan masalah malleability atau replay.Developer sebaiknya menggunakan library kriptografi yang matang, bukan membuat kode ECDSA sendiri.Pengguna perlu memahami bahwa tanda tangan ECDSA yang valid merupakan bukti kuat kendali atas kunci, tetapi bukan bukti bahwa tindakan yang ditandatangani aman.Tanda Tangan Schnorr
Tanda tangan Schnorr adalah jenis tanda tangan digital lain yang digunakan dalam sejumlah konteks terkait Bitcoin dan sistem kriptografi lainnya.Spesifikasi tanda tangan Schnorr BIP-340 menetapkan skema tanda tangan Schnorr untuk kurva secp256k1.
Tanda tangan Schnorr dapat mendukung manfaat seperti agregasi yang lebih sederhana dan desain tanda tangan yang lebih rapi dalam sistem tertentu.Di Bitcoin, tanda tangan Schnorr terkait dengan peningkatan pada era Taproot.Agregasi tanda tangan dan desain terkait dapat membantu mengurangi ukuran data dan meningkatkan privasi dalam sejumlah penggunaan lanjutan.Dalam penggunaan wallet sehari-hari, pengguna biasanya tidak memilih ECDSA atau Schnorr secara manual.Wallet, jenis script, dan aturan jaringan menentukan metode tanda tangan yang digunakan.Meski begitu, developer dan pengguna tingkat lanjut perlu memahami bahwa skema tanda tangan yang berbeda memiliki aturan dan asumsi keamanan yang berbeda.Format tanda tangan merupakan bagian dari arsitektur keamanan blockchain.Tanda Tangan Ed25519
Ed25519 adalah skema tanda tangan digital yang digunakan sejumlah sistem blockchain, termasuk Solana untuk tanda tangan transaksi biasa.Tanda tangan Ed25519 ringkas dan efisien sehingga berguna untuk lingkungan blockchain berthroughput tinggi.Transaksi Solana memerlukan tanda tangan dari akun yang ditandai sebagai penanda tangan dalam pesan transaksi.Tanda tangan tersebut membuktikan bahwa otoritas yang diwajibkan menyetujui instruksi.Bagi developer Solana, menganggap suatu akun telah diteruskan ke program dengan benar saja tidak cukup.Program juga harus memeriksa apakah akun yang benar menandatangani transaksi ketika otoritas penanda tangan diperlukan.Pemeriksaan penanda tangan yang tidak dilakukan dapat menjadi kerentanan serius pada smart contract atau program.Pengguna perlu mengingat bahwa tanda tangan Ed25519 tetap merupakan peristiwa otorisasi.Menyetujui transaksi yang salah tetap dapat memindahkan aset atau memberikan izin.Payload Tanda Tangan
Payload tanda tangan adalah data persis yang ditandatangani.Untuk transaksi, payload dapat mencakup informasi pengirim dan penerima, nilai, biaya, nonce, chain ID, instruksi, data kontrak, atau kolom lain, bergantung pada jaringan.Untuk pesan, payload dapat mencakup tantangan login, detail order, jumlah persetujuan, tenggat waktu, nonce, atau voting tata kelola.Kunci privat yang sama dapat menandatangani banyak payload berbeda, sehingga maknanya ditentukan oleh payload yang spesifik.Karena itu, pengguna tidak boleh menandatangani data yang tidak jelas atau tidak terbaca jika tidak memahami otorisasi yang diberikannya.Tanda tangan atas satu payload seharusnya tidak valid untuk payload yang berbeda.Standar penandatanganan yang baik membuat payload jelas dan spesifik sesuai konteks.Desain penandatanganan yang buruk dapat membuat tanda tangan bisa digunakan kembali, membingungkan, atau berbahaya.Dalam kripto, payload adalah instruksi dan tanda tangan adalah persetujuannya.Hash Tanda Tangan
Hash tanda tangan adalah hash dari data yang ditandatangani.Hashing mengubah data menjadi digest berukuran tetap sebelum diproses oleh algoritma tanda tangan.Dengan demikian, proses penandatanganan menjadi efisien dan perubahan data sekecil apa pun akan menghasilkan keluaran tanda tangan yang berbeda.Setiap blockchain dan standar dapat menggunakan aturan hashing serta encoding yang berbeda.Tanda tangan transaksi Bitcoin, tanda tangan typed-data Ethereum, dan tanda tangan transaksi Solana tidak menggunakan format yang sama.Developer harus menggunakan aturan hashing yang tepat untuk jaringan dan standar penandatanganan yang dituju.Jika hash yang salah ditandatangani atau diverifikasi, tanda tangan dapat gagal atau menimbulkan ketidakcocokan yang berbahaya.Pengguna biasanya tidak melihat hash secara langsung, tetapi mengandalkan wallet dan aplikasi untuk membuatnya dengan benar.Tanda tangan hanya bermakna jika data yang benar telah di-hash dan ditandatangani.Data Bertanda Tangan Ethereum
Ethereum mendukung beberapa format penandatanganan untuk pesan dan typed data.Standar data bertanda tangan ERC-191 resmi menetapkan format standar untuk menangani data bertanda tangan di kontrak Ethereum.
ERC-191 membantu membedakan pesan bertanda tangan dari transaksi mentah dan mendukung penanganan data bertanda tangan yang lebih aman.Standar typed structured data EIP-712 resmi menetapkan metode untuk melakukan hashing dan menandatangani data terstruktur bertipe.
EIP-712 penting karena dapat membuat permintaan penandatanganan lebih mudah dibaca dan lebih spesifik sesuai konteks.Tanda tangan typed-data dapat mencakup informasi domain seperti aplikasi, chain, kontrak, versi, dan detail tindakan.Jika diterapkan dengan benar, hal ini membantu mengurangi risiko replay di berbagai aplikasi atau jaringan.Pengguna tetap perlu meninjau tanda tangan typed-data dengan cermat karena permintaan yang mudah dibaca pun dapat mengotorisasi tindakan berisiko.Standar meningkatkan kejelasan, tetapi tidak menggantikan kewaspadaan.Tanda Tangan Smart Contract
Wallet smart contract dapat menggunakan logika tanda tangan yang berbeda dari akun berkunci privat sederhana.Standar validasi tanda tangan ERC-1271 resmi menetapkan metode bagi kontrak untuk memastikan validitas tanda tangan atas hash tertentu.
Hal ini penting karena wallet smart contract dapat mewajibkan beberapa persetujuan, batas pengeluaran, session key, aturan pemulihan, atau otorisasi berbasis tata kelola.Externally owned account biasa dapat membuat tanda tangan langsung dengan kunci privat.Wallet smart contract dapat memvalidasi otorisasi melalui logika kontrak.Aplikasi yang hanya mendukung tanda tangan akun sederhana mungkin tidak berfungsi dengan wallet smart contract.Seiring berkembangnya account abstraction, sistem tanda tangan menjadi semakin fleksibel.Roadmap account abstraction Ethereum resmi menjelaskan bahwa account abstraction dapat membuat wallet lebih mudah diprogram.
Dalam sistem ini, tanda tangan dapat berarti persetujuan dari sebuah kunci, grup, rangkaian aturan, atau kebijakan akun smart contract.Multisignature
Wallet multisignature memerlukan lebih dari satu tanda tangan atau persetujuan sebelum suatu tindakan dapat dijalankan.Misalnya, wallet dapat mewajibkan dua dari tiga penanda tangan atau tiga dari lima penanda tangan.Sistem multisignature mengurangi risiko satu kunci karena satu kunci yang dicuri mungkin tidak cukup untuk memindahkan dana.Sistem ini banyak digunakan untuk treasury, peran admin protokol, proses kustodian, dan dana yang dikendalikan tim.Pengaturan multisignature tetap bergantung pada peninjauan transaksi yang jelas dan independensi para penanda tangan.Jika beberapa penanda tangan menyetujui transaksi berbahaya yang sama, transaksi tersebut tetap dapat dijalankan.Karena itu, keamanan multisignature mencakup aspek teknis dan operasional.Praktik multisignature yang baik mencakup perangkat terpisah, orang yang berbeda, kebijakan yang jelas, simulasi transaksi, dan verifikasi alamat yang cermat.Beberapa tanda tangan dapat meningkatkan keamanan, tetapi tidak menghilangkan kebutuhan akan pertimbangan manusia.Tanda Tangan Threshold
Tanda tangan threshold adalah sistem kriptografi yang mengharuskan sejumlah peserta bekerja sama untuk menghasilkan satu tanda tangan valid.Berbeda dari multisignature sederhana yang dapat menampilkan beberapa tanda tangan terpisah secara on-chain, tanda tangan threshold terkadang dapat terlihat seperti satu tanda tangan biasa.Bergantung pada blockchain dan implementasinya, metode ini dapat meningkatkan privasi, mengurangi ukuran data, atau mendukung desain kustodian institusional.Penandatanganan threshold dapat mengurangi risiko satu kunci karena tidak ada satu peserta pun yang perlu menyimpan seluruh rahasia penandatanganan sendirian.Namun, metode ini juga dapat menambah kompleksitas operasional karena para peserta harus berkoordinasi dengan benar.Sistem threshold dapat gagal jika terlalu banyak peserta offline, disusupi, atau tidak tersedia.Pengguna perlu memahami model kustodian di balik wallet atau layanan yang menggunakan penandatanganan threshold.Intinya, otoritas penandatanganan dapat didistribusikan tanpa memberi satu perangkat atau orang kendali penuh.Tanda tangan threshold menunjukkan bahwa tanda tangan kripto dapat mendukung desain keamanan tingkat lanjut, bukan hanya satu kunci dan satu wallet.Tanda Tangan dan Persetujuan Token
Tanda tangan dapat mengotorisasi persetujuan token jika token atau aplikasi mendukung alur persetujuan bertanda tangan.Persetujuan token biasa sering dikirim sebagai transaksi on-chain.Persetujuan bertanda tangan terkadang dapat dibuat secara off-chain dan dikirim kemudian oleh pihak atau kontrak lain.Hal ini dapat menghemat waktu dan biaya, tetapi juga dapat membingungkan pengguna.Pengguna mungkin mengira hanya menandatangani pesan, padahal sebenarnya memberikan izin untuk membelanjakan token.Jika relevan, persetujuan bertanda tangan harus mencantumkan token, pemilik, pihak yang diberi izin, jumlah, nonce, tenggat waktu, chain, dan kontrak verifikasi.Jika kolom-kolom tersebut tidak ada atau tidak jelas, pengguna menghadapi risiko phishing dan replay yang lebih besar.Pengguna perlu memperlakukan tanda tangan persetujuan dengan kewaspadaan yang sama seperti transaksi persetujuan.Tanda tangan yang memberikan hak untuk membelanjakan aset dapat sama berbahayanya dengan transaksi langsung.Tanda Tangan dan Tata Kelola
Sistem tata kelola dapat menggunakan tanda tangan untuk mengumpulkan suara, mendelegasikan kekuatan voting, atau mengotorisasi tindakan proposal.Voting off-chain sering mengandalkan pengguna yang menandatangani pesan terstruktur untuk menyatakan pilihan mereka.Hal ini dapat mengurangi biaya transaksi dan memudahkan partisipasi.Namun, tanda tangan tata kelola dapat memengaruhi keputusan protokol yang nyata.Voting bertanda tangan dapat memengaruhi pengeluaran treasury, upgrade, perubahan parameter, atau keputusan komunitas.Pengguna perlu membaca permintaan penandatanganan tata kelola dengan cermat sebelum menyetujuinya.Developer sebaiknya mencantumkan ID proposal, informasi chain, pilihan voting, tenggat waktu, dan data domain tata kelola dalam payload yang ditandatangani.Sistem penandatanganan tata kelola yang baik mengurangi ambiguitas dan risiko replay.Tanda tangan tata kelola yang valid membuktikan otorisasi wallet, bukan persetujuan yang diberikan dengan pemahaman penuh.Tanda Tangan dan Bridge
Banyak sistem bridge menggunakan tanda tangan untuk mengotorisasi pesan lintas blockchain, penarikan, minting, burning, atau pelepasan aset yang dikunci.Bridge dapat mengandalkan tanda tangan dari validator, relayer, komite, penanda tangan threshold, atau sistem verifikasi lain.Jika tanda tangan bridge dipalsukan, digunakan ulang, atau diverifikasi secara keliru, aset dapat dilepas atau dicetak secara tidak semestinya.Payload tanda tangan bridge sebaiknya mencakup chain sumber dan tujuan, ID pesan, token, jumlah, penerima, nonce, serta konteks domain.Bridge berisiko tinggi karena menghubungkan sistem berbeda dengan asumsi keamanan yang berbeda.Kekuatan tanda tangan bridge yang valid bergantung pada kelompok penanda tangan, aturan verifikasi, model kustodian, dan keamanan smart contract bridge tersebut.Pengguna tidak boleh berasumsi bahwa bridge aman hanya karena menggunakan tanda tangan.Tanda tangan diperlukan dalam banyak desain bridge, tetapi bukan jaminan keamanan bridge secara menyeluruh.Tanda tangan lintas chain memerlukan desain yang cermat karena kesalahan dapat memengaruhi aset di lebih dari satu jaringan.Risiko Replay Tanda Tangan
Risiko replay terjadi ketika tanda tangan valid digunakan kembali dalam konteks yang seharusnya tidak menerimanya.Tanda tangan untuk satu chain dapat digunakan kembali di chain lain jika data yang ditandatangani tidak menyertakan chain ID.Tanda tangan untuk satu kontrak dapat digunakan kembali pada kontrak lain jika data yang ditandatangani tidak mencantumkan alamat kontrak verifikasi.Tanda tangan untuk satu order dapat digunakan berulang kali jika data yang ditandatangani tidak mencantumkan nonce atau nonce tidak ditandai sebagai telah digunakan.Risiko replay adalah salah satu bahaya terpenting dalam desain tanda tangan.Developer mengurangi risiko replay dengan nonce, tenggat waktu, pemisah domain, chain ID, alamat kontrak, jenis tindakan, dan pelacakan tanda tangan yang telah digunakan.Pengguna dapat mengurangi risiko replay dengan menghindari tanda tangan yang tidak jelas dan menggunakan antarmuka tepercaya yang menampilkan detail penandatanganan.Tanda tangan dapat valid secara matematis tetapi tetap berbahaya jika diterima dalam konteks yang salah.Tanda tangan yang baik bersifat spesifik dan terbatas, serta sulit digunakan kembali di luar tujuan awalnya.Malleability Tanda Tangan
Malleability tanda tangan berarti, dalam kondisi tertentu, lebih dari satu nilai tanda tangan dapat valid untuk pesan dan penanda tangan yang sama.Hal ini dapat menimbulkan masalah ketika sistem mengasumsikan bahwa setiap tanda tangan valid hanya memiliki satu bentuk.Dalam sistem berbasis ECDSA, developer sering menggunakan aturan tanda tangan kanonis untuk mengurangi risiko malleability.Malleability dapat memengaruhi pelacakan replay, ID transaksi, pencocokan order, dan asumsi keunikan tanda tangan.Kebanyakan pengguna tidak pernah melihat masalah ini secara langsung karena wallet dan library menanganinya.Namun, developer perlu memahaminya saat membangun smart contract, sistem order, atau logika verifikasi.Menggunakan library yang matang lebih aman daripada menerapkan aturan tanda tangan secara manual.Malleability tanda tangan mengingatkan bahwa detail kriptografi kecil dapat menimbulkan masalah protokol yang besar.Tanda tangan harus valid secara matematis sekaligus sesuai dengan ketentuan protokol.Tanda Tangan dan Phishing
Phishing merupakan salah satu risiko terbesar bagi pengguna terkait tanda tangan.Situs phishing dapat mengelabui pengguna agar menandatangani transaksi, permit, pesan, persetujuan, atau order yang menguntungkan penyerang.Tanda tangan tersebut dapat sepenuhnya valid meskipun pengguna telah tertipu.Peringatan investor SEC tentang penipuan aset kripto resmi memperingatkan bahwa pelaku penipuan memanfaatkan popularitas kripto untuk menjerat korban.
Phishing kripto sering memanfaatkan rasa mendesak, reward palsu, dukungan palsu, airdrop palsu, halaman pemulihan palsu, dan desain situs tiruan.Pengguna tidak boleh menganggap tanda tangan aman hanya karena situs terlihat profesional.Pengguna perlu memverifikasi domain, alamat kontrak, permintaan wallet, alamat pihak yang diberi izin, jumlah token, dan tujuan pesan.Jika wallet menampilkan data heksadesimal mentah atau teks yang tidak jelas, pengguna harus lebih waspada.Phishing tanda tangan berhasil karena blockchain menerima tanda tangan valid, bukan niat baik.Tanda Tangan dan Hardware Wallet
Hardware wallet adalah perangkat yang membuat tanda tangan sambil menjaga kunci privat tetap terisolasi dari komputer atau ponsel yang terhubung.Hal ini dapat mengurangi risiko malware mencuri kunci privat.Namun, pengguna tetap harus menyetujui tindakan yang akan ditandatangani melalui hardware wallet.Jika pengguna menyetujui transaksi berbahaya, hardware wallet dapat menghasilkan tanda tangan valid untuk tindakan tersebut.Karena itu, layar hardware wallet, pratinjau transaksi, dan detail penandatanganan yang jelas sangat penting.Blind signing berisiko karena pengguna mungkin menyetujui data yang tidak dapat dibaca sepenuhnya di perangkat.Hardware wallet meningkatkan perlindungan kunci, tetapi tidak menjamin bahwa pengguna memahami transaksi.Sebisa mungkin, pengguna perlu memverifikasi alamat penerima, persetujuan token, pemanggilan kontrak, dan jumlah melalui perangkat.Tanda tangan yang paling aman dibuat menggunakan kunci terlindungi setelah pengguna memahami permintaannya.Tanda Tangan dan Account Abstraction
Account abstraction mengubah cara tanda tangan dapat digunakan dalam sistem wallet.Alih-alih setiap akun mengandalkan satu format tanda tangan kunci privat standar, smart account dapat menentukan aturan otorisasi khusus.Smart account dapat menggunakan Passkey, session key, aturan multisignature, batas pengeluaran, pemulihan sosial, batas waktu, atau ketentuan terprogram lainnya.Jika diterapkan dengan baik, hal ini dapat meningkatkan pengalaman dan keamanan pengguna.Namun, proses verifikasi juga dapat menjadi lebih kompleks karena aplikasi harus memahami aturan tanda tangan berbasis kontrak.ERC-1271 dan pendekatan serupa membantu aplikasi memverifikasi tanda tangan dari wallet smart contract.Seiring makin lazimnya smart account, makna tanda tangan dapat berkembang dari satu kunci yang menyetujui satu tindakan menjadi kebijakan wallet yang menyetujui tindakan.Pengguna tetap harus menganggap serius setiap operasi yang disetujui karena wallet terprogram tetap dapat mengotorisasi perpindahan aset nyata.Account abstraction membuat tanda tangan lebih fleksibel, bukan otomatis bebas risiko.Tanda Tangan dan Keamanan Smart Contract
Smart contract yang menerima tanda tangan harus ditulis dengan cermat.Jika relevan, kontrak harus memeriksa penanda tangan yang diharapkan, tindakan yang ditandatangani, jumlah, penerima, nonce, tenggat waktu, chain ID, dan kontrak verifikasi.Jika salah satu kolom ini tidak ada, tanda tangan dapat digunakan kembali atau disalahartikan.Kontrak harus menolak tanda tangan yang kedaluwarsa dan menandai nonce yang telah digunakan dengan benar.Kontrak juga harus mendukung wallet smart contract jika aplikasi memang mengharapkan penggunaannya.Bug pada verifikasi tanda tangan dapat memungkinkan penyerang mengklaim reward, mengeksekusi order, menyetujui pengeluaran, melakukan voting, atau menarik dana tanpa otorisasi yang semestinya.Alur berbasis tanda tangan harus diuji dengan pengguna biasa dan berbahaya, percobaan replay, tenggat waktu kedaluwarsa, chain yang salah, kontrak yang salah, serta penanda tangan yang salah.Auditor harus meninjau logika tanda tangan sebagai area berisiko tinggi.Dalam keamanan smart contract, tanda tangan sering kali merupakan kontrol akses dalam bentuk kriptografi.Kesalahan Umum dalam Penggunaan Tanda Tangan
Salah satu kesalahan umum adalah menganggap penandatanganan pesan selalu tidak berbahaya.Kesalahan lainnya adalah menyetujui data mentah tanpa memahami maknanya.Kesalahan ketiga adalah menyamakan koneksi wallet dengan penandatanganan wallet.Kesalahan keempat adalah memberikan izin pengeluaran token melalui permit bertanda tangan tanpa memeriksa pihak yang diberi izin.Kesalahan kelima adalah mempercayai permintaan tanda tangan karena situs menggunakan logo yang dikenal.Kesalahan keenam adalah membuat pesan bertanda tangan tanpa nonce atau tenggat waktu.Kesalahan ketujuh adalah tidak menyertakan chain ID dan alamat kontrak dalam payload bertanda tangan.Kesalahan kedelapan adalah tidak mendukung tanda tangan wallet smart contract.Kesalahan kesembilan adalah menggunakan kode tanda tangan khusus alih-alih library yang telah diaudit.Kesalahan kesepuluh adalah percaya bahwa tanda tangan valid membuktikan penanda tangan menginginkan hasil tersebut atau memahami semua risikonya.Manfaat Tanda Tangan
Manfaat pertama tanda tangan adalah otorisasi transaksi yang aman tanpa mengungkap kunci privat.Manfaat kedua adalah bukti kepemilikan wallet.Manfaat ketiga adalah perlindungan terhadap perubahan tanpa izin pada data yang ditandatangani.Manfaat keempat adalah dukungan untuk self-custody.Manfaat kelima adalah kompatibilitas dengan smart contract, DeFi, NFT, tata kelola, staking, dan login wallet.Manfaat keenam adalah otorisasi tanpa gas untuk tindakan off-chain atau tertunda tertentu.Manfaat ketujuh adalah dukungan terhadap desain keamanan multisignature dan threshold.Manfaat kedelapan adalah autentikasi terdesentralisasi yang lebih baik tanpa database kata sandi tradisional.Manfaat kesembilan adalah koordinasi lintas sistem ketika tanda tangan dirancang dengan perlindungan replay yang kuat.Manfaat kesepuluh adalah tanda tangan membuat kepemilikan digital dapat ditegakkan melalui kriptografi.Risiko dan Keterbatasan Tanda Tangan
Risiko pertama adalah kunci privat yang dicuri dapat digunakan untuk membuat tanda tangan valid.Risiko kedua adalah pengguna yang tertipu dapat menandatangani transaksi atau pesan berbahaya.Risiko ketiga adalah replay jika data yang ditandatangani tidak memuat konteks yang cukup.Risiko keempat adalah permintaan wallet yang tidak terbaca.Risiko kelima adalah malleability tanda tangan atau logika verifikasi yang buruk.Risiko keenam adalah software wallet yang lemah atau perangkat penandatanganan yang tidak aman.Risiko ketujuh adalah phishing melalui situs web palsu dan akun dukungan palsu.Risiko kedelapan adalah kebingungan lintas chain jika tanda tangan tidak terikat pada domain tertentu.Risiko kesembilan adalah bug smart contract dalam penerimaan tanda tangan.Risiko kesepuluh adalah rasa aman yang keliru karena tanda tangan valid hanya membuktikan otorisasi, bukan keamanan, keadilan, atau profitabilitas.Praktik Terbaik bagi Pengguna
Baca setiap permintaan wallet sebelum menandatangani.Verifikasi domain situs web sebelum menyetujui permintaan tanda tangan apa pun.Periksa apakah tanda tangan digunakan untuk login, persetujuan, transfer, permit, order, voting, atau tindakan finansial lainnya.Berhati-hatilah dengan pesan heksadesimal mentah dan permintaan yang tidak jelas.Tinjau alamat pihak yang diberi izin dan jumlah persetujuan token dengan saksama.Hindari menandatangani permintaan mendesak dari tautan tak dikenal, airdrop palsu, akun dukungan palsu, atau pesan pribadi.Untuk saldo besar, gunakan hardware wallet atau pengaturan kustodian yang lebih kuat jika sesuai.Jika memungkinkan, pisahkan wallet penyimpanan aset bernilai tinggi dari wallet untuk interaksi sehari-hari.Cabut persetujuan yang tidak diperlukan jika sesuai dengan aktivitas wallet Anda.Ingat, tanda tangan adalah otorisasi, bukan sekadar klik biasa.Praktik Terbaik bagi Developer
Sebisa mungkin, gunakan standar penandatanganan yang sudah mapan alih-alih format buatan sendiri.Gunakan typed data EIP-712 untuk persetujuan bergaya Ethereum yang kompleks jika penandatanganan terstruktur yang mudah dibaca sesuai kebutuhan.Sertakan chain ID, kontrak verifikasi, nonce, tenggat waktu, penanda tangan, penerima, jumlah, dan jenis tindakan jika relevan.Tolak tanda tangan yang kedaluwarsa dan nonce yang sudah digunakan.Gunakan library kriptografi tepercaya dan hindari menulis logika pemulihan tanda tangan sendiri tanpa keahlian yang memadai.Dukung ERC-1271 jika pengguna mungkin berinteraksi melalui wallet smart contract.Uji tanda tangan di berbagai wallet, jaringan, browser, library, dan kasus khusus.Buat permintaan pengguna cukup jelas agar dapat dipahami oleh orang yang bukan ahli.Audit jalur otorisasi berbasis tanda tangan dengan cermat.Perlakukan tanda tangan sebagai bagian dari kontrol akses, bukan sekadar fitur antarmuka pengguna.FAQ
Apa arti tanda tangan dalam kripto?
Tanda tangan dalam kripto adalah bukti digital bahwa wallet, kunci privat, atau akun berwenang menyetujui data tertentu, seperti transaksi atau pesan.Apakah tanda tangan kripto sama dengan tanda tangan tulisan tangan?
Tidak. Tanda tangan kripto adalah otorisasi matematis yang dibuat dengan kunci privat, sedangkan tanda tangan tulisan tangan adalah tanda fisik yang terkait dengan identitas hukum atau pribadi.Apakah penandatanganan mengungkap kunci privat saya?
Tidak. Tanda tangan digital yang dibuat dengan benar membuktikan kendali atas kunci privat tanpa mengungkap kunci tersebut.Apakah tanda tangan dapat memindahkan kripto saya?
Ya. Tanda tangan transaksi dapat memindahkan kripto, dan sejumlah tanda tangan pesan dapat mengotorisasi tindakan di kemudian hari, seperti pengeluaran token atau eksekusi order.Apa perbedaan tanda tangan transaksi dan tanda tangan pesan?
Tanda tangan transaksi mengotorisasi transaksi on-chain, sedangkan tanda tangan pesan menyetujui data yang dapat digunakan untuk login, permit, voting, order, atau tindakan off-chain maupun tertunda lainnya.Algoritma tanda tangan apa yang digunakan Bitcoin?
Bitcoin secara historis menggunakan ECDSA dengan kurva secp256k1 dan juga mendukung tanda tangan Schnorr dalam konteks terkait Taproot.Algoritma tanda tangan apa yang digunakan Solana?
Penandatanganan transaksi Solana menggunakan tanda tangan Ed25519 dari penanda tangan yang diwajibkan.Apakah tanda tangan yang valid tetap bisa berbahaya?
Ya. Tanda tangan valid tetap bisa berbahaya jika mengotorisasi persetujuan, transfer, permit, order, pesan bridge, atau tindakan smart contract yang berbahaya.Apa itu replay tanda tangan?
Replay tanda tangan terjadi ketika tanda tangan valid digunakan kembali pada tempat, waktu, chain, kontrak, atau tindakan yang seharusnya tidak menerimanya.Bagaimana cara tetap aman saat menandatangani?
Anda dapat meningkatkan keamanan dengan membaca permintaan wallet, memverifikasi domain, memeriksa alamat pihak yang diberi izin, menghindari pesan yang tidak jelas, menggunakan wallet tepercaya, dan menolak tanda tangan yang tidak Anda pahami.Kesimpulan
Tanda tangan dalam kripto adalah otorisasi digital yang dibuat oleh kunci privat, wallet, atau aturan smart account untuk menyetujui transaksi atau pesan tertentu.Tanda tangan merupakan fondasi kepemilikan blockchain karena memungkinkan jaringan memverifikasi pihak yang mengotorisasi tindakan tanpa mengungkap kunci privat.Tanda tangan digunakan dalam transaksi, login melalui pesan, permit token, order off-chain, voting tata kelola, pesan bridge, wallet multisignature, wallet smart contract, dan sistem account abstraction.Blockchain yang berbeda menggunakan skema tanda tangan yang berbeda, termasuk ECDSA, Schnorr, dan Ed25519, bergantung pada jaringan dan konteksnya.Tanda tangan membuktikan otorisasi berbasis kunci, tetapi tidak membuktikan bahwa penanda tangan memahami tindakan tersebut atau bahwa kontraknya aman.Pengguna perlu memperlakukan setiap permintaan tanda tangan sebagai persetujuan serius karena data yang ditandatangani dapat memindahkan aset, memberikan izin, atau mengotorisasi tindakan di masa mendatang.Developer perlu merancang alur tanda tangan dengan payload yang jelas, pemisahan domain, perlindungan replay, tenggat waktu, nonce, library yang matang, dan permintaan yang mudah dibaca pengguna.Bagi pemula, tanda tangan kripto paling mudah dipahami sebagai persetujuan kriptografis dari wallet.Bagi pengguna tingkat lanjut, tanda tangan adalah mekanisme autentikasi dan integritas yang menghubungkan kunci privat, kunci publik, hash, standar penandatanganan, smart contract, perlindungan replay, dan keamanan kustodian.Dalam konteks glosarium kripto, Signature berarti bukti digital yang mengotorisasi tindakan blockchain dan memungkinkan self-custody, transaksi, interaksi smart contract, serta identitas terdesentralisasi.Intinya, tanda tangan memungkinkan kepemilikan kripto berfungsi, tetapi keamanan proses penandatanganan tetap bergantung pada kunci privat yang aman, permintaan wallet yang jelas, antarmuka tepercaya, standar yang kuat, dan peninjauan cermat oleh pengguna sebelum menyetujui.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

