Ketika membahas teknologi blockchain, istilah hashing atau hash akan menjadi sangat umum dikenal. Lalu, apa itu hash atau hashing? Mari kita menyelam lebih dalam.
Baca juga: Apa Itu Smart Contract?
Apa Itu Hashing?
Hash adalah sebuah fungsi untuk memenuhi tuntutan terenkripsi untuk menyelesaikan komputasi blockchain. Panjang hash akan tetap karena mustahil untuk menebak panjang hash jika suatu pihak mencoba memecahkan blockchain.
Hash atau hashing adalah transformasi dan pembuatan data input dengan panjang tertentu menjadi string dengan ukuran yang tetap, dilakukan oleh algoritma tertentu. Lebih spesifik, algoritme hash Bitcoin adalah Secure Hashing Algorithm 256 bit atau SHA-256. Algoritma SHA-256 adalah fungsi kriptografi satu arah disebabkan karena data asli memungkinkan diambil melalui dekripsi.
Manfaat penerapan fungsi hash kriptografi adalah sebagai berikut:
- mencegah transaksi penipuan,
- mencegah pengeluaran ganda di blockchain, dan
- menyimpan kata sandi (password).
Lalu, apa itu hash Bitcoin dan bagaimana hubungannya dengan konteks ini? Secara sederhana, ini merupakan nomor unik yang tidak bisa digandakan menurut algoritma sehingga sering digunakan untuk memverifikasi keaslian file.
Nah, untuk menempatkannya di dalam konteks, ketika ada sebuah perubahan di dalam file hash, hash-nya secara otomatis juga akan berubah. Setiap hash berikutnya nantinya akan diikat ke hash sebelumnya untuk memastikan konsistensi semua blok.
Cara Kerja Hashing di Blockchain
Apa itu algoritma hashing di blockchain dan bagaimana cara kerja hashing di blockchain? Algoritma hashing pada dasarnya mengambil jumlah bit yang tak terbatas, membuat perhitungan, dan menghasilkan sejumlah bit tetap. Terlepas dari panjang input data, nantinya output akan selalu diperbaiki. Konsekuensinya, data asli disebut sebagai input, dan transformasi terakhir disebut sebagai hash. Saat ini, banyak algoritma hashing hanya berbeda dari segi cara informasi diproses.
Untuk memahami lebih dalam apa itu hashing, pertama sekali penting untuk memahami apa itu struktur data. Singkatnya, struktur data adalah cara khusus untuk menyimpan data yang terdiri dari dua elemen utama, yakni (1) pointer dan (2) daftar tertaut (linked lists).
Pointer
Pointer adalah variabel yang mengacu pada variabel lain, berfungsi sebagai indikator untuk menunjukkan jalan menuju lokasi yang tepat. Selain itu, pointer juga memberikan alamat blok berikutnya di dalam rantai (chain).
Linked Lists
Di sisi lain, linked lists membuat urutan simpul yang terkoneksi dengan bantuan pointer. Berkat hashing di blockchain, setiap blok nantinya akan diberi pengidentifikasi asli, membutuhkan konsekuensi yang tidak bisa diubah dari mengubah blockchain. Blok diidentifikasi oleh informasi yang ikut disertakan dalam header blok, terdiri dari rincian seperti ini:
- nomor versi blockchain
- Stempel waktu UNIX
- penunjuk hash
- nonce, nilai yang dibutuhkan oleh penambang untuk membuat blok
- hash dari akar Merkle
Semua elemen dibutuhkan untuk membuat blok. Jadi, saat hash terjadi pada blockchain, data akan diubah menjadi string unik di dalam blok.
Cara Memecahkan Sebuah Hash
Untuk memecahkan sebuah hash, itu dimulai dengan memecahkan masalah matematika kompleks yang berisi data di header blok. Akan tetapi, sebelum penambang (miners) memulai prosesnya, mereka terlebih dahulu harus melakukan proses coba-coba dengan tujuan untuk memutuskan string mana yang akan digunakan sebagai nonce.
Setelah nonce diidentifikasi, miners akan fokus pada nomor string (nonce) yang terkait dengan konten hash blok sebelumnya. Hash akan dianggap berhasil ketika hash baru menjadi kurang dari atau sama dengan hash target. Nah, sebagai gantinya, miners akan memperoleh hadiah untuk menambahkan blok ke dalam blockchain.
Hubungan Proof of Work (PoW) di Hashing
Bagaimana korelasi Proof of Work (PoW) di hashing? Pada dasarnya, algoritme Proof of Work (PoW) berkorelasi dengan hash blockchain karena algoritme ini akan bermanfaat untuk mengonfirmasi transaksi dan menghasilkan blok baru ke rantai.
Cara Kerja PoW
Desentralisasi adalah elemen penting dari blockchain, tetapi juga punya kerentanan. Jika seorang peserta ingin mengunduh salinan blockchain, bagaimana cara agar pengguna lain bisa mengetahui bahwa blockchain itu benar? Katakanlah misalnya ada ribuan komputer di jaringan; apa yang mencegah mereka melakukan konspirasi dengan pengguna baru dengan data yang mereka tempa secara bersama?
Saat itulah algoritme PoW masuk, yang memungkinkan peserta jaringan blockchain mengetahui apakah informasi tersebut bersifat gratis atau sebaliknya.
Histori adalah segalanya di web, Anda perlu tahu siapa saja yang menghabiskan uang dan siapa yang menerimanya. Hampir tidak mungkin untuk mencapai konsensus penuh dalam jaringan terdesentralisasi tanpa adanya kontrol oleh pihak ketiga di masa lalu. Fungsi hash memungkinkan itu karena menyediakan sidik jari digital unik dari sepotong data.
Konsep PoW pada Cryptocurrency
Konsep PoW dirancang khusus untuk melawan serangan DDoS yang akan membekukan sistem dan menolak untuk memproses permintaan pengguna. PoW juga menolak spam dan secara efektif melindungi seluruh jaringan. Meskipun ini bukan solusi ideal untuk masalah ini, konsep ini masih relatif efisien.
Di dunia kripto, PoW melindungi mata uang kripto karena mendukung jaringan terdesentralisasi. Contoh sederhana: orang tersebut membuat dompet digital yang tidak disinkronkan dengan jaringan lainnya. Segera setelah dia terhubung, dompet berubah statusnya menjadi ‘disinkronkan’ saat mulai mengakses blockchain.
Baca selengkapnya: Mengenal Apa Itu Proof of Work (PoW)
Memanipulasi Jaringan Tidak Akan Menguntungkan bagi Miners
Fungsi dari Hash adalah untuk mengatur sistem lebih baik, tetapi tentu saja ada harganya. Jadi, ketika penambang (miners) membuat blok baru untuk blockchain, mereka nantinya harus menyediakan dua hash ke jaringan:
- Sebuah hash dari semua transaksi di blok.
- Sebuah hash yang membuktikan bahwa miners telah menghabiskan banyak energi untuk menciptakan blok.
Meskipun sistem dalam kondisi baik, kompensasi untuk miners akan minimal. Hal ini mempertimbangkan bahwa sumber daya (resources) yang dihabiskan untuk pencarian hash akan menciptakan distorsi data yang tidak menguntungkan. Akan tetapi, untuk melakukan ini, penambang mesti beroperasi di dalam sistem seperti lotere yang hanya ada satu pemenang. Namun, tidak ada jaminan untuk menemukan hash.
Selain itu, butuh waktu lama untuk menjalankan proses jika daya GPU dan CPU lemah, sementara itu hanya komputer dengan peralatan mahal yang mampu menangani daya pemrosesan. Komputer ini juga dapat mengonsumsi lebih banyak listrik, membuat seluruh proses tidak menguntungkan bagi penambang yang berhasil menemukan hash yang valid untuk blok transaksi yang tidak valid.
Pada akhirnya, itu menjadi tidak masuk akal untuk mengkonfirmasi blok “salah”, dengan mengklaim bahwa semua transaksi valid, dan melanjutkan ke hash. Komputer lainnya di jaringan juga akan menolak blok yang tidak valid; artinya penambang tidak akan menerima hadiah.
Proof of Transaction (PoT)
Saat mengirim cryptocurrency, pengguna harus mengkonfirmasi tindakan dompet mereka, yang menyiarkan transaksi ke blockchain. Setelah itu, transaksi masuk ke kumpulan transaksi menunggu pemrosesan, di mana mereka tetap sampai diambil oleh penambang.
Transaksi semacam ini dapat diakumulasikan dalam pool besar atau pool lokal kecil yang terpisah. Penambang memilih transaksi dari kumpulan penambangan dan memprosesnya menjadi blok baru. Blok ini mencakup transaksi yang menunggu konfirmasi dengan metadata tambahan. Pada akhirnya, setiap penambang membentuk blok terpisah. Dan transaksi yang sama dapat memasuki blok penambang yang berbeda.
Seorang penambang harus memastikan bahwa setiap transaksi yang diberikan menjawab persyaratan eksekusi. Jika pengirim memiliki sumber daya yang cukup pada saldo, transaksi menjadi valid dan dapat ditambahkan ke blok. Untuk pemrosesan yang lebih cepat, pengirim dapat meningkatkan biaya penambangan. Biasanya, penambang memanfaatkan nilai transaksi yang lebih tinggi dengan memilih transaksi yang paling menguntungkan; oleh karena itu, waktu pemrosesan menjadi lebih rendah.
Setiap transaksi punya hash yang disimpan dalam struktur seperti pohon. Hash ini nantinya juga di-hash untuk membentuk root Merkle. Nah, teknologi ini akan berisi informasi tentang semua transaksi.
Fungsi Hash Kriptografis (Cryptographic Hash)
Fungsi hash kriptografi dapat dicirikan oleh sejumlah properti yang membuatnya menjadi sangat berguna saat digunakan di bidang kriptografi.
- Hasil dari fungsi hash selalu identik; sifat ini disebut juga sebagai Terlepas dari berapa kali Anda memasukkan pesan yang sama, hasilnya akan tetap sama setelah fungsi hash diimplementasikan. Namun, perubahan sekecil apa pun pada data input (“artikel” alih-alih “artikel”) mengubah hasil seutuhnya.
- Ini merupakan fitur komputasi cepat sebagai kecepatan rendah yang akan membuat sistem tidak efisien.
- Fitur resistensi preimage dalam fungsi hash akan membuatnya tidak layak secara komputasi untuk menentukan input dari nilai hash. Oleh karena itu, para miners hanya bisa membandingkan hasilnya sampai ditemukan kecocokan.
Unit Tingkat Hash
Hashrate dapat mengacu pada total daya komputasi peralatan penambangan yang digunakan dalam cryptocurrency mining. Nah, satuan pengukuran tersebut antara lain:
- Hash per second (H/s)
- Kilohash per second (KH/s)
- Megahash per second (MH/s)
- Gigahash per second (GH/s)
- Terahash per second (TH/s)
- Petahash per second (PH/s)
- Exahash per second (EH/s)
Karena proses penambangan menjadi lebih rumit, hampir mustahil untuk melihat unit “hash per detik”’ di jaringan blockchain modern. Tercatat saat ini, perangkat dengan peningkatan daya dibutuhkan untuk menyelesaikan masalah tersebut, mulai dari puluhan megahash per detik.
Sebagai contoh, daya prosesor 10 MH/s artinya mampu menghasilkan 10 juta kombinasi angka berbeda dalam hitungan satu detik untuk menemukan hash yang cocok dengan semua indikator atau parameter yang ditetapkan oleh jaringan.
Meskipun begitu, ada sejumlah faktor berbeda untuk menentukan tingkat hash. Bahkan pilihan algoritme mining akan mempengaruhi parameter. Nah, penting juga untuk mengetahui bagaimana perangkat lain bereaksi dengan algoritme yang berbeda.
Sementara itu, beberapa dari mereka akan menyediakan kapasitas maksimum dengan jaringan yang menampilkan algoritme SHA (Bitcoin, Peercoin, dst.). Hasilnya mungkin saja lebih rendah bila jaringan yang sama menggunakan algoritme Script.
Sistem Pengamanan Data Hash
Setiap blok nantinya akan berisi hash dari blok sebelumnya (baca: blok induk) kecuali blok Genesis. Ini dapat dibayangkan sebagai serangkaian blok dengan hash dari blok induk. Jika informasi di salah satu blok tersebut diubah, itu memengaruhi semua blok rantai lainnya.
Meskipun begitu, seiring dengan pertumbuhan jaringan, hampir mustahil untuk mengubah hash di semua blok. Oleh karena itu, proses hashing dibutuhkan untuk blockchain untuk memastikan orisinalitas dari setiap elemen sistem.
Data yang tidak bisa diubah dan dapat dipercaya adalah salah satu properti inti dari blockchain. Ini kemudian yang menjadikannya berharga dan memberikan potensi besar bagi blockchain. Informasi akan selalu bersifat otentik, sehingga menentukan integritas blockchain.
Cara Mengukur Hashrate Jaringan Bitcoin
Tingkat hash Bitcoin mewakili keseluruhan kekuatan komputasi semua node di seluruh dunia, berkontribusi pada penambangan Bitcoin. Namun, sulit untuk menentukannya karena mesin penambangan yang berkontribusi pada jaringan tidak memiliki identifikasi, dan mereka berkomunikasi ke jaringan hanya setelah menemukan blok.
Namun, tingkat hash diperkirakan setiap hari dengan membandingkan blok yang ditemukan dalam 24 jam terakhir dengan angka 144, yang merupakan tingkat yang diharapkan untuk menemukan blok. Menurut algoritme, kecepatan penambangan harus tetap sama (600 detik). Dengan cara ini, rumus kekuatan hash Bitcoin adalah sebagai berikut:
Hashpower = ((blok ditemukan dalam 24 jam/jumlah blok diharapkan) x work)/600
Semakin tinggi tingkat hash Bitcoin, semakin sulit parameter penambangannya. Karena selalu disesuaikan agar tetap sejalan dengan pekerjaan hash secara keseluruhan. Penyesuaian kesulitan sangat penting untuk keamanan.
Jadi wajar jika protokol menghindari monopoli. Penting untuk mempertahankan kecepatan penambangan cryptocurrency yang sama untuk menghindari inflasi. Jika tidak, penambang akan menghasilkan lebih banyak Bitcoin lebih cepat, dan cryptocurrency akan kehilangan nilainya.
Cara Hashing Memengaruhi Bitcoin Mining
Penambangan atau mining akan tetap dilakukan secara terdesentralisasi karena dua penambang tidak memungkinkan untuk melakukan hash pada blok yang sama. Penambang akan menerima transaksi melalui jaringan dalam urutan berbeda. Oleh karena itu, setiap penambang memproses blok sedikit berbeda, mengacu preferensi individu dalam hal komisi.
Meskipun seluruh blok mungkin telah divalidasi dengan benar, hanya ada satu blok yang bisa masuk ke blockchain pada satu waktu. Semua miners mesti terus melakukan hashing sampai menemukan nomor yang menghasilkan hasil yang dapat disetujui jaringan sebagai valid ketika ditambahkan ke blok mereka di blockchain.
Selain itu, jaringan mesti menjamin pembuatan blok baru untuk setiap sepuluh menit agar dapat menegakkan kebijakan keuangan Bitcoin. Jaringan melakukan tugas ini dengan menyesuaikan kesulitan mining setiap dua minggu. Oleh karena itu, jika blok divalidasi terlalu cepat karena ada peningkatan jumlah penambang baru, jaringan akan merespon dengan meningkatkan kompleksitas untuk mengurangi inflasi.
Karena hashing blockchain menawarkan keacakan, penambang dengan komputer yang paling kuat tidak akan selalu menang. Konsepnya hampir mirip dengan permainan lotere. Pengguna dengan jumlah tiket terbesar, misalnya, dapat memperoleh lebih banyak peluang untuk menang, namun tetap saja tidak ada jaminan untuk menang setiap waktu.
Penambang pada umumnya membuat blok transaksi yang valid dan menjalankan Proof of Work di blok tersebut. Mereka berharap dapat menemukan hash yang ditetapkan oleh aturan jaringan sebelum berhasil ditemukan oleh penambang lain. Jika prosesnya berhasil, blok ini akan memasuki blockchain, dan penambang bisa menerima hadiah. Selain itu, spesifikasi perangkat keras (hardware) juga sangat penting sehingga harus dipertimbangkan saat membeli peralatan penambangan (equipment mining).
Konsumsi Energi Bitcoin vs. Ethereum
Bitcoin menjadi cryptocurrency yang paling menguras energi. Ketika membandingkan Bitcoin dan Ethereum, konsensus Proof of Stake (PoS) dari Ethereum bertujuan untuk mengurangi 99% konsumsi energinya.
Sebagai perbandingan, PoW Bitcoin terus meningkat, bahkan sudah melebihi total konsumsi energi di seluruh Swiss. Dengan adanya migrasi ke ETH 2.0, jaringan tidak lagi divalidasi oleh penambang, melainkan didukung oleh validator. Oleh karena itu, ini akan lebih berkelanjutan dengan karbon yang lebih rendah pada lingkungan.
Simpulan
Teknologi blockchain adalah inovasi paling signifikan yang menjadi penentu perkembangan teknologi di masa depan. Sementara itu, hashing adalah fungsi kriptografi yang memberdayakan teknologi ini. Penting bagi Anda untuk memahami dengan baik apa itu hashing dan seperti apa esensi teknologi untuk menambang (mining) di blockchain dan bagaimana menghasilkannya.
Selain itu, hashing tidak hanya Berlaku untuk Bitcoin saja. Hashing adalah bagian sentral dan integral dari blockchain yang berbeda. Banyak cryptocurrency yang didukung oleh proses penambangan, misalnya seperti Litecoin dan Bitcoin Cash. Blockchain lain juga masih menggunakan algoritme penambangan berbeda. Saat ini, kebanyakan algoritme hashing hanya berbeda dari segi cara data diproses.