Default – Above Header Ads
Default – Below Header Ads

Siri tentang Cryptoeconomics : Kriptografi (Bhg II)

Post yang lalu, penulis bercerita tentang hash function dalam Siri Cryptoeconomics Bhg I.

Dalam post ini, kita masih lagi di bawah tajuk yang sama, iaitu kriptografi. Dalam topik kriptografi khususnya di bawah teknologi blockchain, terdapat banyak lagi elemen lain selain daripada hash function yang memastikan keseluhan sistem blockchain dapat berjalan dengan lancar.

Sama seperti sistem-sistem lain, tidak kira lif atau kereta atau komputer dan sebagainya, jika elemen-elemen ini tidak disusun dengan betul, sudah pasti keseluruhan sistem itu akan gagal.

Struktur data dalam teknologi Blockchain boleh dikatakan sebagai elemen terpenting dalam teknologi itu, kerana ia adalah blok dalam blockchain. Dan proses hashing atau mining adalah aktiviti yang dijalankan untuk membentuk blok-blok dalam blockchain.

Jom baca post ini untuk belajar dengan lebih mendalam.

Struktur Data

Sumber: Bitcoin whitepaper
Bitcoin Exchange CEX.IO

Gambar di atas menunjukkan transaksi Bitcoin yang mempunyai nilai hash. Terdapat dua elemen penting dalam gambar di atas untuk memahami bagaimana teknologi blockchain beroperasi:

  1. Pointers (penunjuk arah)
  2. Linked lists (struktur data yang berhubung)
Pointers

Dalam setiap programming language, terdapat beberapa pembolehubah (variables) yang boleh menyimpan data. Contohnya, int a = 2, bermakna pembolehubah a menyimpan nilai  angka (integer), iaitu 2Dalam kes pointers pula, ianya adalah pembolehubah yang menyimpan suatu alamat bagi pemboleh ubah lain. Jika anda lihat gambar di atas, anak panah yang menghala ke hash transaksi seterusnya adalah hash pointers, dan ianya bukan sahaja menyimpan alamat, tetapi juga nilai hash yang terdapat dalam transaksi sebelumnya.

Ini adalah faktor utama teknologi blockchain mempunyai ciri-ciri immutability. Seperti yang penulis terangkan dalam point 4 dalam post tentang hash function, sedikit perubahan dalam input menyebabkan perubahan besar kepada nilai hash. Disebabkan hash pointers, jika data dalam transaksi ke-3 diubah, akan mengubah nilai hash dalam transaksi ke-2, yang juga akan mengubah nilai hash dalam transaksi pertama. Ia akan mengubah keseluruhan rantai blockchain, menyebabkan sistem blockchain gagal.

Linked lists
Sumber: blockgeeks.com

Linked lists adalah struktur data yang berhubung dengan yang sebelumnya melalui hash pointer. Struktur data yang dimaksudkan adalah urutan blok yang mengandungi data seperti gambar diatas. Dalam erti kata lain, linked lists adalah blockchain, atau rantaian blok-blok yang berhubung dengan blok sebelumnya.

Dalam setiap blok akan terdapat data seperti dibawah:

  • Nombor blok
  • Masa
  • Kadar kesukaran pada waktu itu (dalam proses mining)
  • Nilai hash daripada blok sebelumnya
  • Nonce
  • Nilai hash daripada Merkle Root
Merkle Root
Sumber: wikipedia

Dalam gambar di atas, kita boleh melihat blok-blok data atau input yang dilabel L1 hingga L4. Blok-blok data ini dinamakan leaf node, dan dalam suatu Merkle Tree, setiap leaf node akan melalui proses hashing berulang kali sehingga akhirnya mendapat root node (Top Hash), dan ianya adalah nilai hash bagi keseleruhan nod di bawahnya. Dalam barisan ketiga dari atas pula, setiap hash dipanggil child nodes. Cotohnya, hash 0-0 dan hash 0-1 adalah child node kepada nod dengan label hash 0.

Kegunaan Merkle Tree dalam Blockchain

Dalam mana-mana sistem yang menggunakan rangkaian peer-to-peer, pengesahan data sangat penting kerana ia wujud dalam banyak lokasi. Jadi, jika data dalam satu tempat diubah, kesemua data yang disimpan dalam lokasi berlainan juga perlu diubah. Setiap blok juga mengandungi beribu-ribu transaksi dan ia akan mengambil masa yang sangat lama untuk menyimpan setiap data dalam blok secara bersiri. Merkle Tree sangat berguna untuk membuat pengesahan data tanpa perlu memeriksa keseluruhan data satu-persatu setiap kali suatu data perlu disahkan.

Proses Hashing atau Mining

Proses hashing atau mining adalah proses mencari blok baru untuk dimasukkan dalam rantaian blok (blockchain). Pada awalnya, sesiapa yang mempunyai komputer boleh menjalankan aktiviti mining, seperti GPU, tetapi lama-kelamaan miners mula menubuhkan mining pool untuk menggabungkan kuasa komputer mereka supaya dapat mining dengan lebih cepat dan efisien (cip ASIC).

Namun begitu, tidaklah mudah untuk membentuk satu blok begitu sahaja. Proses untuk membentuk satu blok baru adalah seperti berikut:

  1. Nilai hash dalam satu blok baru diambil
  2. Nonce (rentetan angka/huruf yang rambang) di sambungkan ke hash tersebut
  3. Gabungan hash/nonce tadi melalui proses hashing
  4. Nilai hash tersebut dibanding dengan kadar kesukaran dan diperiksa sama ada ia kurang atau tidak
  5. Jika ia lebih dari kadar kesukaran, nonce akan diubah dan proses di atas diulang semula
  6. JIka ia kurang dari kadar kesukaran, blok itu akan dimasukkan dalam rantai dan lejar akan dikemaskini
  7. Miners yang membentuk blok mendapat ganjaran
Kadar kesukaran diselenggara untuk mengekalkan ekosistem

Pernah dengar istilah “Tragedy of the Commons”? Ia selalu dikaitkan dengan aktiviti perikanan di mana nelayan menangkap ikan lebih cepat daripada ikan membiak, dan akhirnya menghabiskan sumber ikan. Dalam kes matawang kripto seperti Bitcoin, terdapat hanya 21 juta Bitcoin dan jika mining dilakukan tanpa had, kesemua Bitcoin akan habis dengan cepat. Di samping itu, had masa 10 minit antara pembentukan blok mengelakkan daripada berlakunya collision (apabila satu hash function mengeluarkan output yang sama untuk dua input) dan orphaned blocks, atau blok-blok yang dipisahkan kerana dibentuk pada masa yang sama.

Untuk menyelesaikan isu-isu di atas, Bitcoin menjalankan penyelenggaraan kadar kesukaran mining. Kadar kesukaran mining Bitcoin diselenggara setiap 2016 blok. Melalui kadar kesukaran itu, sasaran kesukaran adalah rentetan sepanjang 64-bit yang bermula dengan beberapa angka ‘0’. Jumlah angka ‘0’ bertambah apabila kadar kesukaran bertambah. Kadar kesukaran ini menyebabkan mining menjadi lebih sukar dan mengambil masa yang lama. Di bawah adalah illustrasi bagaimana kitaran mining berjalan:

Haa…nampak tak betapa rumitnya sistem blockchain ini sebenarnya. Inilah yang menjadikan keseluruhan sistem blockchain trustless, di mana transaksi berlaku tanpa perlu pengawalan mahupun pengawasan pihak ketiga.

Kebiasaannya apabila ditanya mengapa Bitcoin dicipta, jawapannya adalah sebagai sistem pembayaran alternatif kepada fiat. Tetapi melihat kepada segala proses dan elemen yang terdapat dalam sistem blockchain itu sendiri, kita sudah dapat melihat sedikit daripada inspirasi pencipta Bitcoin, Satoshi Nakamoto dan ideologi politiknya dalam mencipta Bitcoin.

 

 

 

Nak beli bitcoin? Jangan tertipu dengan scammer bitcoin! Biar faham dulu tentang bitcoin! Klik sini untuk belajar.