Teknik Hashing Blockchain

 

Teknik Hashing di Blockchain

Definisi Hashing

Hashing adalah proses matematika yang mengambil data dari input, menerapkannya pada fungsi hash, dan mengubahnya menjadi output yang berukuran tetap dan bersifat unik, disebut hash. Ukuran hash tidak tergantung pada ukuran inputnya, sehingga file atau data sebesar apapun dapat dipetakan menjadi hash dengan panjang tetap, misalnya 256-bit (dalam kasus SHA-256).

Fungsi hash sangat penting dalam berbagai aplikasi teknologi seperti keamanan siber, tanda tangan digital, verifikasi integritas data, dan tentu saja, Blockchain. Hashing memastikan bahwa data yang dimasukkan dapat diverifikasi keasliannya tanpa perlu menyimpan data asli secara utuh.

Ciri-ciri Fungsi Hash dalam Kriptografi

  1. Pre-image Resistance (Tidak Dapat Diprediksi): Fungsi hash yang baik membuat sangat sulit untuk menebak input asli hanya dengan mengetahui hasil hashnya. Ini sangat penting untuk menjaga kerahasiaan data yang di-hash.

  2. Second Pre-image Resistance (Irreversibel): Jika kita sudah memiliki input dan hasil hash-nya, menemukan input kedua yang menghasilkan hash yang sama sangatlah sulit. Hal ini mencegah seseorang membuat data palsu yang bisa menghasilkan hash yang sama dengan data asli.

  3. Collision Resistance (Ketahanan Terhadap Kolisi): Fungsi hash harus memiliki sifat ketahanan terhadap kolisi, yaitu sulit menemukan dua input berbeda yang menghasilkan hash yang sama. Kolisi dapat membahayakan integritas data, jadi fungsi hash yang baik akan meminimalkan kemungkinan terjadinya kolisi.

  4. Deterministik: Fungsi hash selalu memberikan hasil yang sama jika input yang sama dimasukkan. Artinya, jika Anda memberikan input yang identik berkali-kali, hash yang dihasilkan akan selalu sama. Ini penting untuk konsistensi.

  5. Efisiensi dalam Perhitungan: Fungsi hash harus dapat dihitung secara efisien tanpa memerlukan banyak sumber daya. Efisiensi ini penting dalam aplikasi seperti Blockchain, di mana fungsi hash digunakan secara terus-menerus dalam verifikasi blok.

  6. Avalanche Effect (Efek Kupu-Kupu): Hashing harus bersifat sensitif terhadap perubahan kecil pada data input. Perubahan satu bit dalam data asli harus menyebabkan perubahan besar pada hasil hash yang dihasilkan, sehingga membuatnya sulit untuk memprediksi hubungan antara input dan hash output.

Use Case Hashing di Blockchain

Blockchain, sebagai teknologi terdistribusi yang berfungsi untuk mencatat transaksi atau data, sangat bergantung pada fungsi hashing untuk memastikan keamanan dan integritas. Berikut beberapa penerapan hashing di Blockchain:

  1. Membuat Identitas Blok yang Unik: Setiap blok dalam Blockchain memiliki hash unik yang dihasilkan dari data dalam blok tersebut, termasuk hash blok sebelumnya. Dengan demikian, hash dari blok sebelumnya disertakan dalam blok yang sedang dibuat, menciptakan keterkaitan antara blok-blok dan menjaga urutan mereka.

  2. Memastikan Keamanan Transaksi: Setiap transaksi di Blockchain di-hash dan dicatat dalam blok. Hal ini memungkinkan semua pihak dalam jaringan untuk memverifikasi bahwa transaksi tersebut tidak dimanipulasi.

  3. Imutabilitas Data (Data Tidak Dapat Diubah): Salah satu keuntungan utama Blockchain adalah sifatnya yang immutable, artinya data yang sudah dimasukkan tidak dapat diubah tanpa mengubah seluruh rantai blok. Ini dimungkinkan karena fungsi hash akan berubah drastis bahkan jika hanya satu bit data yang dimodifikasi, sehingga memutus konsistensi rantai.

  4. Verifikasi Blok: Hashing digunakan untuk verifikasi integritas blok. Ketika sebuah blok baru ditambahkan ke Blockchain, hash-nya harus sesuai dengan kriteria tertentu (seperti jumlah angka nol di depan dalam sistem Proof of Work), sehingga proses mining bergantung pada hashing.

  5. Merklization: Merkle Tree adalah struktur data yang digunakan untuk mengelompokkan transaksi di dalam blok Blockchain. Setiap node di pohon ini adalah hash, dan semua hash dalam Merkle Tree berasal dari data transaksi. Penggunaan Merkle Tree memungkinkan efisiensi verifikasi integritas data dalam blok, tanpa perlu memeriksa setiap transaksi satu per satu.

Mengapa Hashing Aman dari Serangan Brute Force

Hashing, khususnya dalam algoritma seperti SHA-256 yang digunakan dalam Bitcoin dan Blockchain lainnya, sangat tahan terhadap serangan brute force karena sifat-sifatnya:

  1. Ukuran Hash yang Sangat Besar: SHA-256 menghasilkan output hash dengan ukuran 256 bit. Jumlah kemungkinan kombinasi untuk serangan brute force adalah 2^256, yang terlalu besar untuk diselesaikan oleh komputer modern dalam waktu yang realistis.

  2. Efek Avalanche: Hash berubah drastis bahkan ketika input diubah sedikit saja. Ini membuat serangan brute force semakin sulit karena setiap perubahan kecil pada input menghasilkan hash yang benar-benar berbeda.

  3. Kecepatan Hashing Terbatas: Meskipun hashing efisien, proses mining pada Blockchain membuat hashing menjadi lebih lambat, khususnya karena adanya persyaratan Proof of Work (misalnya dalam Bitcoin) yang membutuhkan sejumlah besar komputasi untuk menemukan hash yang sesuai dengan kondisi tertentu (seperti sejumlah angka nol di depan hash).

  4. Ketahanan Terhadap Kolisi: Algoritma seperti SHA-256 dirancang sedemikian rupa agar sulit sekali menemukan dua input yang menghasilkan hash yang sama, sehingga meskipun ada upaya brute force, peluang untuk menemukan kolisi sangat kecil.


Contoh Teknik Hashing Menggunakan Python

Berikut adalah contoh penerapan hashing dengan Python yang menghasilkan hash SHA-256, mirip dengan yang ditunjukkan di contoh PHP:

Penjelasan Kode Python:

  1. hashlib: Python menyediakan modul hashlib untuk melakukan berbagai fungsi hash, termasuk SHA-256.

  2. create_sha256_hash(): Fungsi ini menggunakan metode sha256 dari hashlib untuk mengambil input string, mengonversinya ke bytes, dan menghasilkan hash-nya dalam format heksadesimal yang mudah dibaca manusia.

  3. Input Pengguna: Program meminta input teks dari pengguna untuk di-hash dan kemudian menampilkan hasil hash SHA-256 dari teks tersebut.

  4. hexdigest(): Fungsi ini digunakan untuk mengubah hasil hash yang dihasilkan dalam format biner menjadi string heksadesimal, sehingga lebih mudah dibaca dan dipresentasikan.

Kesimpulan

Teknologi hashing dalam Blockchain berperan penting untuk menjaga integritas, keamanan, dan keterkaitan antarblok. Hashing tidak hanya membantu memastikan bahwa data dalam Blockchain tidak dapat diubah tanpa terdeteksi, tetapi juga memungkinkan validasi transaksi secara efisien dan aman. Algoritma hashing yang kuat seperti SHA-256 menawarkan perlindungan yang tinggi terhadap serangan brute force, menjadikannya pilar penting dalam keamanan Blockchain.


Komentar

Postingan populer dari blog ini

GitforDeploy

Git for DevOps

Membuat CryptoCurrency( Mata Uang Kripto) menggunakan python