Hashing mengacu pada proses menghasilkan output dengan ukuran tetap dari input dengan ukuran variabel. Ini dilakukan melalui rumus matematis yang dikenal sebagai fungsi hash ( yang diimplementasikan sebagai algoritma hash).
Meskipun tidak semua fungsi hash melibatkan kriptografi, yang disebut fungsi hash kriptografi sangat penting di dunia kripto. Berkat mereka, blockchain dan sistem terdistribusi lainnya mencapai tingkat integritas dan keamanan data yang signifikan, sesuatu yang secara pribadi saya temukan menarik.
Fungsi hash konvensional dan kriptografi bersifat deterministik. Ini berarti bahwa, selama masukan tidak berubah, algoritma akan selalu menghasilkan keluaran yang sama ( yang juga dikenal sebagai ringkasan atau hash). Saya merasa luar biasa bagaimana sesuatu yang begitu kompleks bisa begitu dapat diprediksi.
Algoritma hash dalam cryptocurrency dirancang sebagai fungsi satu arah, yang berarti bahwa mereka tidak dapat dengan mudah dibalik tanpa sumber daya komputasi yang sangat besar. Sangat mudah untuk membuat keluaran dari masukan, tetapi hampir tidak mungkin untuk melakukan sebaliknya. Secara umum, semakin sulit menemukan masukan, semakin aman algoritma tersebut dianggap. Dan percayalah, beberapa dari algoritma ini praktis tidak dapat ditembus.
Bagaimana cara kerja fungsi hash?
Fungsi hash yang berbeda menghasilkan keluaran dengan ukuran yang berbeda, tetapi ukuran keluaran untuk setiap algoritma selalu konstan. Misalnya, SHA-256 hanya dapat menghasilkan keluaran 256 bit, sementara SHA-1 selalu menghasilkan ringkasan 160 bit.
Untuk mengilustrasikannya, mari kita jalankan kata-kata "Binance" dan "binance" melalui algoritma SHA-256 ( yang digunakan di Bitcoin).
Lihat bagaimana perubahan kecil (huruf pertama menjadi huruf kapital) menghasilkan hash yang sama sekali berbeda? Saya terpesona oleh kepekaan ini. Tetapi dengan menggunakan SHA-256, keluaran selalu memiliki ukuran tetap 256 bit (64 karakter) terlepas dari ukuran input.
Di sisi lain, jika kita menjalankan input yang sama melalui SHA-1, kita mendapatkan:
SHA berarti Secure Hash Algorithms, mengacu pada serangkaian fungsi hash kriptografi yang mencakup SHA-0, SHA-1, SHA-2, dan SHA-3. SHA-256 termasuk dalam kelompok SHA-2. Saat ini, hanya SHA-2 dan SHA-3 yang dianggap aman, yang membuat saya mempertanyakan mengapa beberapa sistem masih menggunakan algoritma yang lebih tua.
Mengapa mereka penting?
Fungsi hash konvensional memiliki banyak kegunaan: pencarian dalam basis data, analisis file besar, dan manajemen data. Fungsi hash kriptografi digunakan secara luas dalam keamanan komputer, otentikasi pesan, dan identifikasi digital. Di Bitcoin, mereka sangat penting untuk penambangan dan pembuatan alamat serta kunci.
Kekuatan sejati dari hashing muncul dengan jumlah informasi yang besar. Anda dapat menjalankan file besar melalui fungsi hash dan menggunakan keluarannya untuk dengan cepat memverifikasi akurasi dan integritas data. Ini menghilangkan kebutuhan untuk menyimpan dan "mengingat" sejumlah besar informasi, sesuatu yang saya anggap brilian dalam kesederhanaannya.
Hashing sangat berguna dalam blockchain. Rantai Bitcoin memiliki banyak operasi yang melibatkan hashing, terutama dalam penambangan. Hampir semua protokol kripto bergantung pada hashing untuk menghubungkan transaksi dalam blok dan membuat tautan kriptografi di antara mereka, secara efektif membentuk blockchain.
Fungsi hash kriptografi
Fungsi hash yang menerapkan teknik kriptografi dapat didefinisikan sebagai fungsi hash kriptografi. Memecahkan salah satu dari fungsi ini membutuhkan ujian brute force yang tidak terhingga. Untuk "mengembalikan" fungsi hash kriptografi, seseorang perlu menebak input melalui coba-coba hingga menghasilkan output yang sesuai. Namun, ada kemungkinan bahwa input yang berbeda menghasilkan output yang persis sama, menyebabkan "tabrakan".
Secara teknis, sebuah fungsi hash kriptografis harus mengikuti tiga sifat untuk dianggap aman:
Resistensi terhadap perlanggaran: tidak mungkin menemukan dua input yang berbeda yang menghasilkan hash yang sama
Ketahanan terhadap pre-image: tidak mungkin "mengembalikan" fungsi hash
Ketahanan terhadap pre-image kedua: tidak mungkin menemukan entri lain yang bertabrakan dengan entri tertentu
Resistensi terhadap tabrakan
Sebuah tabrakan terjadi ketika entri yang berbeda menghasilkan hash yang persis sama. Sebuah fungsi hash dianggap tahan terhadap tabrakan hingga seseorang menemukannya. Akan selalu ada tabrakan untuk setiap fungsi hash karena entri yang mungkin tidak terbatas, sementara keluaran adalah terbatas.
Fungsi hash dikatakan tahan terhadap kolisi ketika probabilitas menemukan kolisi begitu rendah sehingga memerlukan jutaan tahun perhitungan. SHA-0 dan SHA-1 tidak lagi aman karena kolisi telah ditemukan. Saat ini, SHA-2 dan SHA-3 dianggap tahan terhadap kolisi.
Resistensi terhadap pra-citra
Properti ini terkait dengan konsep fungsi searah. Fungsi hash tahan terhadap pre-image ketika ada kemungkinan sangat kecil bahwa seseorang akan menemukan input yang menghasilkan output tertentu.
Properti ini berharga untuk perlindungan data karena sebuah hash sederhana dapat membuktikan keaslian pesan tanpa mengungkapkan informasi. Banyak penyedia web menyimpan hash kata sandi alih-alih kata sandi dalam teks biasa, sesuatu yang seharusnya dilakukan semua orang, menurut pendapat saya.
Resistensi terhadap pre-image kedua
Sebuah serangan pre-image kedua terjadi ketika seseorang menemukan sebuah input spesifik yang menghasilkan output yang sama dengan input lain yang dikenal. Ini melibatkan menemukan sebuah tabrakan, tetapi dengan mencari input yang menghasilkan hash yang sama dengan input spesifik lainnya.
Setiap fungsi hash yang tahan terhadap tabrakan juga tahan terhadap serangan pra-citra kedua. Namun, masih mungkin untuk melakukan serangan pra-citra pada fungsi yang tahan terhadap tabrakan.
Penambangan
Penambangan Bitcoin melibatkan banyak operasi hash: verifikasi saldo, pengikatan input dan output transaksi, dan hash transaksi dalam sebuah blok untuk membentuk pohon Merkle. Namun, yang benar-benar mengamankan blockchain Bitcoin adalah bahwa para penambang harus melakukan operasi hash yang tak terhingga untuk menemukan solusi valid untuk blok berikutnya.
Seorang penambang harus mencoba beberapa input yang berbeda saat membuat nilai hash untuk blok kandidatnya. Dia hanya dapat memvalidasi bloknya jika menghasilkan hash yang dimulai dengan sejumlah nol tertentu. Jumlah ini menentukan kesulitan penambangan dan bervariasi tergantung pada hashrate yang didedikasikan untuk jaringan.
Hashrate menunjukkan seberapa banyak daya komputasi yang diinvestasikan dalam penambangan. Jika meningkat, protokol Bitcoin akan secara otomatis menyesuaikan kesulitan untuk menjaga rata-rata waktu penambangan sekitar 10 menit. Jika beberapa penambang berhenti menambang, kesulitan akan menurun.
Para penambang tidak perlu menemukan tabrakan karena ada beberapa hash valid ( yang dimulai dengan sejumlah nol ). Ada banyak solusi yang mungkin untuk blok tertentu, dan para penambang hanya perlu menemukan satu.
Karena penambangan itu mahal, para penambang tidak memiliki alasan untuk menipu sistem, karena itu akan menyebabkan kerugian finansial yang signifikan. Semakin banyak penambang dalam sebuah blockchain, semakin kuat jaringan tersebut.
Tanpa diragukan lagi, fungsi hash adalah alat yang sangat penting dalam komputer, terutama dengan jumlah data yang besar. Dipadukan dengan kriptografi, mereka menawarkan keamanan dan autentikasi dengan berbagai cara. Mereka sangat penting untuk hampir semua jaringan kripto, sehingga memahami sifat dan mekanismenya bermanfaat bagi siapa saja yang tertarik pada blockchain.
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
Apa itu hash?
Hashing mengacu pada proses menghasilkan output dengan ukuran tetap dari input dengan ukuran variabel. Ini dilakukan melalui rumus matematis yang dikenal sebagai fungsi hash ( yang diimplementasikan sebagai algoritma hash).
Meskipun tidak semua fungsi hash melibatkan kriptografi, yang disebut fungsi hash kriptografi sangat penting di dunia kripto. Berkat mereka, blockchain dan sistem terdistribusi lainnya mencapai tingkat integritas dan keamanan data yang signifikan, sesuatu yang secara pribadi saya temukan menarik.
Fungsi hash konvensional dan kriptografi bersifat deterministik. Ini berarti bahwa, selama masukan tidak berubah, algoritma akan selalu menghasilkan keluaran yang sama ( yang juga dikenal sebagai ringkasan atau hash). Saya merasa luar biasa bagaimana sesuatu yang begitu kompleks bisa begitu dapat diprediksi.
Algoritma hash dalam cryptocurrency dirancang sebagai fungsi satu arah, yang berarti bahwa mereka tidak dapat dengan mudah dibalik tanpa sumber daya komputasi yang sangat besar. Sangat mudah untuk membuat keluaran dari masukan, tetapi hampir tidak mungkin untuk melakukan sebaliknya. Secara umum, semakin sulit menemukan masukan, semakin aman algoritma tersebut dianggap. Dan percayalah, beberapa dari algoritma ini praktis tidak dapat ditembus.
Bagaimana cara kerja fungsi hash?
Fungsi hash yang berbeda menghasilkan keluaran dengan ukuran yang berbeda, tetapi ukuran keluaran untuk setiap algoritma selalu konstan. Misalnya, SHA-256 hanya dapat menghasilkan keluaran 256 bit, sementara SHA-1 selalu menghasilkan ringkasan 160 bit.
Untuk mengilustrasikannya, mari kita jalankan kata-kata "Binance" dan "binance" melalui algoritma SHA-256 ( yang digunakan di Bitcoin).
SHA-256 Masuk: Binance Keluar: f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191
Masuk: binance Salida: 59bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2
Lihat bagaimana perubahan kecil (huruf pertama menjadi huruf kapital) menghasilkan hash yang sama sekali berbeda? Saya terpesona oleh kepekaan ini. Tetapi dengan menggunakan SHA-256, keluaran selalu memiliki ukuran tetap 256 bit (64 karakter) terlepas dari ukuran input.
Di sisi lain, jika kita menjalankan input yang sama melalui SHA-1, kita mendapatkan:
SHA-1 Masuk: Binance Keluar: 7f0dc9146570c608ac9d6e0d11f8d409a1ee6ed1
Masuk: binance Keluar: e58605c14a76ff98679322cca0eae7b3c4e08936
SHA berarti Secure Hash Algorithms, mengacu pada serangkaian fungsi hash kriptografi yang mencakup SHA-0, SHA-1, SHA-2, dan SHA-3. SHA-256 termasuk dalam kelompok SHA-2. Saat ini, hanya SHA-2 dan SHA-3 yang dianggap aman, yang membuat saya mempertanyakan mengapa beberapa sistem masih menggunakan algoritma yang lebih tua.
Mengapa mereka penting?
Fungsi hash konvensional memiliki banyak kegunaan: pencarian dalam basis data, analisis file besar, dan manajemen data. Fungsi hash kriptografi digunakan secara luas dalam keamanan komputer, otentikasi pesan, dan identifikasi digital. Di Bitcoin, mereka sangat penting untuk penambangan dan pembuatan alamat serta kunci.
Kekuatan sejati dari hashing muncul dengan jumlah informasi yang besar. Anda dapat menjalankan file besar melalui fungsi hash dan menggunakan keluarannya untuk dengan cepat memverifikasi akurasi dan integritas data. Ini menghilangkan kebutuhan untuk menyimpan dan "mengingat" sejumlah besar informasi, sesuatu yang saya anggap brilian dalam kesederhanaannya.
Hashing sangat berguna dalam blockchain. Rantai Bitcoin memiliki banyak operasi yang melibatkan hashing, terutama dalam penambangan. Hampir semua protokol kripto bergantung pada hashing untuk menghubungkan transaksi dalam blok dan membuat tautan kriptografi di antara mereka, secara efektif membentuk blockchain.
Fungsi hash kriptografi
Fungsi hash yang menerapkan teknik kriptografi dapat didefinisikan sebagai fungsi hash kriptografi. Memecahkan salah satu dari fungsi ini membutuhkan ujian brute force yang tidak terhingga. Untuk "mengembalikan" fungsi hash kriptografi, seseorang perlu menebak input melalui coba-coba hingga menghasilkan output yang sesuai. Namun, ada kemungkinan bahwa input yang berbeda menghasilkan output yang persis sama, menyebabkan "tabrakan".
Secara teknis, sebuah fungsi hash kriptografis harus mengikuti tiga sifat untuk dianggap aman:
Resistensi terhadap tabrakan
Sebuah tabrakan terjadi ketika entri yang berbeda menghasilkan hash yang persis sama. Sebuah fungsi hash dianggap tahan terhadap tabrakan hingga seseorang menemukannya. Akan selalu ada tabrakan untuk setiap fungsi hash karena entri yang mungkin tidak terbatas, sementara keluaran adalah terbatas.
Fungsi hash dikatakan tahan terhadap kolisi ketika probabilitas menemukan kolisi begitu rendah sehingga memerlukan jutaan tahun perhitungan. SHA-0 dan SHA-1 tidak lagi aman karena kolisi telah ditemukan. Saat ini, SHA-2 dan SHA-3 dianggap tahan terhadap kolisi.
Resistensi terhadap pra-citra
Properti ini terkait dengan konsep fungsi searah. Fungsi hash tahan terhadap pre-image ketika ada kemungkinan sangat kecil bahwa seseorang akan menemukan input yang menghasilkan output tertentu.
Properti ini berharga untuk perlindungan data karena sebuah hash sederhana dapat membuktikan keaslian pesan tanpa mengungkapkan informasi. Banyak penyedia web menyimpan hash kata sandi alih-alih kata sandi dalam teks biasa, sesuatu yang seharusnya dilakukan semua orang, menurut pendapat saya.
Resistensi terhadap pre-image kedua
Sebuah serangan pre-image kedua terjadi ketika seseorang menemukan sebuah input spesifik yang menghasilkan output yang sama dengan input lain yang dikenal. Ini melibatkan menemukan sebuah tabrakan, tetapi dengan mencari input yang menghasilkan hash yang sama dengan input spesifik lainnya.
Setiap fungsi hash yang tahan terhadap tabrakan juga tahan terhadap serangan pra-citra kedua. Namun, masih mungkin untuk melakukan serangan pra-citra pada fungsi yang tahan terhadap tabrakan.
Penambangan
Penambangan Bitcoin melibatkan banyak operasi hash: verifikasi saldo, pengikatan input dan output transaksi, dan hash transaksi dalam sebuah blok untuk membentuk pohon Merkle. Namun, yang benar-benar mengamankan blockchain Bitcoin adalah bahwa para penambang harus melakukan operasi hash yang tak terhingga untuk menemukan solusi valid untuk blok berikutnya.
Seorang penambang harus mencoba beberapa input yang berbeda saat membuat nilai hash untuk blok kandidatnya. Dia hanya dapat memvalidasi bloknya jika menghasilkan hash yang dimulai dengan sejumlah nol tertentu. Jumlah ini menentukan kesulitan penambangan dan bervariasi tergantung pada hashrate yang didedikasikan untuk jaringan.
Hashrate menunjukkan seberapa banyak daya komputasi yang diinvestasikan dalam penambangan. Jika meningkat, protokol Bitcoin akan secara otomatis menyesuaikan kesulitan untuk menjaga rata-rata waktu penambangan sekitar 10 menit. Jika beberapa penambang berhenti menambang, kesulitan akan menurun.
Para penambang tidak perlu menemukan tabrakan karena ada beberapa hash valid ( yang dimulai dengan sejumlah nol ). Ada banyak solusi yang mungkin untuk blok tertentu, dan para penambang hanya perlu menemukan satu.
Karena penambangan itu mahal, para penambang tidak memiliki alasan untuk menipu sistem, karena itu akan menyebabkan kerugian finansial yang signifikan. Semakin banyak penambang dalam sebuah blockchain, semakin kuat jaringan tersebut.
Tanpa diragukan lagi, fungsi hash adalah alat yang sangat penting dalam komputer, terutama dengan jumlah data yang besar. Dipadukan dengan kriptografi, mereka menawarkan keamanan dan autentikasi dengan berbagai cara. Mereka sangat penting untuk hampir semua jaringan kripto, sehingga memahami sifat dan mekanismenya bermanfaat bagi siapa saja yang tertarik pada blockchain.