Hashing mengacu pada proses membuat keluaran tertentu dari data masukan dengan ukuran berbeda. Hal ini dilakukan dengan menggunakan rumus matematika, juga dikenal sebagai fungsi hash (diimplementasikan sebagai algoritma hashing).
Tidak semua fungsi hash melibatkan penggunaan kriptografi, tetapi hanya fungsi yang dirancang khusus untuk tujuan ini, yang disebut fungsi hash kriptografi yang mendasari mata uang kripto. Berkat kerja mereka, blockchain dan sistem terdistribusi lainnya mampu mencapai integritas dan keamanan data tingkat tinggi.
Fungsi hash reguler dan kriptografi bersifat deterministik. Bersikap deterministik berarti selama data masukan tidak berubah, algoritma hashing akan selalu menghasilkan hasil yang sama (dikenal juga sebagai intisari atau hash).
Algoritme hashing dalam mata uang kripto dirancang sedemikian rupa sehingga fungsinya bekerja satu arah, artinya data tidak dapat dikembalikan dalam urutan terbalik tanpa menginvestasikan banyak waktu dan sumber daya untuk melakukan penghitungan. Dengan kata lain, cukup mudah untuk menciptakan suatu keluaran dari suatu masukan, namun relatif sulit untuk membalikkan proses tersebut (menghasilkan suatu keluaran dari suatu masukan). Semakin sulit menemukan nilai input, maka algoritma hashing dianggap semakin aman.
Bagaimana cara kerja fungsi hash?
Jenis fungsi hash yang berbeda menghasilkan ukuran keluaran yang berbeda, namun kemungkinan ukuran keluaran untuk setiap algoritma hashing selalu konstan. Misalnya algoritma SHA-256 hanya dapat menghasilkan keluaran dalam format 256-bit, sedangkan SHA-1 selalu menghasilkan intisari 160-bit.
Untuk mengilustrasikannya, mari kita jalankan kata “Binance” dan “binance” melalui algoritma hashing SHA-256 (yang digunakan dalam Bitcoin).
Perhatikan bahwa perubahan kecil (huruf pertama) menghasilkan nilai hash yang sangat berbeda. Karena kami menggunakan SHA-256, data keluaran akan selalu berukuran tetap 256 bit (atau 64 karakter), berapa pun ukuran masukannya. Selain itu, tidak peduli berapa kali kita menjalankan kedua kata ini melalui algoritme, kedua keluarannya tidak akan berubah karena keduanya konstan.
Dengan cara yang sama, jika kita menjalankan data masukan yang sama melalui algoritma hashing SHA-1, kita akan mendapatkan hasil sebagai berikut:
Perlu dicatat bahwa akronim SHA adalah singkatan dari Secure Hash Algorithms. Ini mengacu pada serangkaian fungsi hash kriptografi yang mencakup algoritma seperti SHA-0 dan SHA-1 bersama dengan grup SHA-2 dan SHA-3. SHA-256 adalah bagian dari grup SHA-2, bersama dengan SHA-512 dan analog lainnya. Saat ini, hanya grup SHA-2 dan SHA-3 yang dianggap aman.
Mengapa ini penting?
Fungsi hash konvensional memiliki beragam kasus penggunaan, termasuk pencarian database, analisis file besar, dan manajemen data. Pada gilirannya, fungsi hash kriptografi banyak digunakan dalam aplikasi keamanan informasi untuk otentikasi pesan dan sidik jari digital. Terkait Bitcoin, fungsi hash kriptografi merupakan bagian integral dari proses penambangan dan juga memainkan peran utama dalam menghasilkan kunci dan alamat baru.
Hashing menunjukkan potensi penuhnya ketika bekerja dengan informasi dalam jumlah besar. Misalnya, Anda dapat menjalankan file atau kumpulan data besar melalui fungsi hash dan kemudian menggunakan outputnya untuk memeriksa keakuratan dan integritas data dengan cepat. Hal ini dimungkinkan karena sifat deterministik dari fungsi hash: masukan akan selalu menghasilkan keluaran terkompresi yang disederhanakan (hash). Metode ini menghilangkan kebutuhan untuk menyimpan dan mengingat data dalam jumlah besar.
Hashing sangat berguna sehubungan dengan teknologi blockchain. Ada beberapa operasi yang dilakukan pada blockchain Bitcoin, termasuk hashing, yang sebagian besar adalah penambangan. Faktanya, hampir semua protokol mata uang kripto mengandalkan hashing untuk menghubungkan dan mengompresi kelompok transaksi menjadi blok, serta untuk menciptakan hubungan kriptografi dan membangun rantai blok secara efisien.
Fungsi hash kriptografi
Sekali lagi, perhatikan bahwa fungsi hash yang menggunakan teknik kriptografi dapat didefinisikan sebagai fungsi hash kriptografi. Untuk memecahkannya, diperlukan upaya yang tak terhitung jumlahnya dalam pemilihan angka secara brute force. Untuk membalikkan fungsi hash kriptografi, Anda perlu memilih data masukan melalui trial and error hingga Anda mendapatkan keluaran yang sesuai. Namun, ada kemungkinan bahwa masukan yang berbeda akan menghasilkan keluaran yang sama, sehingga terjadi tabrakan.
Secara teknis, fungsi hash kriptografi harus memenuhi tiga properti agar dianggap aman. Kita dapat mendeskripsikannya sebagai: resistensi tabrakan, dan resistensi pencarian gambar awal pertama dan kedua.
Sebelum kita mulai melihat setiap properti, mari kita rangkum logikanya dalam tiga kalimat pendek.
Resistensi tabrakan: Tidak mungkin menemukan dua masukan berbeda yang menghasilkan hash yang serupa dengan keluaran.
Resistensi untuk mencari preimage pertama: tidak adanya metode atau algoritma untuk mengembalikan fungsi hash secara terbalik (menemukan masukan dari keluaran tertentu).
Resistensi terhadap pencarian gambar awal kedua: tidak mungkin menemukan masukan kedua yang bersinggungan dengan masukan pertama.
Resistensi tabrakan
Seperti disebutkan sebelumnya, tabrakan terjadi ketika input berbeda menghasilkan hash yang sama. Dengan demikian, fungsi hash dianggap tahan terhadap benturan sampai seseorang mendeteksi adanya benturan. Perhatikan bahwa tabrakan akan selalu ada untuk fungsi hash mana pun, karena jumlah masukan yang tidak terbatas dan jumlah keluaran yang terbatas.
Oleh karena itu, fungsi hash tahan terhadap benturan ketika kemungkinan untuk mendeteksinya sangat rendah sehingga memerlukan komputasi jutaan tahun. Oleh karena itu, meskipun tidak ada fungsi hash yang bebas tabrakan, beberapa di antaranya sangat kuat sehingga dapat dianggap kuat (misalnya, SHA-256).
Di antara berbagai algoritma SHA, grup SHA-0 dan SHA-1 tidak lagi aman karena telah terdeteksi tabrakan di dalamnya. Saat ini, hanya grup SHA-2 dan SHA-3 yang dianggap paling aman dan tahan benturan.
Ketahanan terhadap pencarian gambar awal pertama
Sifat ini erat kaitannya dengan konsep fungsi satu arah. Fungsi hash dianggap tahan terhadap pencarian preimage pertama selama kemungkinannya sangat rendah bahwa seseorang akan dapat menemukan masukan yang dapat menghasilkan keluaran tertentu.
Perhatikan bahwa properti ini berbeda dari yang sebelumnya, karena penyerang perlu menebak masukan berdasarkan keluaran tertentu. Tabrakan jenis ini terjadi ketika seseorang menemukan dua masukan berbeda yang menghasilkan kode keluaran yang sama, tanpa memberi arti apa pun pada data masukan yang digunakan untuk menghasilkannya.
Ketahanan gambar awal sangat berharga untuk keamanan data karena hash sederhana dari sebuah pesan dapat membuktikan keasliannya tanpa harus mengungkapkan informasi tambahan. Dalam praktiknya, banyak penyedia layanan dan aplikasi web menyimpan dan menggunakan hash yang dihasilkan dari kata sandi alih-alih menggunakannya dalam format teks biasa.
Resistensi terhadap pencarian preimage kedua
Untuk menyederhanakan pemahaman Anda, kita dapat mengatakan bahwa jenis stabilitas ini berada di antara dua sifat lainnya. Serangan preimage kedua terdiri dari pencarian input spesifik yang dapat digunakan untuk menghasilkan output yang awalnya dihasilkan oleh input lain yang diketahui.
Dengan kata lain, serangan preimage kedua melibatkan deteksi tabrakan, tetapi alih-alih menemukan dua masukan acak yang menghasilkan hash yang sama, serangan tersebut bertujuan untuk menemukan masukan yang dapat digunakan untuk membuat ulang hash yang awalnya dihasilkan oleh masukan lainnya.
Oleh karena itu, fungsi hash apa pun yang tahan terhadap benturan juga tahan terhadap serangan tersebut, karena serangan tersebut selalu menyiratkan benturan. Namun, masih dimungkinkan untuk melakukan serangan first-preimage pada fungsi tahan tabrakan, karena ini melibatkan pencarian satu masukan melalui satu keluaran.
Pertambangan
Ada banyak langkah dalam penambangan yang dilakukan dengan menggunakan fungsi hash, antara lain pengecekan saldo, menghubungkan input dan output transaksi, dan melakukan hashing pada semua transaksi dalam satu blok hingga membentuk pohon Merkle. Namun salah satu alasan utama blockchain Bitcoin aman adalah karena penambang harus melakukan operasi hashing sebanyak mungkin untuk menemukan solusi yang tepat untuk blok berikutnya.
Seorang penambang harus mencoba memberikan beberapa masukan berbeda saat membuat hash untuk blok kandidatnya. Blok hanya dapat diperiksa jika keluaran dalam bentuk hash dibuat dengan benar dan dimulai dengan sejumlah nol tertentu. Jumlah angka nol menentukan tingkat kesulitan penambangan dan bervariasi tergantung pada hashrate jaringan.
Dalam hal ini, hashrate mewakili jumlah daya komputer yang Anda investasikan untuk menambang Bitcoin. Jika hashrate mulai meningkat, protokol Bitcoin akan secara otomatis menyesuaikan tingkat kesulitan penambangan sehingga rata-rata waktu yang dibutuhkan untuk menambang satu blok tidak lebih dari 10 menit. Jika beberapa penambang memutuskan untuk menghentikan penambangan, yang mengakibatkan penurunan hashrate secara signifikan, kesulitan penambangan akan disesuaikan untuk meringankan upaya komputasi untuk sementara (hingga waktu rata-rata pembuatan blok kembali ke 10 menit).
Perhatikan bahwa penambang tidak perlu mencari tabrakan, karena terbatasnya jumlah hash yang dapat mereka hasilkan sebagai keluaran valid (dimulai dengan sejumlah nol tertentu). Oleh karena itu, ada beberapa kemungkinan solusi untuk blok tertentu dan penambang harus menemukan hanya satu solusi, sesuai dengan ambang batas yang ditentukan oleh tingkat kesulitan penambangan.
Karena penambangan Bitcoin adalah tugas yang mahal, tidak ada alasan bagi penambang untuk menipu sistem, karena hal ini akan mengakibatkan kerugian finansial yang signifikan. Oleh karena itu, semakin banyak penambang yang bergabung dengan blockchain, maka blockchain tersebut akan semakin besar dan kuat.
Kesimpulan
Tidak ada keraguan bahwa fungsi hash adalah salah satu alat dasar ilmu komputer, terutama ketika bekerja dengan data dalam jumlah besar. Jika digabungkan dengan kriptografi, algoritme hashing bisa sangat serbaguna, menawarkan keamanan dan beragam metode autentikasi. Oleh karena itu, fungsi hash kriptografi sangat penting untuk hampir semua jaringan mata uang kripto, sehingga memahami properti dan mekanisme kerjanya tentu berguna bagi siapa pun yang tertarik dengan teknologi blockchain.
