Langsung ke konten utama

Proses Pembuatan Tanda Tangan Digital pada Transaksi Blockchain



Tanda tangan digital pada blockchain digunakan untuk memastikan bahwa transaksi yang dilakukan adalah sah dan berasal dari pengirim yang sah (yaitu pemilik kunci privat). Proses pembuatan tanda tangan digital ini melibatkan beberapa langkah kriptografi. Berikut adalah langkah-langkah bagaimana tanda tangan digital dibuat dalam konteks blockchain:


1. Pengguna Membuat Transaksi

  • Pengguna membuat transaksi yang mencakup:
    • Alamat pengirim (public key).
    • Alamat penerima (public key).
    • Jumlah aset yang akan dikirim.
    • Biaya transaksi (transaction fee).
  • Setiap informasi ini akan menjadi bagian dari data transaksi yang akan ditandatangani.

2. Membuat Hash Transaksi

  • Sebelum membuat tanda tangan, transaksi harus di-hash terlebih dahulu. Hashing adalah proses mengubah data (dalam hal ini, transaksi) menjadi nilai tetap dengan panjang tetap menggunakan algoritma hash kriptografis (seperti SHA-256 pada Bitcoin).
  • Hash transaksi ini bertindak sebagai representasi unik dari seluruh transaksi.
    • Tujuan dari proses hashing adalah untuk memastikan integritas data: jika data transaksi diubah, maka hash-nya juga akan berubah.

3. Menandatangani Hash dengan Kunci Privat

  • Kunci Privat:
    • Pengguna memiliki private key yang hanya diketahui oleh mereka.
    • Private key ini digunakan untuk menandatangani hash transaksi, yang membuktikan bahwa transaksi tersebut berasal dari pengirim yang sah.
  • Proses Penandatanganan:
    • Pengguna menandatangani hash transaksi menggunakan algoritma tanda tangan digital (misalnya ECDSA di Bitcoin, atau EdDSA di beberapa blockchain lain).
    • Tanda tangan digital ini menghubungkan hash transaksi dengan kunci privat pengirim dan menghasilkan tanda tangan yang unik.
    • Tanda tangan digital terdiri dari dua bagian:
      • R dan S (dua nilai yang dihitung dari algoritma tanda tangan).
      • Tanda tangan digital ini menjamin bahwa hanya pemilik kunci privat yang dapat menandatangani transaksi tersebut.

4. Transaksi Dikirim dengan Tanda Tangan

  • Setelah transaksi ditandatangani, tanda tangan digital ini disertakan dalam transaksi yang akan disiarkan ke jaringan blockchain.
  • Tanda tangan ini, bersama dengan transaksi dan alamat penerima, dikirimkan ke node di jaringan.

5. Verifikasi Tanda Tangan oleh Node

  • Proses Verifikasi:
    • Setelah transaksi diterima oleh node di jaringan blockchain, node akan memverifikasi tanda tangan digital dengan cara berikut:
      • Node akan menggunakan public key pengirim untuk memverifikasi tanda tangan digital.
      • Dengan menggunakan public key dan tanda tangan digital, node dapat memverifikasi apakah transaksi benar-benar berasal dari pengirim yang memiliki private key yang sesuai.
      • Jika tanda tangan valid, transaksi diterima dan akan diproses lebih lanjut. Jika tidak valid (misalnya, tanda tangan tidak cocok dengan public key atau transaksi telah diubah), transaksi akan ditolak.

6. Penyimpanan di Blockchain

  • Jika tanda tangan valid dan transaksi diterima, transaksi akan dimasukkan ke dalam blok dan ditambahkan ke blockchain.
  • Dengan menggunakan tanda tangan digital, blockchain memastikan bahwa hanya pemilik kunci privat yang sah yang dapat mengeluarkan transaksi dan bahwa transaksi tersebut tidak dapat diubah setelah ditambahkan ke blockchain.

Keamanan Tanda Tangan Digital

  • Keamanan Kriptografi:
    • Tanda tangan digital menggunakan algoritma kriptografi yang sangat aman, sehingga sangat sulit bagi pihak lain untuk membuat tanda tangan digital yang valid tanpa memiliki akses ke kunci privat pengirim.
    • Selain itu, jika ada sedikit perubahan pada transaksi, hash-nya akan berubah dan tanda tangan digital yang lama menjadi tidak valid.

Contoh Pembuatan Tanda Tangan Digital dalam Bitcoin (menggunakan ECDSA)

  1. Transaksi dibuat dengan detail pengirim, penerima, dan jumlah BTC.
  2. Hash transaksi dihitung menggunakan SHA-256.
  3. Tanda tangan dibuat dengan private key pengirim menggunakan algoritma ECDSA (Elliptic Curve Digital Signature Algorithm).
  4. Transaksi beserta tanda tangan disiarkan ke jaringan Bitcoin.
  5. Node memverifikasi tanda tangan digital menggunakan public key pengirim.

Kesimpulan

Tanda tangan digital pada blockchain berfungsi untuk memberikan keamanan dan autentikasi terhadap transaksi. Dengan menggunakan kunci privat untuk menandatangani transaksi dan kunci publik untuk memverifikasi tanda tangan, blockchain memastikan bahwa hanya pemilik sah yang dapat membuat transaksi dan mencegah perubahan data setelah transaksi dicatat. Proses ini sangat krusial untuk menjaga integritas dan kepercayaan dalam jaringan blockchain yang terdesentralisasi.

Komentar

Postingan populer dari blog ini

Membuat Aplikasi Web ASP.NET Core di Visual Studio 2022

Artikel ini membahas langkah-langkah membuat aplikasi ASP.NET Core menggunakan Visual Studio 2022 dan framework .NET 8. 1. Membuka Visual Studio 2022 Buka Visual Studio 2022 dan klik "Create a new project" di layar awal. 2. Memilih Template Proyek Di jendela "Create a new project" , pilih template ASP.NET Core Empty . Template ini memberikan struktur dasar tanpa konfigurasi awal seperti controller, view, atau API. Setelah itu, klik Next . 3. Konfigurasi Proyek Baru Isi informasi proyek seperti berikut: Project Name : Masukkan nama proyek, misalnya FirstCoreWebApplication . Location : Tentukan lokasi folder untuk menyimpan proyek, misalnya D:\Projects . Solution Name : Biasanya sama dengan nama proyek, tetapi bisa diubah jika diperlukan. Centang "Place solution and project in the same directory" jika solusi dan proyek ingin disimpan dalam satu folder. Klik Create untuk melanjutkan. 4. Pengaturan Tambahan Pada jendela "Additional Information...

Remix IDE: Solusi Praktis untuk Menulis dan Deploy Kontrak Pintar

Remix IDE  adalah lingkungan pengembangan terintegrasi berbasis web yang dirancang untuk menulis, mengompilasi, dan menyebarkan smart contract menggunakan bahasa pemrograman  Solidity  di blockchain Ethereum. Alat ini banyak digunakan oleh pengembang blockchain karena kemudahannya dalam menyediakan fitur lengkap untuk pengembangan, pengujian, dan debugging kontrak pintar. Fitur Utama Remix IDE Berbasis Web dan Gratis Tidak perlu diunduh atau diinstal. Anda dapat mengakses Remix langsung melalui browser di  remix.ethereum.org . Karena berbasis web, Remix dapat digunakan di berbagai perangkat selama ada akses internet. Editor Kode Mendukung penulisan kode Solidity dengan penyorotan sintaks, autocompletion, dan validasi kesalahan. Fitur penyorotan kesalahan (error highlighting) memudahkan pengembang untuk menemukan bug pada kode. Compiler Solidity Remix menyediakan compiler bawaan untuk mengonversi kode Solidity menjadi bytecode yang dapat dijalankan di Ethereum Virtual...

Perlu dicatat Built-in Global Variable pada Solidity

Solidity, sebagai bahasa pemrograman untuk membuat smart contract di Ethereum dan blockchain lainnya, menyediakan beberapa variabel global bawaan . Variabel ini memungkinkan akses mudah ke informasi tentang blockchain, transaksi, dan konteks eksekusi. Dengan menggunakan variabel ini, pengembang dapat berinteraksi dengan lingkungan blockchain tanpa perlu menulis banyak kode tambahan. Berikut penjelasan kategori dan variabel global yang umum digunakan: 1. Informasi Blockchain Variabel-variabel ini menyediakan informasi terkait blockchain, seperti blok saat ini dan propertinya. block.number Mengembalikan nomor blok saat ini. Contoh: uint nomorBlokSaatIni = block.number; block.timestamp Waktu pembuatan blok saat ini dalam format detik sejak Unix epoch. Biasanya digunakan untuk mendapatkan waktu saat ini. Contoh: require(block.timestamp >= waktuMulai, "Terlalu awal untuk eksekusi!"); block.difficulty Tingkat kesulitan penambangan pada blok saat ini. Contoh: uin...