Apa itu Tanda Tangan Digital dan Bagaimana Cara Kerjanya?

Menengah1/19/2024, 6:23:26 PM
Blockchain menggunakan tanda tangan digital sebagai bagian integral dari proses verifikasi terdesentralisasi mereka, menciptakan cara yang aman untuk mengautentikasi proses tanpa mengungkap identitas pengguna.

Pengantar

Tanda Tangan Digital adalah alat kriptografi yang digunakan dalam bidang seperti keamanan cyber, e-commerce, dan distribusi perangkat lunak. Mereka menyediakan metode untuk memverifikasi asal dan integritas pesan atau dokumen digital.

Namun, teknologi Blockchain mempopulerkan penggunaan tanda tangan digital sebagai bagian integral dari proses verifikasi desentralisasi dan transaksi. Artikel ini secara cermat meneliti bagaimana tanda tangan digital bekerja, berbagai algoritma yang digunakan oleh blockchain, dan aplikasi mereka di ruang Web3.

Memahami Tanda Tangan Digital

Sumber: CoinGeek

Tanda Tangan Digital adalah teknik kriptografi yang digunakan untuk memverifikasi keaslian dan integritas pesan digital, dokumen, atau transaksi. Tanda tangan digital dianggap lebih aman dibandingkan tanda tangan elektronik.

Secara tradisional, tanda tangan memastikan kesepakatan secara hukum mengikat, memvalidasi identitas pihak yang terlibat, dan memiliki penerimaan yang pasti terhadap syarat-syarat kontrak. Tanda tangan digital melangkah lebih jauh untuk mengatasi masalah perubahan dan pemalsuan, yang membuatnya menjadi bentuk tanda tangan yang lebih aman.

Fitur Tanda Tangan Digital

Fitur utama dari tanda tangan digital adalah:

  • Autentikasi: Tanda Tangan Digital membuktikan bahwa pesan telah dikirim oleh pengirim yang diklaim dengan memverifikasi pesan dengan kunci publik pengirim.
  • Non-repudiation: Tanda Tangan Digital menggunakan kunci publik pengirim untuk mendekripsi tanda tangan, jika berhasil, pengirim tidak dapat menyangkal mengirim pesan.
  • Integritas: Kemampuan untuk memverifikasi nilai hash/digest membuktikan bahwa data tidak diubah saat transit.

Kriptografi Asimetris

Sumber: WikiBooks

Kriptografi asimetris adalah metode untuk mengenkripsi dan mendekripsi data dengan dua kunci yang berbeda, sehingga salah satu kunci (yaitu kunci publik) secara terbuka dibagikan kepada siapa pun. Kunci lainnya, yang dikenal sebagai kunci privat, adalah kunci rahasia dan aman yang hanya diketahui oleh penanda. Data yang dienkripsi dengan satu kunci hanya dapat didekripsi dengan kunci yang lain.

Dalam kriptografi, kunci seringkali berupa rangkaian angka dan huruf, digunakan untuk mengacak data sehingga terlihat acak. Namun, siapa pun yang memiliki kunci yang tepat untuk mendekripsi data dapat mengembalikannya ke bentuk aslinya.

Sebagai contoh, misalkan kita mengambil sebuah gambar dan mengenkripsi dengan sebuah kunci; katakanlah kunci tersebut adalah 28j932d8kd8. Dienkripsi dengan kunci ini, gambar kita terlihat sebagai “X5CSycg14=xJ”. Namun, dengan mendekripsi menggunakan kunci yang benar, kita dapat mendapatkan kembali gambar kita.

Kunci Istilah yang Perlu Anda Pahami

Hashing

Hashing adalah proses mengonversi data (teks, file), input berukuran variabel menjadi output berukuran tetap berupa huruf dan angka, dengan menggunakan fungsi hash. Ini adalah proses satu arah, di mana nilai hash tidak dapat dikembalikan ke input asli, tetapi potongan input yang sama akan selalu menghasilkan nilai hash yang sama.

Sumber: CyberHoot

Pada gambar di atas, sebuah potongan teks (teka-teki) melewati fungsi hash (SHA-256) dan dikonversi menjadi hash (sejumlah angka dan huruf dengan panjang tetap).

Apa itu Fungsi Hash?

Sebuah algoritma yang memproses data yang akan ditandatangani, menghasilkan nilai hash berukuran tetap. Fungsi hash memastikan bahwa tanda tangan tetap berukuran tetap, terlepas dari ukuran data asli.

Nilai Hash

Output akhir dari fungsi hash adalah nilai hash, juga dikenal sebagai digest, yang unik untuk setiap input. Ukuran nilai hash berkisar dari 32-bit hingga 256-bit, tergantung pada fungsi hash yang digunakan. Nilai hash hanya diperlukan untuk penggunaan tunggal dalam proses seperti otentikasi data atau pembuatan tanda tangan digital. Oleh karena itu, tanda tangan digital adalah unik per transaksi.

Bagaimana Tanda Tangan Digital Bekerja?

Untuk melakukan tanda tangan digital, Anda memerlukan hal berikut:

  1. Pasangan Kunci: Pasangan kunci terdiri dari pasangan kunci publik/privat. Kunci privat digunakan untuk membuat tanda tangan, dan kunci publik yang sesuai digunakan untuk memverifikasi tanda tangan.

  2. Data yang Akan Ditalandatangani: Konten atau pesan yang ingin Anda tandatangani. Ini bisa berupa dokumen, transaksi, atau data digital apa pun.

  3. Fungsi Hash: Fungsi hash diterapkan pada data untuk membuat nilai hash berukuran tetap. Nilai hash ini kemudian dienkripsi dengan kunci pribadi untuk menghasilkan tanda tangan digital.

  4. Algoritma Tanda Tangan Digital: Sebuah algoritma yang menggabungkan kunci privat dengan data yang akan ditandatangani, umumnya melibatkan fungsi hash. Algoritma ini menghasilkan tanda tangan digital.

  5. Mekanisme Verifikasi: Siapapun yang ingin memverifikasi tanda tangan digital memerlukan akses ke kunci publik dan algoritma tanda tangan digital yang sama. Kunci publik digunakan untuk mendekripsi tanda tangan digital dan mengungkap nilai hash, yang kemudian dibandingkan dengan nilai hash yang dihitung dari data asli.

Bagaimana Mereka Menggabungkan Untuk Membuatnya Bekerja?

Sumber: CamCert — Pengirim menandatangani (mengenkripsi) nilai hash dengan kunci pribadi mereka, dan penerima memverifikasi keaslian pesan dengan membandingkan nilai hash

Langkah 1: Buat nilai hash/digest dengan melewati data asli melalui fungsi hash

Langkah 2: Tanda tangani hash dengan kunci pribadi pengirim untuk membuat enkripsi.

Langkah 3: Kirim file yang dienkripsi ke penerima, yang dapat mendekripsinya menggunakan kunci publik pengirim untuk menghasilkan sebuah digest.

Langkah 4: Setelah dekripsi, jalankan data melalui fungsi hash yang sama untuk menghasilkan digest yang setara.

Langkah 5: Validasi integritas data dengan membandingkan hash yang baru dibuat dengan nilai hash yang diterima bersama data. Kesesuaian mengkonfirmasi integritas data.

Mari kita gunakan ilustrasi transfer dokumen antara Mark pengirim dan Karen penerima.

  1. Penandatanganan dan Pengiriman: Mark memulai proses dengan mengirimkan dokumen. Dokumen tersebut melewati algoritma hash, menciptakan nilai digest/hash. Digest ini kemudian dienkripsi dengan kunci pribadi Mark, menyelesaikan tanda tangan digital; kombinasi dari dokumen dan kunci pribadinya.
  2. Menerima dan Memverifikasi: Karen, penerima, menggunakan kunci publik Mark untuk mendekripsi tanda tangan digital, memperoleh hasil enkripsi asli. Secara independen, Karen menerapkan algoritma hash yang sama ke dokumen yang diterima, menghasilkan hasil enkripsi lainnya.
  3. Karen membandingkan kedua ringkasan: satu dari tanda tangan yang didekripsi dan satu yang dihasilkan secara independen. Jika mereka cocok, Karen yakin akan integritas dokumen dan keaslian Mark sebagai pengirim.

Algoritma Tanda Tangan yang Digunakan dalam Blockchain

Pemilihan algoritma Tanda Tangan Digital bergantung pada faktor-faktor seperti persyaratan keamanan, ukuran kunci, dan pertimbangan kinerja. Setiap algoritma memiliki kelebihan dan kelemahan, dan penggunaannya dapat berkembang berdasarkan kemajuan dalam kriptografi dan tantangan keamanan yang muncul.

Bagian ini membahas algoritma tanda tangan digital yang paling umum digunakan dalam teknologi blockchain.

  1. ECDSA (Elliptic Curve Digital Signature Algorithm): Ini menggunakan kunci yang lebih pendek dan membutuhkan lebih sedikit sumber daya komputasi dan menggunakan "kunci kriptografi kurva elips" yang merupakan kelompok titik-titik pada kurva di mana operasi tertentu dapat dengan mudah dilakukan dalam satu arah tetapi menantang dalam arah sebaliknya. Untuk keamanan, ECDSA bergantung pada masalah log diskrit. Ini adalah algoritma tanda tangan paling populer yang digunakan dalam teknologi blockchain.

  2. EdDSA (Edwards-curve Algoritma Tanda Tangan Digital): Ini adalah algoritma tanda tangan digital modern dan efisien berdasarkan kriptografi kurva eliptis. Algoritma ini diperkenalkan untuk mengatasi beberapa kekhawatiran dan meningkatkan kinerja dibanding skema tanda tangan lain seperti ECDSA. Algoritma ini dirancang untuk memberikan keamanan yang kuat dengan ukuran kunci yang relatif kecil, sehingga cocok untuk berbagai aplikasi, termasuk teknologi blockchain misalnya Cardano, dan Solana.

  3. Algoritma Schnorr: Tanda tangan Schnorr adalah jenis algoritma tanda tangan digital yang memungkinkan agregasi, yang artinya tanda tangan multiple pada pesan yang sama dapat digabungkan menjadi satu tanda tangan. Tanda tangan ini tidak hanya lebih efisien dalam penggunaan ruang tetapi juga memudahkan proses verifikasi yang lebih efisien.
    Ini terbukti efektif dalam skenario yang melibatkan beberapa pihak yang menandatangani pesan umum, seperti mengotorisasi transaksi dari alamat tanda tangan ganda (multisig). Dalam kasus tersebut, setiap peserta harus memberikan kunci publik dan tanda tangan mereka. Akibatnya, jika tiga pihak berniat untuk menandatangani pesan yang sama, bukti tersebut akan mencakup tiga kunci publik dan tiga tanda tangan. Hal ini tampaknya tidak efisien dalam komputasi dan penyimpanan karena setiap simpul harus mengeksekusi fungsi verifikasi tanda tangan tiga kali dan menyimpan tiga set tanda tangan dan kunci publik yang berbeda.
    Algoritma Schnorr hanya menghasilkan tanda tangan yang valid untuk jumlah kunci publik mereka. Agregasi kunci dapat mengurangi biaya gas dan meningkatkan skalabilitas lapisan dasar karena tanda tangan yang berasal dari transaksi multi-tanda tangan memakan ruang yang sama dalam blok seperti tanda tangan yang berasal dari transaksi satu pihak.

  4. Tanda Tangan BLS: Algoritma kriptografi BLS (Boneh-Lynn-Shacham) didasarkan pada pemangkatan bilinear di atas kelompok kurva eliptik. Algoritma ini diperkenalkan oleh Dan Boneh, Ben Lynn, dan Hovav Shacham pada tahun 2001. Fokus utama kriptografi BLS adalah pada skema tanda tangan yang efisien dan aman yang mendukung properti unik seperti agregasi. Selain itu, Tanda Tangan BLS digunakan di Ethereum 2.0 dan Chia.

Blockchain, Algoritma Hashing mereka, dan Algoritma Tanda Tangan

  1. Bitcoin (BTC):
    Algoritma Hashing: SHA-256
    Algoritma Tanda Tangan Digital: ECDSA, Schnorr (TapRoot Soft Fork)

  2. Ethereum (ETH):
    Algoritma Hashing: Keccak
    Algoritma Tanda Tangan Digital: ECDSA

  3. Litecoin (LTC):
    Algoritma Hashing: Scrypt
    Algoritma Tanda Tangan Digital: ECDSA

  4. Ripple (XRP):
    Algoritma Hashing: SHA-256
    Algoritma Tanda Tangan Digital: ECDSA

  5. Cardano (ADA):
    Algoritma Hashing: Keccak
    Algoritma Tanda Tangan Digital: EdDSA (Algoritma Tanda Tangan Digital Edwards-curve)

  6. Polkadot (DOT):
    Algoritma Hash: Blake2
    Algoritma Tanda Tangan Digital: EdDSA

  7. Tezos (XTZ):
    Algoritma Hash: Blake2b
    Algoritma Tanda Tangan Digital: EdDSA

  8. Rantai BNB (BNB):
    Algoritma Hashing: Keccak (digunakan untuk token BEP-2)
    Algoritma Tanda Tangan Digital: ECDSA

Bagaimana Bitcoin Menggunakan Tanda Tangan Digital

Bitcoin menggunakan Algoritma Tanda Tangan Digital Kurva Eliptik (ECDSA) untuk menghasilkan tanda tangan unik untuk setiap transaksi. Namun, dengan kemajuan terkini, algoritma Schnorr telah diperkenalkan melalui soft fork TapRoot. Algoritma ini, dikenal karena efisiensinya dalam hal efisiensi penyimpanan dan kecepatan verifikasi, dapat meningkatkan skalabilitas Bitcoin hingga 30%, dengan fitur agregasi transaksinya.

)

Sumber: TimesofIndia — Hanya transaksi yang ditandatangani dapat disiarkan dan divalidasi oleh node jaringan

Mekanisme dasar transaksi Bitcoin melibatkan serangkaian langkah yang melibatkan penggunaan tanda tangan digital.

Berikut adalah gambaran umum:

  1. Pengirim memutuskan untuk melakukan transaksi bitcoin, Ini bisa melibatkan pengiriman bitcoin ke pengguna lain atau beberapa pengguna.
  2. Pengirim membuat pesan transaksi yang berisi rincian kunci, seperti alamat dompet penerima, jumlah BTC yang dikirim, biaya yang terkait, dan asal bitcoin (unspent transaction outputs atau UTXOs) yang digunakan sebagai input untuk transaksi.
  3. Pengirim menandatangani pesan transaksi dengan kunci pribadi mereka menggunakan Algoritma Tanda Tangan Digital Kurva Eliptik (ECDSA). Tanda tangan digital ini memberikan bukti bahwa transaksi telah disetujui oleh pemilik sah alamat pengirim.
  4. Pesan transaksi di-hash menggunakan SHA-256 (Algoritma Hash Aman 256-bit) dan kemudian di-hash lebih lanjut menggunakan RIPEMD-160 (Evaluasi Primitif Integritas Pesan RACE 160-bit). Proses ini menghasilkan hash berukuran tetap, yang biasa dikenal sebagai ID transaksi atau hash.
  5. Transaksi yang ditandatangani disiarkan ke jaringan Bitcoin, di mana hal itu menjadi terlihat oleh semua node (komputer yang berpartisipasi dalam jaringan Bitcoin). Node-node dalam jaringan, termasuk para penambang, memverifikasi validitas transaksi tersebut. Verifikasi ini termasuk memeriksa tanda tangan digital untuk memastikan bahwa tanda tangan tersebut cocok dengan kunci publik pengirim dan bahwa input (UTXO) yang digunakan dalam transaksi tersebut belum dihabiskan dan valid.
  6. Transaksi yang valid dikumpulkan oleh para penambang, yang bersaing untuk menyelesaikan masalah matematika kompleks (proof-of-work). Penambang pertama yang menyelesaikan masalah tersebut menambahkan blok yang berisi transaksi yang diverifikasi ke dalam blockchain.
  7. Blok yang baru ditambahkan disiarkan ke jaringan, dan node lain memverifikasi bukti kerja dan validitas transaksi dalam blok tersebut. Begitu konsensus tercapai, blok dianggap terkonfirmasi, dan transaksi tersebut secara permanen tercatat dalam blockchain.
  8. Saldo dompet penerima diperbarui untuk mencerminkan bitcoin yang diterima, dan saldo dompet pengirim disesuaikan untuk memperhitungkan UTXO yang dihabiskan.

Aplikasi Tanda Tangan Digital dalam Web3

Sekarang bahwa kita memahami cara kerja dan pentingnya tanda tangan. Mari kita soroti aplikasi praktis dari tanda tangan digital dalam mengamankan transaksi, mengautentikasi identitas, dan memastikan integritas data dalam ekosistem Web3.

Autentikasi Transaksi

Ambil, sebagai contoh, Alice ingin mentransfer Ethereum ke Bob. Dia menandatangani transaksi dengan kunci pribadinya, menghasilkan tanda tangan digital. Jaringan Ethereum memverifikasi tanda tangan menggunakan kunci publik Alice, memastikan transaksi tersebut diotorisasi olehnya. Hal ini juga berlaku untuk transfer kepemilikan NFT, karena itu tercatat pada blockchain dengan transaksi yang ditandatangani, memastikan legitimasi perubahan kepemilikan.

Pelaksanaan Kontrak Pintar

Kontrak pintar dibangun untuk berinteraksi dengan tanda tangan dan dapat mengeksekusi transaksi setelah verifikasi. Sebagai contoh, dalam platform peminjaman terdesentralisasi, seorang pengguna memulai permintaan pinjaman. Permintaan tersebut memicu eksekusi kontrak pintar. Pengguna menandatangani transaksi dengan kunci pribadi mereka, dan kontrak pintar memverifikasi tanda tangan untuk mengeksekusi perjanjian pinjaman.

Identitas dan Otentikasi Terdesentralisasi

Seorang pengguna masuk ke aplikasi terdesentralisasi (dApp) menggunakan identitas blockchain mereka, misalnya alamat Ethereum. dApp meminta pesan yang ditandatangani dari pengguna (kunci privat), berfungsi sebagai bukti kepemilikan. Tanda tangan digital mengautentikasi identitas pengguna.

Ini juga bisa menjadi cara yang mudah untuk mengenalkan pengguna Web3 baru, karena mereka tidak perlu membuat akun dan menyimpan password lainnya lagi, pengguna dapat menyembunyikan identitas mereka dan tidak perlu necessarily mengungkapkan detail pribadi seperti alamat email mereka.

Integritas Data dan Tidak Dapat Dibantah dari NFT

Seorang seniman menandatangani file seni digital dengan kunci pribadinya sebelum mencetaknya sebagai NFT. Tanda tangan digital memastikan integritas karya seni, dan seniman tidak dapat menyangkal kepenulisannya nanti.

Sistem Pemungutan Suara

Dalam platform pemungutan suara terdesentralisasi, para pemilih memilih dengan menandatangani pilihannya dengan kunci privat mereka. Tanda tangan digital mengautentikasi suara dan memastikan setiap pemilih dapat memverifikasi kontribusi mereka. Aplikasi ini terlihat dalam pemungutan suara tata kelola dan pemungutan protokol konsensus.

Interoperabilitas lintas Rantai

Seorang pengguna mentransfer token dari satu blockchain ke blockchain lain menggunakan protokol jembatan. Pengguna menandatangani transaksi pada rantai sumber, dan rantai tujuan memverifikasi tanda tangan, memungkinkan transfer lintas rantai.

Tantangan dan Tren Masa Depan

Tantangan Serangan Kuantum

Tanda Tangan Digital tetap menjadi salah satu cara autentikasi yang sangat ampuh di blockchain. Namun, perkembangan komputer kuantum berskala besar akan menimbulkan ancaman terhadap keamanan blockchain, karena algoritma kriptografi dapat dengan cepat dipecahkan oleh komputer kuantum.

Komputer kuantum dapat memproses tugas dengan kecepatan luar biasa, menyelesaikan dalam hitungan detik apa yang akan memakan waktu berjam-jam bagi komputer tradisional, pelaku buruk dapat menggunakan komputer kuantum untuk melakukan serangan kuantum yang dapat membahayakan seluruh blockchain.

Namun, mereka dapat dicegah oleh tanda tangan post-kuantum, yang sudah dalam pengembangan, meskipun mereka akan memerlukan ruang penyimpanan yang lebih besar di blockchain.

Kesimpulan

Tanda Tangan Digital memverifikasi keaslian dan integritas data, berdasarkan prinsip kriptografi asimetris dan hashing. Ini berfungsi dengan menggunakan kunci pribadi pengirim untuk mengotentikasi bentuk terhas dari data, dan penerima memverifikasi dengan kunci publik pengirim. Algoritma kriptografi yang paling umum digunakan oleh blockchain adalah tanda tangan ECDSA, EdDSA, Schnoor, dan BLS.

Selain itu, penggunaan tanda tangan digital umumnya berlaku dalam otentikasi transaksi, eksekusi kontrak pintar, pemungutan suara tata kelola, transfer lintas rantai, dan integritas data NFT.

المؤلف: Paul
المترجم: Sonia
المراجع (المراجعين): Piccolo、Edward、Ashley He
* لا يُقصد من المعلومات أن تكون أو أن تشكل نصيحة مالية أو أي توصية أخرى من أي نوع تقدمها منصة Gate.io أو تصادق عليها .
* لا يجوز إعادة إنتاج هذه المقالة أو نقلها أو نسخها دون الرجوع إلى منصة Gate.io. المخالفة هي انتهاك لقانون حقوق الطبع والنشر وقد تخضع لإجراءات قانونية.

Apa itu Tanda Tangan Digital dan Bagaimana Cara Kerjanya?

Menengah1/19/2024, 6:23:26 PM
Blockchain menggunakan tanda tangan digital sebagai bagian integral dari proses verifikasi terdesentralisasi mereka, menciptakan cara yang aman untuk mengautentikasi proses tanpa mengungkap identitas pengguna.

Pengantar

Tanda Tangan Digital adalah alat kriptografi yang digunakan dalam bidang seperti keamanan cyber, e-commerce, dan distribusi perangkat lunak. Mereka menyediakan metode untuk memverifikasi asal dan integritas pesan atau dokumen digital.

Namun, teknologi Blockchain mempopulerkan penggunaan tanda tangan digital sebagai bagian integral dari proses verifikasi desentralisasi dan transaksi. Artikel ini secara cermat meneliti bagaimana tanda tangan digital bekerja, berbagai algoritma yang digunakan oleh blockchain, dan aplikasi mereka di ruang Web3.

Memahami Tanda Tangan Digital

Sumber: CoinGeek

Tanda Tangan Digital adalah teknik kriptografi yang digunakan untuk memverifikasi keaslian dan integritas pesan digital, dokumen, atau transaksi. Tanda tangan digital dianggap lebih aman dibandingkan tanda tangan elektronik.

Secara tradisional, tanda tangan memastikan kesepakatan secara hukum mengikat, memvalidasi identitas pihak yang terlibat, dan memiliki penerimaan yang pasti terhadap syarat-syarat kontrak. Tanda tangan digital melangkah lebih jauh untuk mengatasi masalah perubahan dan pemalsuan, yang membuatnya menjadi bentuk tanda tangan yang lebih aman.

Fitur Tanda Tangan Digital

Fitur utama dari tanda tangan digital adalah:

  • Autentikasi: Tanda Tangan Digital membuktikan bahwa pesan telah dikirim oleh pengirim yang diklaim dengan memverifikasi pesan dengan kunci publik pengirim.
  • Non-repudiation: Tanda Tangan Digital menggunakan kunci publik pengirim untuk mendekripsi tanda tangan, jika berhasil, pengirim tidak dapat menyangkal mengirim pesan.
  • Integritas: Kemampuan untuk memverifikasi nilai hash/digest membuktikan bahwa data tidak diubah saat transit.

Kriptografi Asimetris

Sumber: WikiBooks

Kriptografi asimetris adalah metode untuk mengenkripsi dan mendekripsi data dengan dua kunci yang berbeda, sehingga salah satu kunci (yaitu kunci publik) secara terbuka dibagikan kepada siapa pun. Kunci lainnya, yang dikenal sebagai kunci privat, adalah kunci rahasia dan aman yang hanya diketahui oleh penanda. Data yang dienkripsi dengan satu kunci hanya dapat didekripsi dengan kunci yang lain.

Dalam kriptografi, kunci seringkali berupa rangkaian angka dan huruf, digunakan untuk mengacak data sehingga terlihat acak. Namun, siapa pun yang memiliki kunci yang tepat untuk mendekripsi data dapat mengembalikannya ke bentuk aslinya.

Sebagai contoh, misalkan kita mengambil sebuah gambar dan mengenkripsi dengan sebuah kunci; katakanlah kunci tersebut adalah 28j932d8kd8. Dienkripsi dengan kunci ini, gambar kita terlihat sebagai “X5CSycg14=xJ”. Namun, dengan mendekripsi menggunakan kunci yang benar, kita dapat mendapatkan kembali gambar kita.

Kunci Istilah yang Perlu Anda Pahami

Hashing

Hashing adalah proses mengonversi data (teks, file), input berukuran variabel menjadi output berukuran tetap berupa huruf dan angka, dengan menggunakan fungsi hash. Ini adalah proses satu arah, di mana nilai hash tidak dapat dikembalikan ke input asli, tetapi potongan input yang sama akan selalu menghasilkan nilai hash yang sama.

Sumber: CyberHoot

Pada gambar di atas, sebuah potongan teks (teka-teki) melewati fungsi hash (SHA-256) dan dikonversi menjadi hash (sejumlah angka dan huruf dengan panjang tetap).

Apa itu Fungsi Hash?

Sebuah algoritma yang memproses data yang akan ditandatangani, menghasilkan nilai hash berukuran tetap. Fungsi hash memastikan bahwa tanda tangan tetap berukuran tetap, terlepas dari ukuran data asli.

Nilai Hash

Output akhir dari fungsi hash adalah nilai hash, juga dikenal sebagai digest, yang unik untuk setiap input. Ukuran nilai hash berkisar dari 32-bit hingga 256-bit, tergantung pada fungsi hash yang digunakan. Nilai hash hanya diperlukan untuk penggunaan tunggal dalam proses seperti otentikasi data atau pembuatan tanda tangan digital. Oleh karena itu, tanda tangan digital adalah unik per transaksi.

Bagaimana Tanda Tangan Digital Bekerja?

Untuk melakukan tanda tangan digital, Anda memerlukan hal berikut:

  1. Pasangan Kunci: Pasangan kunci terdiri dari pasangan kunci publik/privat. Kunci privat digunakan untuk membuat tanda tangan, dan kunci publik yang sesuai digunakan untuk memverifikasi tanda tangan.

  2. Data yang Akan Ditalandatangani: Konten atau pesan yang ingin Anda tandatangani. Ini bisa berupa dokumen, transaksi, atau data digital apa pun.

  3. Fungsi Hash: Fungsi hash diterapkan pada data untuk membuat nilai hash berukuran tetap. Nilai hash ini kemudian dienkripsi dengan kunci pribadi untuk menghasilkan tanda tangan digital.

  4. Algoritma Tanda Tangan Digital: Sebuah algoritma yang menggabungkan kunci privat dengan data yang akan ditandatangani, umumnya melibatkan fungsi hash. Algoritma ini menghasilkan tanda tangan digital.

  5. Mekanisme Verifikasi: Siapapun yang ingin memverifikasi tanda tangan digital memerlukan akses ke kunci publik dan algoritma tanda tangan digital yang sama. Kunci publik digunakan untuk mendekripsi tanda tangan digital dan mengungkap nilai hash, yang kemudian dibandingkan dengan nilai hash yang dihitung dari data asli.

Bagaimana Mereka Menggabungkan Untuk Membuatnya Bekerja?

Sumber: CamCert — Pengirim menandatangani (mengenkripsi) nilai hash dengan kunci pribadi mereka, dan penerima memverifikasi keaslian pesan dengan membandingkan nilai hash

Langkah 1: Buat nilai hash/digest dengan melewati data asli melalui fungsi hash

Langkah 2: Tanda tangani hash dengan kunci pribadi pengirim untuk membuat enkripsi.

Langkah 3: Kirim file yang dienkripsi ke penerima, yang dapat mendekripsinya menggunakan kunci publik pengirim untuk menghasilkan sebuah digest.

Langkah 4: Setelah dekripsi, jalankan data melalui fungsi hash yang sama untuk menghasilkan digest yang setara.

Langkah 5: Validasi integritas data dengan membandingkan hash yang baru dibuat dengan nilai hash yang diterima bersama data. Kesesuaian mengkonfirmasi integritas data.

Mari kita gunakan ilustrasi transfer dokumen antara Mark pengirim dan Karen penerima.

  1. Penandatanganan dan Pengiriman: Mark memulai proses dengan mengirimkan dokumen. Dokumen tersebut melewati algoritma hash, menciptakan nilai digest/hash. Digest ini kemudian dienkripsi dengan kunci pribadi Mark, menyelesaikan tanda tangan digital; kombinasi dari dokumen dan kunci pribadinya.
  2. Menerima dan Memverifikasi: Karen, penerima, menggunakan kunci publik Mark untuk mendekripsi tanda tangan digital, memperoleh hasil enkripsi asli. Secara independen, Karen menerapkan algoritma hash yang sama ke dokumen yang diterima, menghasilkan hasil enkripsi lainnya.
  3. Karen membandingkan kedua ringkasan: satu dari tanda tangan yang didekripsi dan satu yang dihasilkan secara independen. Jika mereka cocok, Karen yakin akan integritas dokumen dan keaslian Mark sebagai pengirim.

Algoritma Tanda Tangan yang Digunakan dalam Blockchain

Pemilihan algoritma Tanda Tangan Digital bergantung pada faktor-faktor seperti persyaratan keamanan, ukuran kunci, dan pertimbangan kinerja. Setiap algoritma memiliki kelebihan dan kelemahan, dan penggunaannya dapat berkembang berdasarkan kemajuan dalam kriptografi dan tantangan keamanan yang muncul.

Bagian ini membahas algoritma tanda tangan digital yang paling umum digunakan dalam teknologi blockchain.

  1. ECDSA (Elliptic Curve Digital Signature Algorithm): Ini menggunakan kunci yang lebih pendek dan membutuhkan lebih sedikit sumber daya komputasi dan menggunakan "kunci kriptografi kurva elips" yang merupakan kelompok titik-titik pada kurva di mana operasi tertentu dapat dengan mudah dilakukan dalam satu arah tetapi menantang dalam arah sebaliknya. Untuk keamanan, ECDSA bergantung pada masalah log diskrit. Ini adalah algoritma tanda tangan paling populer yang digunakan dalam teknologi blockchain.

  2. EdDSA (Edwards-curve Algoritma Tanda Tangan Digital): Ini adalah algoritma tanda tangan digital modern dan efisien berdasarkan kriptografi kurva eliptis. Algoritma ini diperkenalkan untuk mengatasi beberapa kekhawatiran dan meningkatkan kinerja dibanding skema tanda tangan lain seperti ECDSA. Algoritma ini dirancang untuk memberikan keamanan yang kuat dengan ukuran kunci yang relatif kecil, sehingga cocok untuk berbagai aplikasi, termasuk teknologi blockchain misalnya Cardano, dan Solana.

  3. Algoritma Schnorr: Tanda tangan Schnorr adalah jenis algoritma tanda tangan digital yang memungkinkan agregasi, yang artinya tanda tangan multiple pada pesan yang sama dapat digabungkan menjadi satu tanda tangan. Tanda tangan ini tidak hanya lebih efisien dalam penggunaan ruang tetapi juga memudahkan proses verifikasi yang lebih efisien.
    Ini terbukti efektif dalam skenario yang melibatkan beberapa pihak yang menandatangani pesan umum, seperti mengotorisasi transaksi dari alamat tanda tangan ganda (multisig). Dalam kasus tersebut, setiap peserta harus memberikan kunci publik dan tanda tangan mereka. Akibatnya, jika tiga pihak berniat untuk menandatangani pesan yang sama, bukti tersebut akan mencakup tiga kunci publik dan tiga tanda tangan. Hal ini tampaknya tidak efisien dalam komputasi dan penyimpanan karena setiap simpul harus mengeksekusi fungsi verifikasi tanda tangan tiga kali dan menyimpan tiga set tanda tangan dan kunci publik yang berbeda.
    Algoritma Schnorr hanya menghasilkan tanda tangan yang valid untuk jumlah kunci publik mereka. Agregasi kunci dapat mengurangi biaya gas dan meningkatkan skalabilitas lapisan dasar karena tanda tangan yang berasal dari transaksi multi-tanda tangan memakan ruang yang sama dalam blok seperti tanda tangan yang berasal dari transaksi satu pihak.

  4. Tanda Tangan BLS: Algoritma kriptografi BLS (Boneh-Lynn-Shacham) didasarkan pada pemangkatan bilinear di atas kelompok kurva eliptik. Algoritma ini diperkenalkan oleh Dan Boneh, Ben Lynn, dan Hovav Shacham pada tahun 2001. Fokus utama kriptografi BLS adalah pada skema tanda tangan yang efisien dan aman yang mendukung properti unik seperti agregasi. Selain itu, Tanda Tangan BLS digunakan di Ethereum 2.0 dan Chia.

Blockchain, Algoritma Hashing mereka, dan Algoritma Tanda Tangan

  1. Bitcoin (BTC):
    Algoritma Hashing: SHA-256
    Algoritma Tanda Tangan Digital: ECDSA, Schnorr (TapRoot Soft Fork)

  2. Ethereum (ETH):
    Algoritma Hashing: Keccak
    Algoritma Tanda Tangan Digital: ECDSA

  3. Litecoin (LTC):
    Algoritma Hashing: Scrypt
    Algoritma Tanda Tangan Digital: ECDSA

  4. Ripple (XRP):
    Algoritma Hashing: SHA-256
    Algoritma Tanda Tangan Digital: ECDSA

  5. Cardano (ADA):
    Algoritma Hashing: Keccak
    Algoritma Tanda Tangan Digital: EdDSA (Algoritma Tanda Tangan Digital Edwards-curve)

  6. Polkadot (DOT):
    Algoritma Hash: Blake2
    Algoritma Tanda Tangan Digital: EdDSA

  7. Tezos (XTZ):
    Algoritma Hash: Blake2b
    Algoritma Tanda Tangan Digital: EdDSA

  8. Rantai BNB (BNB):
    Algoritma Hashing: Keccak (digunakan untuk token BEP-2)
    Algoritma Tanda Tangan Digital: ECDSA

Bagaimana Bitcoin Menggunakan Tanda Tangan Digital

Bitcoin menggunakan Algoritma Tanda Tangan Digital Kurva Eliptik (ECDSA) untuk menghasilkan tanda tangan unik untuk setiap transaksi. Namun, dengan kemajuan terkini, algoritma Schnorr telah diperkenalkan melalui soft fork TapRoot. Algoritma ini, dikenal karena efisiensinya dalam hal efisiensi penyimpanan dan kecepatan verifikasi, dapat meningkatkan skalabilitas Bitcoin hingga 30%, dengan fitur agregasi transaksinya.

)

Sumber: TimesofIndia — Hanya transaksi yang ditandatangani dapat disiarkan dan divalidasi oleh node jaringan

Mekanisme dasar transaksi Bitcoin melibatkan serangkaian langkah yang melibatkan penggunaan tanda tangan digital.

Berikut adalah gambaran umum:

  1. Pengirim memutuskan untuk melakukan transaksi bitcoin, Ini bisa melibatkan pengiriman bitcoin ke pengguna lain atau beberapa pengguna.
  2. Pengirim membuat pesan transaksi yang berisi rincian kunci, seperti alamat dompet penerima, jumlah BTC yang dikirim, biaya yang terkait, dan asal bitcoin (unspent transaction outputs atau UTXOs) yang digunakan sebagai input untuk transaksi.
  3. Pengirim menandatangani pesan transaksi dengan kunci pribadi mereka menggunakan Algoritma Tanda Tangan Digital Kurva Eliptik (ECDSA). Tanda tangan digital ini memberikan bukti bahwa transaksi telah disetujui oleh pemilik sah alamat pengirim.
  4. Pesan transaksi di-hash menggunakan SHA-256 (Algoritma Hash Aman 256-bit) dan kemudian di-hash lebih lanjut menggunakan RIPEMD-160 (Evaluasi Primitif Integritas Pesan RACE 160-bit). Proses ini menghasilkan hash berukuran tetap, yang biasa dikenal sebagai ID transaksi atau hash.
  5. Transaksi yang ditandatangani disiarkan ke jaringan Bitcoin, di mana hal itu menjadi terlihat oleh semua node (komputer yang berpartisipasi dalam jaringan Bitcoin). Node-node dalam jaringan, termasuk para penambang, memverifikasi validitas transaksi tersebut. Verifikasi ini termasuk memeriksa tanda tangan digital untuk memastikan bahwa tanda tangan tersebut cocok dengan kunci publik pengirim dan bahwa input (UTXO) yang digunakan dalam transaksi tersebut belum dihabiskan dan valid.
  6. Transaksi yang valid dikumpulkan oleh para penambang, yang bersaing untuk menyelesaikan masalah matematika kompleks (proof-of-work). Penambang pertama yang menyelesaikan masalah tersebut menambahkan blok yang berisi transaksi yang diverifikasi ke dalam blockchain.
  7. Blok yang baru ditambahkan disiarkan ke jaringan, dan node lain memverifikasi bukti kerja dan validitas transaksi dalam blok tersebut. Begitu konsensus tercapai, blok dianggap terkonfirmasi, dan transaksi tersebut secara permanen tercatat dalam blockchain.
  8. Saldo dompet penerima diperbarui untuk mencerminkan bitcoin yang diterima, dan saldo dompet pengirim disesuaikan untuk memperhitungkan UTXO yang dihabiskan.

Aplikasi Tanda Tangan Digital dalam Web3

Sekarang bahwa kita memahami cara kerja dan pentingnya tanda tangan. Mari kita soroti aplikasi praktis dari tanda tangan digital dalam mengamankan transaksi, mengautentikasi identitas, dan memastikan integritas data dalam ekosistem Web3.

Autentikasi Transaksi

Ambil, sebagai contoh, Alice ingin mentransfer Ethereum ke Bob. Dia menandatangani transaksi dengan kunci pribadinya, menghasilkan tanda tangan digital. Jaringan Ethereum memverifikasi tanda tangan menggunakan kunci publik Alice, memastikan transaksi tersebut diotorisasi olehnya. Hal ini juga berlaku untuk transfer kepemilikan NFT, karena itu tercatat pada blockchain dengan transaksi yang ditandatangani, memastikan legitimasi perubahan kepemilikan.

Pelaksanaan Kontrak Pintar

Kontrak pintar dibangun untuk berinteraksi dengan tanda tangan dan dapat mengeksekusi transaksi setelah verifikasi. Sebagai contoh, dalam platform peminjaman terdesentralisasi, seorang pengguna memulai permintaan pinjaman. Permintaan tersebut memicu eksekusi kontrak pintar. Pengguna menandatangani transaksi dengan kunci pribadi mereka, dan kontrak pintar memverifikasi tanda tangan untuk mengeksekusi perjanjian pinjaman.

Identitas dan Otentikasi Terdesentralisasi

Seorang pengguna masuk ke aplikasi terdesentralisasi (dApp) menggunakan identitas blockchain mereka, misalnya alamat Ethereum. dApp meminta pesan yang ditandatangani dari pengguna (kunci privat), berfungsi sebagai bukti kepemilikan. Tanda tangan digital mengautentikasi identitas pengguna.

Ini juga bisa menjadi cara yang mudah untuk mengenalkan pengguna Web3 baru, karena mereka tidak perlu membuat akun dan menyimpan password lainnya lagi, pengguna dapat menyembunyikan identitas mereka dan tidak perlu necessarily mengungkapkan detail pribadi seperti alamat email mereka.

Integritas Data dan Tidak Dapat Dibantah dari NFT

Seorang seniman menandatangani file seni digital dengan kunci pribadinya sebelum mencetaknya sebagai NFT. Tanda tangan digital memastikan integritas karya seni, dan seniman tidak dapat menyangkal kepenulisannya nanti.

Sistem Pemungutan Suara

Dalam platform pemungutan suara terdesentralisasi, para pemilih memilih dengan menandatangani pilihannya dengan kunci privat mereka. Tanda tangan digital mengautentikasi suara dan memastikan setiap pemilih dapat memverifikasi kontribusi mereka. Aplikasi ini terlihat dalam pemungutan suara tata kelola dan pemungutan protokol konsensus.

Interoperabilitas lintas Rantai

Seorang pengguna mentransfer token dari satu blockchain ke blockchain lain menggunakan protokol jembatan. Pengguna menandatangani transaksi pada rantai sumber, dan rantai tujuan memverifikasi tanda tangan, memungkinkan transfer lintas rantai.

Tantangan dan Tren Masa Depan

Tantangan Serangan Kuantum

Tanda Tangan Digital tetap menjadi salah satu cara autentikasi yang sangat ampuh di blockchain. Namun, perkembangan komputer kuantum berskala besar akan menimbulkan ancaman terhadap keamanan blockchain, karena algoritma kriptografi dapat dengan cepat dipecahkan oleh komputer kuantum.

Komputer kuantum dapat memproses tugas dengan kecepatan luar biasa, menyelesaikan dalam hitungan detik apa yang akan memakan waktu berjam-jam bagi komputer tradisional, pelaku buruk dapat menggunakan komputer kuantum untuk melakukan serangan kuantum yang dapat membahayakan seluruh blockchain.

Namun, mereka dapat dicegah oleh tanda tangan post-kuantum, yang sudah dalam pengembangan, meskipun mereka akan memerlukan ruang penyimpanan yang lebih besar di blockchain.

Kesimpulan

Tanda Tangan Digital memverifikasi keaslian dan integritas data, berdasarkan prinsip kriptografi asimetris dan hashing. Ini berfungsi dengan menggunakan kunci pribadi pengirim untuk mengotentikasi bentuk terhas dari data, dan penerima memverifikasi dengan kunci publik pengirim. Algoritma kriptografi yang paling umum digunakan oleh blockchain adalah tanda tangan ECDSA, EdDSA, Schnoor, dan BLS.

Selain itu, penggunaan tanda tangan digital umumnya berlaku dalam otentikasi transaksi, eksekusi kontrak pintar, pemungutan suara tata kelola, transfer lintas rantai, dan integritas data NFT.

المؤلف: Paul
المترجم: Sonia
المراجع (المراجعين): Piccolo、Edward、Ashley He
* لا يُقصد من المعلومات أن تكون أو أن تشكل نصيحة مالية أو أي توصية أخرى من أي نوع تقدمها منصة Gate.io أو تصادق عليها .
* لا يجوز إعادة إنتاج هذه المقالة أو نقلها أو نسخها دون الرجوع إلى منصة Gate.io. المخالفة هي انتهاك لقانون حقوق الطبع والنشر وقد تخضع لإجراءات قانونية.
ابدأ التداول الآن
اشترك وتداول لتحصل على جوائز ذهبية بقيمة
100 دولار أمريكي
و
5500 دولارًا أمريكيًا
لتجربة الإدارة المالية الذهبية!