Apa itu Blockchain? (untuk Programmer)
Banyak kawan saya sesama programmer yang masih belum paham tentang Blockchain.
Mereka bingung..
Gak paham Blockchain mau dipakai di mana dan buat apa.
Ini wajar, karena belum banyak developer yang bahas tentang Blockchain di Indonesia.
Kebanyakan yang bahas Blockchain dari kalangan Trader, miner, dan Investor Crypto.
Sehingga saat mendengar kata Blockchain, yang terpikir dalam benak mereka adalah mata uang kripto..
..yang konon katanya sudah dinyatakan haram oleh MUI.
Ini mungkin yang membuat programmer merasa ’enggan’ untuk belajar Blockchain, karena bisa terjerumus ke permainan uang seperti spekulasi, judi, MLM, dan money game lainnya.
Padahal, pemanfaatan teknologi Blockchain, bukan cuma untuk membuat mata uang kripto aja.
Masih banyak hal yang bisa kita kembangkan dari Blockchain.
Nah, sebenarnya Blockchain itu apa sih?
Mengapa kita membutuhkan Blockchain?
Gimana cara kerjanya?
Mari kita pelajari!
Asal Usul Blockchain
Istilah Blockchain mulai populer sejak diterbitkannya white paper Bitcoin oleh Satoshi Nakamoto di tahun 2008.
Sebenarnya teknologi ‘semacam’ Blockchain ini sudah ada sejak dulu, sebelum adanya Bitcoin.
Contohnya: Git (yang lahir di tahun 2005).
Struktur data penyimpanan di Git, mirip seperti Blockchain. Yakni menggunakan hash tree atau Merkle tree.
Lebih jauh lagi di tahun 1979 penelitian David Chaum tentang Vault systems sudah membahas tentang komponen Blockchain di sana.
Namun saat itu, mungkin istilah Blockchain belum ada.
Apa itu Blockchain dan Gimana Cara Kerjanya?
Kalau kita terjemahkan secara bahasa..
Block artinya blok atau kotak
Chain artinya rantai.
Jadi Blockchain adalah Kotak Rantai, hehe becanda 😄.
Blockchain sebenarnya adalah sebuah database tempat menyimpan data yang tersusun dalam bentuk blok dan saling tersambung dengan rantai (chain).
Coba lihat gambar ini:
Setiap block menyimpan sebuah data, lalu dihubungkan dengan rantai.
Mengapa rantai?
Mengapa tidak benang atau tali aja?
Ini mungkin karena rantai sulit diputus atau dirusak.
Kalau pakai tali, nanti namanya bukan Blockchain lagi donk, tapi Blockrope hehe.
Menambahkan Block baru atau data baru ke dalam Blockchain dilakukan dengan proses mining. Proses ini dilakukan di komputer miner (minig rig).
Tugas utama seorang miner sebenarnya menemukan/atau membuat enkripsi kode hash untuk menghubungkan blok baru dengan blok yang sudah ada di Blockchain.
Biasanya miner yang berhasil menambahkan block baru akan dapat reward berupa koin (misalnya 🪙 BTC).
Karena itulah, banyak orang yang tertarik melakukan mining,
bahkan sampai mengeluarkan banyak biaya. Soalnya dapat cuan koin.
Koin inilah yang nantinya diperjual-belikan ke bursa (exchange) sehingga lahirlah trader dan investor crypto.
Blok-blok di dalam Blockchain akan terus bertambah dan bertumbuh sepanjang waktu sampai batas tak hingga.
Menurut catatan statista, ukuran Blockchain Bitcoin tercatat sudah mencapai 400GB+ di bulan Juli 2022.
Wow, mungkin 10 tahun lagi sudah mencapai 1TB.
Dimana Blockchain Tersimpan?
Data Blockchain tidak tersimpan di satu server, ia terdistribusi atau tersebar di seluruh (node) pada jaringan. Ini yang disebut dengan decentralized.
Jadi saat ada yang mencoba menyerang atau merusak salah satu node, maka masih ada node lainnya yang backup.
Inilah alasan mengapa blockchain sulit dihancurkan. Kalau mau dihancurkan, yaa harus rusak semua node-nya donk.
Oya Node itu adalah sebuah komputer khusus yang menyimpan data Blockchain dan ini tersebar di seluruh dunia.
Selain tersebar (decentralized), data di Blockchain juga susah untuk dimanipulasi.
Mengapa Data di Blockchain gak bisa dimanipulasi?
Data di Blockchain cuma bisa ditulis (buat baru) dan dibaca. Nggak bisa diedit dan dihapus.
Sehingga ini membuatnya sulit untuk dimanipulasi.
Alasan teknisnya karena data di tiap block sudah terhubung dengan fungsi kriptografi (hash). Hash ini dibuat berdasarkan data pada blok sebelumnya.
Sebagai contoh:
Jika ada yang coba mengubah data di block 1
, maka kode hash berikutnya akan berubah. Ini menandakan data telah diubah.
Maka saat disetor ke seluruh node di Jaringan, data ini akan otomatis tertolak oleh algoritma atau konsensus PoW (Proof of Work).
Apa lagi itu Konsensus?
Konsensus adalah kesepakatan bersama dalam jaringan Blockchain.
Mengapa harus ada konsensus?
Ini karena jaringan Blockchain menggunakan peer-to-peer, sehingga di sana tidak perlu ada satu server yang berperan untuk mengambil keputusan dalam menyimpan data.
Jadi semua komputer yang terhubung ke jaringan Blockchain harus mengikuti konsensus agar data tetap terjaga aman.
Simpelnya:
Konsesus itu algoritma yang akan memvalidasi data di Blockchain.
Selain konsensus PoW (Proof of Work), ada juga konsensus lain seperti: Proof of Stake, Prof of Capacity, Proof of Activity, dan sebagainya.
Tiap-tiap konsensus punya cara kerja yang berbeda dan dipakai untuk tujuan yang berbeda pula.
Misalnya pada jaringan Blockchain Bitcoin, konsensus proof of work dipakai untuk memvalidasi hasil mining dari miner.
Jadi setiap data baru yang masuk ke jaringan Blockchain, maka algoritma konsensus akan otomatis dijalankan.
Pada contoh gambar di atas, konsensus menolak hasil mining dari salah satu node karena hash datanya tidak sesuai dengan data yang sudah ada.
Apa Selanjutnya?
Okay, sekian dulu pengenalan Blockchain untuk programmer. Semoga kamu bisa sedikit lebih memahami tentang teknologi Blockchain ini.
Intinya point yang perlu diingat:
- Blockchain itu seperti database, tapi dia immutable (tak bisa diubah dan dihapus)
- Struktur datanya mirip seperti History Commit di Git
- Ada algoritma konsensus yang mengatur supaya data tetap terjaga aman.
Ada pertanyaan?
Silakan tulis di komentar!