Hashing adalah proses menghasilkan keluaran berukuran tetap dari masukan berukuran variabel. Proses ini dicapai melalui rumus matematika yang disebut "fungsi hash" (diimplementasikan sebagai algoritma hashing).

Tidak semua fungsi hash melibatkan penggunaan kriptografi, namun "fungsi hash kriptografi" adalah inti dari mata uang kripto. Berkat fungsi hash kriptografi, integritas dan keamanan data tingkat tinggi dapat dicapai di blockchain dan sistem terdistribusi lainnya.

Baik fungsi hash tradisional maupun fungsi hash kriptografi bersifat deterministik. Determinisme mengacu pada fakta bahwa algoritma hashing akan selalu menghasilkan keluaran yang sama (disebut juga "intisari" atau "nilai hash") selama masukannya tidak berubah.

Biasanya, algoritme hashing mata uang kripto dirancang untuk menjadi fungsi satu arah, artinya algoritme tersebut tidak dapat dipulihkan dengan mudah tanpa waktu dan sumber daya komputasi yang signifikan. Dengan kata lain, sangat mudah untuk membuat keluaran dari suatu masukan, namun relatif sulit untuk membuat masukan dari suatu keluaran secara terbalik. Secara umum, semakin sulit input ditemukan, semakin aman algoritma hashingnya.


Bagaimana cara kerja fungsi hash?

Fungsi hash yang berbeda menghasilkan keluaran dengan ukuran berbeda, namun ukuran keluaran setiap algoritma hashing selalu sama. Misalnya algoritma SHA-256 hanya dapat menghasilkan keluaran 256-bit, sedangkan SHA-1 selalu menghasilkan intisari 160-bit.

Untuk mengilustrasikannya, kami menjalankan kata “Binance” dan “binance” melalui algoritma hashing SHA-256 (algoritme yang digunakan dalam Bitcoin).

SHA-256

memasuki

Keluaran (256 bit)

binance

f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191

binance

59bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2


Perhatikan bahwa perubahan kecil pada kapitalisasi huruf pertama akan menghasilkan nilai hash yang sangat berbeda. Terlepas dari panjang nilai masukan, keluaran yang menggunakan SHA-256 selalu memiliki panjang tetap 256 bit (atau 64 karakter). Selain itu, berapa kali pun algoritme menjalankan kedua kata ini, keluaran keduanya tetap sama.

Sebaliknya, jika Anda menjalankan input yang sama melalui algoritma hashing SHA-1, Anda mendapatkan hasil berikut:

SHA-1

memasuki

Keluaran (160 bit)

binance

7f0dc9146570c608ac9d6e0d11f8d409a1ee6ed1

binance

e58605c14a76ff98679322cca0eae7b3c4e08936


Harap dicatat bahwa "SHA" adalah singkatan dari Algoritma Hash Aman. Algoritme mengacu pada sekumpulan fungsi hash kriptografi, yang mencakup algoritme SHA-0 dan SHA-1, serta kumpulan SHA-2 dan SHA-3. SHA-256, bersama dengan SHA-512 dan varian lainnya, adalah bagian dari grup SHA-2. Saat ini hanya grup SHA-2 dan SHA-3 yang dianggap aman.


Apa pentingnya fungsi hash?

Fungsi hash tradisional memiliki beragam kasus penggunaan, termasuk pencarian database, analisis file besar, dan manajemen data. Fungsi hash kriptografi banyak digunakan dalam aplikasi keamanan informasi seperti otentikasi pesan dan sidik jari digital. Dalam kasus Bitcoin, fungsi hash kriptografi merupakan bagian integral dari proses penambangan, yang memengaruhi alamat baru dan pembuatan kunci.

Operasi hash benar-benar ampuh saat memproses informasi dalam jumlah besar. Misalnya, jalankan file besar atau kumpulan data melalui fungsi hash, lalu gunakan outputnya untuk memverifikasi keakuratan dan kelengkapan data dengan cepat. Fungsi hash berfungsi karena bersifat deterministik: masukan selalu menghasilkan keluaran yang dikompresi dan disederhanakan (yaitu, nilai hash). Teknologi ini menghilangkan kebutuhan untuk menyimpan dan “mengingat” data dalam jumlah besar.

Operasi hash sangat berguna di bidang teknologi blockchain. Blockchain Bitcoin memiliki banyak operasi yang melibatkan operasi hash, yang sebagian besar merupakan bagian dari proses penambangan. Faktanya, hampir semua protokol mata uang kripto mengandalkan hashing untuk menghubungkan kelompok transaksi dan mengompresnya menjadi blok, sekaligus menghasilkan tautan kriptografi antar blok individual, yang secara efektif menciptakan blockchain.


fungsi hash kriptografi

Demikian pula, fungsi hash yang menerapkan teknik kriptografi dapat didefinisikan sebagai fungsi hash kriptografi. Secara umum, memecahkan fungsi hash kriptografi memerlukan upaya brute force yang tak terhitung jumlahnya. Untuk "memulihkan" fungsi hash kriptografi, tebak masukan melalui coba-coba hingga keluaran yang sesuai dihasilkan. Namun, tidak menutup kemungkinan juga input yang berbeda menghasilkan output yang sama persis, sehingga terjadi “konflik”.

Secara teknis, fungsi hash kriptografi harus memiliki tiga properti agar dianggap efektif dalam menjamin keamanan. Tiga atribut utama tersebut adalah anti-tabrakan, anti-pra-gambar, dan anti-pra-gambar kedua.

Sebelum membahas masing-masing atribut satu per satu, mari kita rangkum secara singkat logika masing-masing atribut.

  • Resistensi tabrakan: Tidak mungkin dua input berbeda menghasilkan output nilai hash yang sama.

  • Anti-imageability: Tidak mungkin untuk "memulihkan" fungsi hash (yaitu masukan tidak dapat ditemukan dari keluaran tertentu).

  • Resistensi pragambar kedua: Tidak mungkin menemukan masukan lain yang bertentangan dengan masukan tertentu.


resistensi konflik

Seperti disebutkan sebelumnya, tabrakan terjadi ketika input berbeda menghasilkan nilai hash yang sama persis. Oleh karena itu, fungsi hash dianggap tahan benturan selama tidak ada yang mendeteksi benturan. Perhatikan bahwa karena kemungkinan masukan tidak terbatas dan kemungkinan keluaran terbatas, selalu ada benturan dengan fungsi hash.

Dengan asumsi kemungkinan ditemukannya tumbukan hanya dalam jutaan tahun, fungsi hash dapat dikatakan tahan tumbukan. Oleh karena itu, meskipun pada kenyataannya tidak ada fungsi hash yang bebas tabrakan, beberapa di antaranya (seperti SHA-256) dianggap tahan benturan selama fungsi tersebut cukup kuat.

Di antara berbagai algoritma SHA, grup SHA-0 dan SHA-1 mengalami konflik, sehingga tidak aman lagi. Saat ini set SHA-2 dan SHA-3 dianggap tahan benturan.


Anti-citra

Sifat anti-ikonik berkaitan dengan konsep fungsi satu arah. Fungsi hash dikatakan anti-citra, dengan asumsi bahwa kemungkinan menemukan masukan yang menghasilkan keluaran tertentu sangat rendah.

Perhatikan bahwa penyerang melihat keluaran tertentu untuk menebak masukan tersebut, jadi properti ini berbeda dari resistensi tabrakan. Lebih jauh lagi, dua input berbeda yang menghasilkan output yang sama akan mengalami konflik, namun tidak menjadi masalah input mana yang digunakan.

Properti anti-imageability sangat berharga untuk melindungi data karena hash sederhana dari sebuah pesan dapat membuktikan keasliannya tanpa mengungkapkan informasinya. Dalam praktiknya, banyak penyedia layanan dan aplikasi web menyimpan dan menggunakan hash yang dihasilkan dari kata sandi, bukan kata sandi dalam teks biasa.


Resistensi terhadap preimage kedua

Singkatnya, resistensi terhadap preimage kedua terletak di antara dua properti yang disebutkan di atas. Serangan preimage kedua terjadi jika seseorang dapat menemukan masukan tertentu yang menghasilkan keluaran yang sama dengan masukan lain yang diketahui.

Dengan kata lain, serangan preimage kedua terkait dengan menemukan konflik, namun alih-alih mencari dua masukan acak yang menghasilkan nilai hash yang sama, Anda mencari masukan lain yang menghasilkan nilai hash yang sama berdasarkan masukan tertentu.

Serangan preimage kedua biasanya berarti ada konflik. Oleh karena itu, fungsi hash yang tahan tabrakan juga tahan terhadap serangan preimage kedua. Namun, menjadi tahan tabrakan berarti satu masukan dapat ditemukan dari satu keluaran, sehingga penyerang masih bisa melancarkan serangan preimage terhadap fungsi tahan tabrakan.


Penambangan Mata Uang Kripto

Fungsi hash digunakan dalam beberapa langkah dalam penambangan Bitcoin, seperti memeriksa saldo, menggabungkan input dan output transaksi, dan melakukan hashing transaksi dalam blok yang sama untuk membentuk pohon Merkle. Namun, salah satu alasan utama mengapa blockchain Bitcoin aman adalah karena para penambang perlu melakukan operasi hashing yang tak terhitung jumlahnya sebelum mereka akhirnya dapat menemukan solusi valid untuk blok berikutnya.

Secara khusus, penambang harus mencoba beberapa input berbeda saat membuat kandidat hash blok. Pada dasarnya, penambang hanya dapat memvalidasi sebuah blok jika hash keluaran yang dihasilkan dimulai dengan sejumlah nol tertentu. Jumlah angka nol menentukan kesulitan penambangan dan perubahannya seiring dengan hashrate yang didedikasikan untuk jaringan.

Dalam hal ini, tingkat hash mewakili jumlah daya komputasi yang digunakan untuk menambang Bitcoin. Jika tingkat hash jaringan meningkat, protokol Bitcoin akan secara otomatis menyesuaikan kesulitan penambangan sehingga waktu rata-rata yang diperlukan untuk menghasilkan blok tetap mendekati 10 menit. Sebaliknya, jika banyak penambang memutuskan untuk menghentikan penambangan, sehingga menyebabkan tingkat hash turun secara signifikan, kesulitan penambangan akan diturunkan hingga waktu blok rata-rata kembali ke 10 menit.

Perhatikan bahwa penambang dapat menghasilkan beberapa hash sebagai keluaran yang valid (dimulai dengan sejumlah angka nol tertentu), sehingga mereka tidak perlu mencari tabrakan. Ada beberapa kemungkinan solusi untuk sebuah blok, namun tergantung pada ambang kesulitan penambangan, penambang hanya perlu menemukan salah satu solusi.

Penambangan Bitcoin adalah tugas berbiaya tinggi, dan penambang tidak perlu menipu sistem, yang malah akan menyebabkan kerugian finansial yang besar. Semakin banyak penambang yang bergabung dengan blockchain, semakin besar dan kuat blockchain tersebut.


Meringkaskan

Tidak ada keraguan bahwa fungsi hash adalah alat penting dalam ilmu komputer, dan kemampuannya untuk memproses data dalam jumlah besar sangat luar biasa. Dikombinasikan dengan kriptografi, algoritma hashing dapat digunakan dalam berbagai cara untuk memberikan keamanan dan otentikasi dalam berbagai cara. Untuk hampir semua jaringan mata uang kripto, fungsi hash kriptografi sangat penting. Oleh karena itu, jika Anda tertarik dengan teknologi blockchain, akan sangat bermanfaat jika memahami properti dan mekanisme pengoperasian fungsi hash kriptografi.