

Hashing adalah proses menghasilkan output berukuran tetap dari input dengan ukuran variatif, menggunakan rumus matematika yang disebut fungsi hash (diimplementasikan sebagai algoritma hashing).
Meski tidak semua fungsi hash menggunakan kriptografi, fungsi hash kriptografi merupakan inti dari cryptocurrency. Dengan fungsi ini, blockchain dan sistem terdistribusi lainnya dapat mencapai tingkat integritas dan keamanan data yang tinggi.
Fungsi hash konvensional maupun kriptografi bersifat deterministik. Artinya, selama input tidak berubah, algoritma hashing akan selalu menghasilkan output yang sama (disebut juga digest atau hash).
Umumnya, algoritma hashing pada cryptocurrency dirancang sebagai fungsi satu arah, sehingga tidak mudah dibalik tanpa waktu dan sumber daya komputasi besar. Artinya, sangat mudah membuat output dari input, namun sangat sulit menghasilkan input hanya dari output. Semakin sulit menemukan input, semakin tinggi tingkat keamanan algoritma hash tersebut.
Setiap fungsi hash menghasilkan output berukuran tetap sesuai algoritmanya. Contohnya, SHA-256 hanya menghasilkan output 256 bit, sedangkan SHA-1 selalu menghasilkan digest 160 bit.
Sebagai contoh, berikut hasil hashing kata "ExampleText" dan "exampletext" dengan algoritma SHA-256 (yang digunakan di Bitcoin):
| Input | Output (256 bit) |
|---|---|
| ExampleText | f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191 |
| exampletext | 59bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2 |
Perubahan kecil (misal pada huruf kapital) menghasilkan hash yang sepenuhnya berbeda. Namun, karena menggunakan SHA-256, output selalu berukuran 256 bit (64 karakter), berapapun ukuran inputnya. Selain itu, tidak peduli berapa kali kedua kata ini di-hash, hasilnya tetap sama.
Jika input yang sama di-hash dengan SHA-1, hasilnya sebagai berikut:
| Input | Output (160 bit) |
|---|---|
| ExampleText | 7f0dc9146570c608ac9d6e0d11f8d409a1ee6ed1 |
| exampletext | e58605c14a76ff98679322cca0eae7b3c4e08936 |
SHA merupakan singkatan dari Secure Hash Algorithms, yaitu serangkaian fungsi hash kriptografi yang mencakup SHA-0, SHA-1, serta kelompok SHA-2 dan SHA-3. SHA-256 adalah bagian dari SHA-2 bersama SHA-512 dan varian lainnya. Saat ini, hanya SHA-2 dan SHA-3 yang dinilai aman.
Fungsi hash konvensional banyak digunakan untuk pencarian basis data, analisis file besar, dan manajemen data. Sementara itu, fungsi hash kriptografi sangat penting di aplikasi keamanan informasi seperti autentikasi pesan dan digital fingerprinting. Pada Bitcoin, fungsi hash kriptografi adalah bagian utama proses mining, serta pembuatan alamat dan kunci baru.
Keunggulan hashing nyata ketika menangani data dalam jumlah besar. Sebagai contoh, sebuah file atau dataset besar dapat di-hash dan hasilnya digunakan untuk verifikasi akurasi dan integritas data secara efisien. Ini dimungkinkan berkat sifat deterministik fungsi hash: input selalu menghasilkan output yang padat dan konsisten (hash). Teknik ini menghilangkan kebutuhan menyimpan data besar secara langsung.
Hashing sangat penting dalam teknologi blockchain. Blockchain Bitcoin memiliki banyak operasi yang melibatkan hashing, terutama dalam proses mining. Hampir semua protokol cryptocurrency mengandalkan hashing untuk mengelompokkan dan memadatkan transaksi ke dalam blok, serta membentuk hubungan kriptografi antar blok sehingga membangun blockchain.
Fungsi hash yang menggunakan teknik kriptografi disebut fungsi hash kriptografi. Umumnya, membobol fungsi hash kriptografi memerlukan sangat banyak upaya brute-force. Untuk "membalikkan" fungsi hash ini, seseorang harus menebak input hingga output yang diinginkan tercapai. Namun, tetap ada kemungkinan dua input berbeda menghasilkan output yang sama, yang disebut "collision".
Secara teknis, fungsi hash kriptografi dinilai aman jika memenuhi tiga sifat: collision resistance, preimage resistance, dan second preimage resistance.
Sebagai ringkasan, ketiga sifat tersebut adalah:
Collision terjadi jika dua input berbeda menghasilkan hash yang sama. Suatu fungsi hash dinilai collision-resistant jika kemungkinan menemukan collision sangat kecil, hingga butuh jutaan tahun komputasi. Collision memang tak mungkin dihindari sepenuhnya, karena input tidak terbatas dan output terbatas, namun SHA-256 dan algoritma kuat lain dianggap tahan collision.
Kelompok SHA-0 dan SHA-1 sudah tidak aman karena collision telah ditemukan. SHA-2 dan SHA-3 masih tahan collision hingga saat ini.
Preimage resistance adalah sifat satu arah: sangat kecil kemungkinan seseorang bisa menemukan input dari output tertentu. Sifat ini berbeda dengan collision resistance, karena pada preimage resistance penyerang berusaha menebak input dari hash yang sudah ada.
Sifat preimage resistance penting untuk melindungi data, sebab hash dari suatu pesan dapat membuktikan keasliannya tanpa membuka isi data. Banyak layanan dan aplikasi web menyimpan hash dari password, bukan password asli, demi keamanan.
Second-preimage resistance berada di antara dua sifat sebelumnya. Serangan second-preimage adalah upaya menemukan input kedua yang menghasilkan hash sama dengan input tertentu yang diketahui.
Dengan kata lain, serangan ini mencari collision, namun bukan sembarang dua input, melainkan satu input yang menghasilkan hash sama dengan hash dari input tertentu.
Fungsi hash yang tahan collision otomatis tahan terhadap serangan second-preimage, karena serangan ini selalu melibatkan collision. Namun serangan preimage tetap dapat terjadi pada fungsi hash yang tahan collision, karena hanya melibatkan satu input dan satu output.
Mining Bitcoin melibatkan banyak tahap penggunaan fungsi hash, seperti memeriksa saldo, menghubungkan input dan output transaksi, serta hashing seluruh transaksi dalam blok untuk membentuk Merkle Tree. Keamanan blockchain Bitcoin didukung oleh fakta bahwa miner harus melakukan banyak operasi hashing untuk menemukan solusi blok yang valid.
Miner harus mencoba berbagai kombinasi input saat menghasilkan hash untuk blok kandidat. Blok hanya dapat divalidasi jika hash output-nya diawali sejumlah nol tertentu. Jumlah nol ini menentukan tingkat kesulitan mining, dan nilainya berubah sesuai hash rate jaringan.
Hash rate menunjukkan total daya komputasi yang dialokasikan untuk mining Bitcoin. Jika hash rate meningkat, protokol Bitcoin akan menaikkan tingkat kesulitan agar rata-rata waktu mining satu blok tetap sekitar 10 menit. Jika hash rate turun, tingkat kesulitan akan diturunkan hingga waktu rata-rata mining kembali ke 10 menit.
Miner tidak harus menemukan collision, karena ada banyak hash valid (yang diawali sejumlah nol tertentu) untuk satu blok. Dengan kata lain, ada banyak solusi, dan miner cukup menemukan satu, sesuai ambang kesulitan mining.
Karena mining Bitcoin memerlukan biaya besar, miner tidak punya insentif untuk melakukan kecurangan, karena itu akan menyebabkan kerugian finansial. Semakin banyak miner bergabung dalam blockchain, semakin besar dan kuat jaringannya.
Fungsi hash adalah alat fundamental dalam ilmu komputer, terutama untuk pengelolaan data dalam jumlah besar. Jika digabungkan dengan kriptografi, algoritma hashing menjadi sangat fleksibel, menyediakan keamanan dan otentikasi dalam berbagai aplikasi. Fungsi hash kriptografi sangat penting untuk hampir semua jaringan cryptocurrency, sehingga memahami sifat dan mekanisme kerjanya sangat membantu bagi siapa saja yang ingin mengenal teknologi blockchain.
Hashing adalah proses mengubah data berukuran berapa pun menjadi output berukuran tetap. Hashing memastikan integritas dan keamanan data di blockchain dengan menciptakan sidik jari unik. Perubahan sekecil apa pun pada data menghasilkan hash yang benar-benar berbeda, sehingga sangat ideal untuk verifikasi dan perlindungan kriptografi.
Fungsi hash memproses data input dan menghasilkan output berukuran tetap melalui algoritma matematika. Input yang sama selalu menghasilkan output identik karena sifat deterministik fungsi hash—fungsi ini memakai aturan komputasi konsisten, sehingga dapat diulang dan andal untuk operasi kriptografi.
Hashing digunakan untuk verifikasi integritas data, tanda tangan digital, autentikasi password, dan keamanan blockchain. Hashing memastikan data tidak dimanipulasi serta memungkinkan verifikasi identitas yang aman di sistem kriptografi.
Hashing menghasilkan output berukuran tetap dan bersifat tidak dapat dibalik, digunakan untuk verifikasi integritas data. Enkripsi dapat dibalik dan melindungi kerahasiaan data. Hashing tidak bisa digunakan untuk mendekripsi data, sedangkan enkripsi bisa didekripsi dengan kunci yang benar.
Fungsi hash yang baik harus collision resistant untuk mencegah konflik, tamper resistant di mana perubahan kecil pada data menghasilkan output sangat berbeda, serta sangat efisien untuk pencarian data secara cepat.
Algoritma hashing yang umum termasuk MD5, SHA-1, dan SHA-256. MD5 menghasilkan hash 128 bit namun memiliki kelemahan keamanan. SHA-256 menghasilkan hash 256 bit dan tingkat keamanan lebih tinggi. SHA-1 sudah tidak direkomendasikan. SHA-256 banyak digunakan di blockchain karena kekuatan dan ketahanan terhadap collision.











