Pengantar
Hashing mengacu pada proses menghasilkan output ukuran tetap dari input ukuran variabel. Ini dilakukan melalui penggunaan rumus matematika yang dikenal sebagai fungsi hash (diimplementasikan sebagai algoritma hashing).
Meskipun tidak semua fungsi hash melibatkan penggunaan kriptografi, yang disebut fungsi hash kriptografi adalah inti dari mata uang kripto. Berkat mereka, blockchain dan sistem terdistribusi lainnya dapat mencapai tingkat integritas dan keamanan data yang signifikan.
Baik fungsi hash konvensional maupun kriptografi bersifat deterministik. Menjadi deterministik berarti selama input tidak berubah, algoritma hashing akan selalu menghasilkan output yang sama (juga dikenal sebagai intisari atau hash).
Biasanya, algoritma hashing cryptocurrency dirancang sebagai fungsi satu arah, yang berarti mereka tidak dapat dengan mudah dikembalikan tanpa banyak waktu dan sumber daya komputasi. Dengan kata lain, cukup mudah untuk membuat output dari input, tetapi relatif sulit untuk pergi ke arah yang berlawanan (untuk menghasilkan input dari output saja). Secara umum, semakin sulit untuk menemukan input, semakin aman algoritma hashing dianggap.
Bagaimana cara kerja Fungsi Hash?
Fungsi hash yang berbeda akan menghasilkan keluaran dengan ukuran yang berbeda, tetapi kemungkinan ukuran keluaran untuk setiap algoritme hashing selalu konstan. Misalnya, algoritma SHA-256 hanya dapat menghasilkan keluaran 256 bit, sedangkan SHA-1 akan selalu menghasilkan intisari 160 bit.
Sebagai ilustrasi, mari jalankan kata “Binance” dan “binance” melalui algoritme hashing SHA-256 (yang digunakan dalam Bitcoin).
SHA-256
| Input | Output (256 bit) |
|---|---|
| Binance | f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191 |
| binance | 59bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2 |
Selain itu, tidak peduli berapa kali kita menjalankan dua kata melalui algoritme, kedua keluaran akan tetap konstan.Sebaliknya, jika kita menjalankan input yang sama melalui algoritme hashing SHA-1, kita akan mendapatkan hasil sebagai berikut :
SHA-1
| Input | Output (160 bit) |
|---|---|
| Binance | 7f0dc9146570c608ac9d6e0d11f8d409a1ee6ed1 |
| binance | e58605c14a76ff98679322cca0eae7b3c4e08936 |
Mengapa Ini Sangat Penting?
Fungsi hash konvensional memiliki berbagai kasus penggunaan, termasuk pencarian basis data, analisis file besar, dan manajemen data. Di sisi lain, fungsi hash kriptografi banyak digunakan dalam aplikasi keamanan informasi, seperti autentikasi pesan dan sidik jari digital. Dalam hal Bitcoin, fungsi hash kriptografi adalah bagian penting dari proses penambangan dan juga berperan dalam pembuatan alamat dan kunci baru.
Kekuatan sebenarnya dari hashing muncul ketika berhadapan dengan sejumlah besar informasi. Misalnya, seseorang dapat menjalankan file besar atau kumpulan data melalui fungsi hash dan kemudian menggunakan keluarannya untuk memverifikasi keakuratan dan integritas data dengan cepat. Ini dimungkinkan karena sifat deterministik fungsi hash: input akan selalu menghasilkan output yang disederhanakan dan diringkas (hash). Teknik seperti itu menghilangkan kebutuhan untuk menyimpan dan "mengingat" data dalam jumlah besar.
Hashing sangat berguna dalam konteks teknologi blockchain. Blockchain Bitcoin memiliki beberapa operasi yang melibatkan hashing, sebagian besar dalam proses penambangan. Faktanya, hampir semua protokol mata uang kripto bergantung pada hashing untuk menautkan dan memadatkan kelompok transaksi ke dalam blok, dan juga untuk menghasilkan tautan kriptografi di antara setiap blok, yang secara efektif membuat blockchain.
Fungsi Hash dalam Cryptography
Sekali lagi, fungsi hash yang menyebarkan teknik kriptografi dapat didefinisikan sebagai fungsi hash kriptografi. Secara umum, memecahkan fungsi hash kriptografi membutuhkan segudang upaya kekerasan. Bagi seseorang untuk "mengembalikan" fungsi hash kriptografi, mereka perlu menebak apa inputnya dengan coba-coba hingga output yang sesuai dihasilkan. Namun, ada juga kemungkinan masukan yang berbeda menghasilkan keluaran yang persis sama, dalam hal ini terjadi "tabrakan".
Secara teknis, fungsi hash kriptografi perlu mengikuti tiga properti agar dianggap aman secara efektif. Kami dapat menggambarkannya sebagai resistensi tabrakan, resistensi gambar awal, dan resistensi gambar kedua.
Sebelum membahas masing-masing properti, mari kita rangkum logikanya dalam tiga kalimat singkat.
- Resistensi tabrakan: tidak mungkin menemukan dua input berbeda yang menghasilkan hash yang sama sebagai output.
- Resistensi gambar awal: tidak mungkin untuk "mengembalikan" fungsi hash (temukan input dari output yang diberikan).
- Resistensi preimage kedua: tidak mungkin menemukan input kedua yang bertabrakan dengan input tertentu.
Resistensi benturan
Seperti disebutkan, tabrakan terjadi ketika masukan yang berbeda menghasilkan hash yang sama persis. Dengan demikian, fungsi hash dianggap tahan benturan hingga seseorang menemukan benturan. Perhatikan bahwa tabrakan akan selalu ada untuk setiap fungsi hash karena input yang mungkin tidak terbatas, sedangkan kemungkinan outputnya terbatas.
Dengan kata lain, fungsi hash adalah tahan tabrakan ketika kemungkinan menemukan tabrakan sangat rendah sehingga membutuhkan perhitungan jutaan tahun. Jadi, terlepas dari kenyataan bahwa tidak ada fungsi hash yang bebas tabrakan, beberapa di antaranya cukup kuat untuk dianggap tahan (mis., SHA-256).
Di antara berbagai algoritme SHA, grup SHA-0 dan SHA-1 tidak lagi aman karena telah ditemukan tabrakan. Saat ini, grup SHA-2 dan SHA-3 dianggap tahan terhadap benturan.
Resistansi gambaran awal
Sifat resistensi preimage terkait dengan konsep fungsi satu arah. Fungsi hash dianggap tahan terhadap preimage ketika kemungkinan seseorang menemukan input yang menghasilkan output tertentu sangat rendah.
Perhatikan bahwa properti ini berbeda dari yang sebelumnya karena penyerang akan mencoba menebak apa inputnya dengan melihat output yang diberikan. Tabrakan, di sisi lain, terjadi ketika seseorang menemukan dua input berbeda yang menghasilkan output yang sama, tetapi tidak masalah input mana yang digunakan.
Sifat resistensi preimage berharga untuk melindungi data karena hash sederhana dari sebuah pesan dapat membuktikan keasliannya, tanpa perlu mengungkapkan informasinya. Dalam praktiknya, banyak penyedia layanan dan aplikasi web menyimpan dan menggunakan hash yang dihasilkan dari kata sandi daripada kata sandi dalam teks biasa.
Resistensi gambaran kedua
Untuk menyederhanakan, kita dapat mengatakan bahwa resistensi gambar kedua berada di antara dua properti lainnya. Serangan preimage kedua terjadi ketika seseorang dapat menemukan input tertentu yang menghasilkan output yang sama dari input lain yang sudah mereka ketahui.
Dengan kata lain, second-preimage attack melibatkan menemukan tabrakan, tetapi alih-alih mencari dua input acak yang menghasilkan hash yang sama, mereka mencari input yang menghasilkan hash yang sama yang dihasilkan oleh input spesifik lainnya.
Oleh karena itu, setiap fungsi hash yang tahan terhadap benturan juga tahan terhadap serangan preimage kedua, karena yang terakhir akan selalu menyiratkan benturan. Namun, seseorang masih dapat melakukan serangan preimage pada fungsi tahan benturan karena ini menunjukkan pencarian satu input dari satu output.
Mining
Ada banyak langkah dalam penambangan Bitcoin yang melibatkan fungsi hash, seperti memeriksa saldo, menghubungkan input dan output transaksi, dan transaksi hashing dalam satu blok untuk membentuk Pohon Merkle. Tapi salah satu alasan utama blockchain Bitcoin aman adalah kenyataan bahwa penambang perlu melakukan banyak sekali operasi hashing untuk akhirnya menemukan solusi yang valid untuk blok berikutnya.
Secara khusus, seorang penambang harus mencoba beberapa input berbeda saat membuat nilai hash untuk blok kandidatnya. Intinya, mereka hanya akan dapat memvalidasi blok mereka jika mereka menghasilkan hash keluaran yang dimulai dengan angka nol tertentu. Jumlah nol menentukan kesulitan penambangan, dan bervariasi sesuai dengan tingkat hash yang dikhususkan untuk jaringan.
Dalam hal ini, tingkat hash mewakili berapa banyak daya komputer yang diinvestasikan dalam penambangan Bitcoin. Jika tingkat hash jaringan meningkat, protokol Bitcoin akan secara otomatis menyesuaikan kesulitan penambangan sehingga waktu rata-rata yang dibutuhkan untuk menambang satu blok tetap mendekati 10 menit. Sebaliknya, jika beberapa penambang memutuskan untuk menghentikan penambangan, menyebabkan tingkat hash turun secara signifikan, kesulitan penambangan akan disesuaikan, sehingga lebih mudah untuk menambang (hingga waktu blok rata-rata kembali menjadi 10 menit).
Perhatikan bahwa penambang tidak harus menemukan tabrakan karena ada beberapa hash yang dapat mereka hasilkan sebagai keluaran yang valid (dimulai dengan angka nol tertentu). Jadi ada beberapa kemungkinan solusi untuk blok tertentu, dan penambang hanya perlu menemukan salah satunya - sesuai dengan ambang batas yang ditentukan oleh kesulitan penambangan.
Karena penambangan Bitcoin adalah tugas yang memakan biaya, penambang tidak memiliki alasan untuk menipu sistem karena akan menyebabkan kerugian finansial yang signifikan. Semakin banyak penambang bergabung dengan blockchain, semakin besar dan kuat hasilnya.
Penutup
Tidak diragukan lagi bahwa fungsi hash adalah alat penting dalam ilmu komputer, terutama saat menangani data dalam jumlah besar. Saat dikombinasikan dengan kriptografi, algoritme hashing bisa sangat serbaguna, menawarkan keamanan dan autentikasi dalam berbagai cara.
Dengan demikian, fungsi hash kriptografi sangat penting untuk hampir semua jaringan mata uang kripto, jadi memahami properti dan mekanisme kerjanya tentu sangat membantu bagi siapa saja yang tertarik dengan teknologi blockchain.
Rate This Article
Thanks for reading: Apa itu Hashing dalam Blockchain?, Stay tune to get latest Information.
