Hash
Apa itu Hash?
Hash adalah rangkaian unik huruf dan angka yang dihasilkan oleh fungsi matematika yang disebut fungsi hash. Ini bertindak seperti sidik jari digital untuk setiap potongan data—baik itu kata sandi, file, atau transaksi blockchain. Misalnya, hashing kata " Blockchain " menggunakan algoritma SHA-256 menghasilkan string dengan panjang tetap seperti 12a8f...71b3 (disingkat untuk kejelasan). Bahkan mengubah satu huruf (misalnya, "blockchain") akan menghasilkan hash yang benar-benar berbeda.
Hash sangat penting untuk memverifikasi integritas data dan mengamankan sistem di seluruh kriptografi, blockchain, dan pengembangan perangkat lunak.
Bagaimana Cara Kerjanya?
Hashing melibatkan tiga langkah utama:
- Input: Data apa pun (teks, angka, file) dimasukkan ke dalam fungsi hash.
- Pemrosesan: Fungsi tersebut mengacak data menggunakan matematika kompleks untuk menciptakan output yang unik.
- Output: Hash dengan panjang tetap dihasilkan, terlepas dari ukuran input.
Properti utama hashing:
- Proses satu arah: Anda tidak dapat merekayasa balik data asli dari hashnya.
- Kecepatan: Fungsi memproses input dengan cepat (misalnya, SHA-256 membutuhkan waktu mikrodetik).
- Efek avalanche: Perubahan input yang sangat kecil (misalnya, menambahkan titik) menciptakan hash yang benar-benar berbeda.
Contoh dunia nyata:
Penambang Bitcoin bersaing untuk menemukan hash yang dimulai dengan beberapa nol (misalnya, 0000000000...) dengan mengubah angka acak (nonce) dalam blok. Penambang pertama yang memecahkan teka-teki ini mendapatkan hadiah Bitcoin. Proses ini, yang disebut Proof of Work, mengamankan jaringan.
Penjelasan Fungsi Hash
Fungsi hash dirancang khusus untuk membuat hash yang membantu memverifikasi integritas data. Persyaratan fungsi tersebut dalam blockchain meliputi:
- Deterministik: Ini berarti input yang sama akan selalu menghasilkan output yang sama. Tidak boleh ada variasi dalam hasil hash kecuali data input berubah.
- Komputasi cepat: Fungsi hash harus mampu mengembalikan hash dari data input dengan cepat yang meningkatkan kecepatan pemrosesan.
- Ketahanan pre-image: Secara komputasi harus tidak mungkin untuk membalikkan fungsi, artinya Anda tidak boleh dapat merekonstruksi data input dari hashnya.
- Perubahan kecil pada input mengubah hash secara signifikan: Bahkan modifikasi kecil pada input harus menghasilkan output hash yang benar-benar berbeda, yang disebut sebagai efek avalanche.
- Tahan terhadap tabrakan: Dua input yang berbeda tidak boleh menghasilkan output hash yang sama.
Fungsi hash umum dalam kripto:
- SHA-256: Digunakan oleh Bitcoin dan sistem tradisional (misalnya, sertifikat TLS/SSL).
- Keccak-256: Pilihan Ethereum untuk kontrak pintar dan alamat dompet.
- Scrypt: Dirancang oleh Litecoin untuk mencegah dominasi penambangan ASIC.
Kasus penggunaan praktis:
Ketika Anda mengirim cryptocurrency, detail transaksi Anda di-hash dan ditambahkan ke blok. Setiap blok mereferensikan hash blok sebelumnya, menciptakan rantai yang tidak dapat dipatahkan. Jika seseorang mengubah transaksi masa lalu, setiap hash berikutnya akan berubah, segera memberi tahu jaringan tentang adanya perusakan.