Thursday, November 30, 2017

Bagaimana Sistem Blockchain Berfungsi?


Teknologi blockchain merupakan satu topik hangat yang giat dikaji oleh para penyelidik yang mana di dalam Blockchain terdapat pelbagai kegunaan, antaranya pendaftaran nama dan smart contracts.

Bagaimana Sistem Blockchain Berfungsi

Kaedah konsensus seperti proof-of-work (PoW) dan proof-of-stake (PoS) juga ada diterapkan dalam teknologi Blockchain bagi membantu prinsip decentralization berjalan dengan lancar.

Rupanya banyak jenis blockchain selain yang digunakan oleh Bitcoin, aklumlah code pun open source. Manusia pula kreatif nak tukar tukar ikut sukahati. Maka evolusi blockchain semakin bertambah.

Beberapa jenis blockchain yang digunapakai dalam platform seperti Bitcoin, Ethereum, Peercoin, Namecoin, New Economy Movement (NEM) dan juga Ripple.

Dalam Ethereum, smart contractnya yang di war-warkan bagus untuk prinsip decentralized platform. Dalam Namecoin, fokusnya adalah dalam bidang pendaftaran nama atau nama glamornya, name registration. Peercoin pula, kaedah PoS nya; Ethereum juga akan menggunakan kaedah yang sama.

Apa itu Blockchain?

Blockchain adalah satu buku rekod awam digital yang hidup di internet. Secara kasarnya, cuba bayangkan buku accounting yang penuh dengan transaksi sesebuah syarikat, di mana terdapat rekod dari mana duit datang dan ke mana duit itu pergi. Begitu juga blockchain. Ia menyimpan segala data transaksi pengguna dari awal sampai kiamat kot..

Secara konvensional, database digunakan sebagai tempat pertengahan untuk menyimpan data-data transaksi dalam sesebuah organisasi. Segala proses komputasi dilakukan disini.

Juga kawalan pusat data ini dikawal oleh satu entiti, di mana ia mengurus, mengupdate, untuk memastikan data tidak di manipulate. Teknologi Blockchain dapat menyelesaikan masalah-masalah centralization seperti ini.

Perlu di ingatkan juga, blockchain bukan sahaja mampu menyimpan data kewangan, tetapi juga data-data lain seperti kontrak peguam, surat cinta, juga data undi rakyat Malaysia untuk PRU akan datang. You name it, sumbat semuanya dalam blockchain.

Jadi, apa baiknya transparent ledger ini?

"Bukan ke kalau lagi transparent data kau, lagi bahaya di buatnya?"

Ada kebaikan-kebaikan pakai benda ni. Bukan nak kata cara standard sekarang dah rosak, bukan. Cuma dengan menggunakan model teknologi Blockchain, kita akan mendapat perspektif baru dalam bisnes model yang akan diterapkan dalam sesebuah organisasi.

Point-point dibawah diambil daripada Goldman Sachs (GS) research bertarikh 24 May 2016 yang menyatakan:-

1. Kemudahan yang selamat, transaksi yang tiada pusat (decentralized)

GS menyatakan bahawa dengan menggunakan blockchain model, salah satu kegunaan yang praktikal ialah dalam bidang Internet of Things.

Contoh yang diberi ialah Smart Grid (ie. solar panels), di mana secara analoginya, TNB Malaysia di-decentralized kan model pengedaran tenaganya kepada pengguna. Juga disebabkan nature of transparency ini, bil pembayaran juga dapat di transparentkan agar mudah pengguna nak tahu berapa banyak tenaga yang di consume.

Dengan Blockchain juga, senang nak track berapa banyak air yang diguna, do the math, maka dapatlah bil pembayaran yang setimpal dan saksama.

2. Mengurangkan penipuan (corruption) dan meningkatkan trust dengan security yang kuat

Budak 3 tahun yang tinggal kat Malaysia pun boleh faham kot dengan keadaan politik Malaysia sekarang. Corruption everywhere.

Bayangkan kalau Najib guna bitcoin untuk terima dana dari kerajaan Arab 2.6 billion tu, mudah je #TheRakyats nak sahihkan info ni dalam Blockchain. Huhu.

Anyway, dalam kes ni, GS ada buat case study pasal Airbnb jika ia menerapkan Blockchain dalam model bisnesnya, especially dalam reputation sistem. Jadi, apa baiknya?

Setiap transaksi di encode dengan cryptography yang jitu dan transaksi di validate oleh network nodes (P2P). Jadi, segala percubaan untuk mengubah atau membuang data akan terkantoi. Sangat berguna kalau nak di integrate dengan apa apa sistem reputasi.

3. Meningkatkan transparensi dalam transaksi lebih dua orang

Benda macam inilah yang membuatkan Smart Contracts berguna. Dalam apa-apa transaksi yang melibatkan lebih dua parti, kadang kadang seorang tu mesti nak percent lebih. Mana boleh. Kapitalism segera dapat di tamatkan kalau pakai Blockchain.

Smart Contract ni dapat distribute funds antara entiti yang terlibat dan ia transparent! Proses jadi lebih efisien dan dapat mengurangkan kos penghantaran dana kepada parti parti terlibat.

Bagaimana Blockchain berfungsi?

Bagaimana Sistem Blockchain Berfungsi

Semua transaksi yang telah berjaya akan dimasukkan dalam blockchain dan dengan cara ini, wallet Bitcoin akan dapat mengira berapa banyak baki yang boleh dibelanjakan dan setiap transaksi baru hendaklah disahkan oleh pemegang sebenar wallet tersebut.

Keutuhan dan susunan kronologi Blockchain juga diperketatkan dengan pelbagai algorithm cryptography.

Transaksi ialah satu penghantaran nilai matawang Bitcoin yang akan dimasukkan ke dalam Blockchain.

Bitcoin wallet pula menyimpan data pemegang wallet yang dipanggil private key atau seed, yang juga digunakan untuk sign transaksi dengan menggabungkan kaedah matematik untuk mengesahkan yang transaksi tersebut datangnya dari pemegang wallet tersebut.

Tujuan sign tersebut juga dapat mengelakkan sesebuah transaksi daripada diubah oleh sesiapa selain pemegang wallet.

Satu proses yang dipanggil mining pula akan dijalankan sejurus selepas transaksi dilakukan untuk mengesahkan transaksi tersebut.

Dengan bantuan P2P network, transaksi transaksi ini akan di broadcast kan ke seluruh network Blockchain. Jadi semua orang akan dapat ledger yang sama.

Mining, seperti diperkatakan tadi, adalah satu sistem algorithm yang digunakan untuk mengesahkan transaksi dengan memasukkan ia kedalam Blockchain.

Blockchain menyusun setiap transaksi dalam susunan kronologi bagi melindungi network daripada ketidak-saksamaan.

Untuk sesebuah transaksi disahkan secara halal, ia haruslah di packkan ke dalam satu block yang seterusnya akan di verify oleh network (miners) yang dikuatkuasakan oleh cryptography.

Susunan kronologi ini penting untuk setiap block yang sebelumnya tidak dapat di ubah, sebab kalau ia di ubah maka ia akan membuatkan semua block menjadi tidak sah. Jatuh hukum haram di sisi undang-undang Satoshi Nakamoto.

Para miners pula yang bekerja keras untuk mengesahkan block-block ni akan di beri upah dalam BTC.

Jadi, all in all, transaksi BTC dalam Blockchain network boleh diterangkan di dalam satu infographic seperti gambar diatas.

Implementasi
  • Cryptocurrency -- eg. Bitcoin, Litecoin, Dogecoin, Trumpcoin
  • Blockchain platform -- eg. Ethereum (from-scratch platform untuk smart contract)
  • Sidechains -- eg. Rootstock (provide smart contract untuk Bitcoin)
  • Distributed ledgers/private blockchains -- eg. R3 untuk industry kewangan

Market capitalization

Market capitalization atau melayu nya permodalan pasaran, adalah satu penunjuk tentang penguasaan sesuatu Blockchain dalam trading market.

Bitcoin, dalam hal ini, adalah pemain paling besar yang telah menjangkaui ~10 bilion USD market cap. Diikuti dengan Ether, yang hampir mencecah 1 bilion USD.

Nak tengok market cap untuk lain lain cryptocurrency boleh tengok kat sini.

Scripting language, Turing completeness and smart contracts

Kebanyakan cryptocurrency mempunyai scripting language mereka sendiri yang boleh ditempel ke dalam mana-mana transaction.

Sesetengah daripadanya adalah Turing complete; Solidity language dalam Ethereum. Benda ni penting untuk run Smart Contract yakni sebuah program untuk menjalankan contract antara pengguna menggunakan consensus.

Sebagai contoh, smart contract amat berguna untuk company insuran membayar ganti rugi secara automatik jika berlaku apa-apa kemalangan etc.

Banyak lagi kegunaan smart contract dalam dunia, to put it in another perspective, something yang melibatkan pembayaran secara berkala.

Contoh islamik sikit, ambillah pembayaran zakat fitrah atau pendapatan. Tapi takleh gak kot, sebab zakat perlukan akad. Cukai pendapatan, cukai pintu, bayar road tax etc.

Contoh yang lagi kompleks dalam penggunaan kontrak pintar ialah DAO (Decentralized Autonomous Organization), yakni sebuah syarikat yang tiada manager atau pekerja office. Semua dijalankan oleh smart contract (code). Yeah man, in code we trust.

Isu-isu berkaitan

Antara isu kontroversi yang aku dapat korek dari internet ialah:

1. Centralization

Kecenderungan terhadap centralization dengan Blockchain yang membesar; dengan meningkatnya tumbesaran Blockchain, lagi banyak keperluan storage, bandwidth dan computational power yang diperlukan oleh "full nodes" dalam network, menjuruskan lebih banyak risiko ke arah centralization kalau Blockchain makin besar, yang hanya beberapa nodes sahaja yang boleh memproses sesebuah block. Topik ni hangat diperkatakan dalam isu 51% attack.

2. Block size limit

Isu yang berkaitan dengan miners dan Bitcoin adalah daripada built-in hardcoded dalam Bitcoin Core terhad kepada 1 MB per block (~10 minutes) untuk block disahkan. Limit ini tak boleh diubah (nak increase or decrease) tanpa hard-fork; yakni topik yang agak controversial dalam mana mana decentralized systems.

Kenapa setakat 1 MB kau tanya. Sebab nak prevent dari DoS attack, kata sorang mamat dari bitcointalk forum.

3. Fee transaksi yang kian meningkat

Fee yang tinggi untuk transaksi Bitcoin dan potensi untuk fee tersebut di tingkatkan bila mana network membesar.

Attack vectors

"Every great system, has its greatest flaws" — John (motherfucking) Doe

Quote atas ni datang dari some ethical hacking ebook. Kita tahu Blockchain, Bitcoin adalah satu inovasi yang mantap lagi powerful. Tapi malangnya quote ini memang apply kepada apa-apa teknologi. No matter how powerful your system is, mesti ada masalah yang tak dapat dielakkan.

Antara isu sekuriti yang mengelilingi teknologi Blockchain seperti:-

1. 51% attack

Ia mungkin terjadi (secara hipotetikal) apabila pemegang cryptocurrency memiliki 51% daripada semua share dalam sesebuah network.

Dalam kes bitcoin, miners yang memegang 51% daripada pool network mungkin berkuasa untuk menyalahgunakan kuasa untuk buat consensus yang berat sebelah untuk lakukan double spending.

Mereka ada kuasa penuh dalam network dan mampu memanipulasi rekod awam (Blockchain) dengan sukahati. Kalau terjadi, maka konsep demokrasi akan berubah menjadi diktatorship.

Well, not quite

Ada beberapa benda sahaja manusia yang ada 51% pegangan boleh buat. Mereka mampu menghalang transaksi daripada apa-apa confirmation, maka membuatkan ia invalid, secara potensinya menghalang orang daripada membuat transaksi antara address.

Mereka juga mampu me-reverse transaction yang mereka hantar sewaktu mereka dalam kuasa (membolehkan double spending terjadi), juga mampu menghalang miners daripada menjumpai block.

Kenapa 51%?

Sebab 51% kira dah lebih setengah daripada keseluruhan penggunaan network.

Bolehkah ia terjadi pada PoW atau PoS?

Dua dua.

Kalau dalam PoW (melibatkan mining), pool mana yang ada hash rate >50% itulah yang akan trigger benda ni. Dalam hal ni, mining pool yang popular ada potensi dalam attack berbanding dengan orang yang mine sorang-sorang. Tapi boleh jadi juga orang tu ada supercomputer di mana hashing power dia over 9000.

Kalau salah tolong betulkan; dalam PoS pula, orang yang ada pegangan >50% daripada total existence sesuatu coin mampu lakukan attack ni. Tapi tak sewenangnya kot. Mesti ada some mechanism dalam PoS scheme yang boleh halang 51% attack terjadi. Tak jumpa pula source dari interwebs.

2. Sybil attack

Nama Sybil diambil daripada sebuah buku yang ditulis oleh Flora Rheta Schreiber pasal perempuan yang ada dissociative identity disorder 23 (multiple personality disorder).

"So, apa kaitannya?" jiran kau tanya. Well, serangan Sybil ni berlaku apabila seseorang tu merosakkan sesebuah sistem reputasi dalam P2P network dengan membuat beribu lemon fake identity dan menggunakannya untuk mendapat pengaruh dalam network tu.

Serangan sebegini sudah dijumpai sejak zaman BitTorrent lagi, sejak P2P network mula berkembang. Menurut Douceur dalam paper dia "The Sybil Attack", kalau seorang entiti dapat melambangkan banyak entiti-entiti lain, sebuah sistem boleh dikawal olehnya, maka dapat melemahkan lagi sebuah sistem. Sebab P2P network direka untuk percaya kepada kepercayaan (trust) antara node lain. Benda ini tak mustahil boleh terjadi.

Satu contoh mudah yang tak melibatkan P2P network adalah bila kau buat banyak account Gmail semata-mata nak vote kawan kau dalam internet poll. Itulah dikatakan dengan sistem reputasi yang ada lubang. Selain itu, company juga boleh guna attack ini untuk dapatkan rating Google Page Rank yang baik.

Beliau berkata lagi, satu jalan penyelesaian untuk mengelakkan benda ini terjadi adalah dengan adanya 3rd party agensi untuk mengesahkan identiti. Sebagai contoh, VeriSign.

Apa attacker boleh buat dalam kes Blockchain?

Dalam konteks voting system, sebuah kerajaan mungkin boleh koordinat serangan ini untuk menang dalam election (katakanlah voting dibuat dalam Blockchain). Yes, voting guna Blockchain is already a work in progress; BitCongress.

Tapi dalam kes ini, serangan susah untuk dilakukan sebab penggunaan consensus PoW (more info). Secara ringkasnya, node akan percaya kepada chain yang paling banyak proof of work. Kalau node tu cuba untuk jadi Sybil, tapi tiada proof of work (tak mine block), maka ia adalah fake.

3. Double spending

Oh, rupanya blockchain.info ada buat page untuk double spent transaction. Interesting.

Jadi, apa itu double spending? Menurut Bitcoin stackexchange accepted answer ni, ia adalah satu attack di mana satu coin di belanja dalam lebih dari satu transaction.

Katanya lagi, ada beberapa cara nak melakukan perbelanjaan double:

Race attack
  • Hantar dua transaction yang bercanggah dalam masa yang singkat. Kira macam tekan button send serentak la kot.

Prevention
  • Tunggu 1 confirmation dikeluarkan dalam sesuatu transaction. Barulah confirm ia betul.

Finney attack
  • Memerlukan miner (attacker) dalam serangan ni.
  • Merchant side (recipient) membenarkan unconfirmed transaction.
  • Di mana attacker ni perlu pre-mine (mine normally tapi tak broadcast ke network) satu block yang mengandungi coin dia sendiri (hantar ke diri sendiri) dan belanja coin yang sama kepada merchant yang accept unconfirmed transaction tadi. Lepas tu baru dia release block tersebut untuk dapatkan balik coin dia tadi tu. Maksudnya dia hantar ke merchant -- which dapat angin je -- dan juga dapat balik coin yang di pre-mine tadi.

Prevention
  • Tunggu at least 6 confirmation, baru confirm ia betul. Wait, that doesn't makes sense. Maybe kena baca apa yang mamat ni tulis dalam master thesis dia.

51% attack
  • Dah explain kat atas sana, sila scroll. Basically, memiliki 51% of total computing power (ie. PoW scheme), dan mampu me-reverse apa-apa transaction yang dia nak. Like a boss.

Prevention
  • None lol jk. Google sendiri and deal with it :p

5. Security vulnerabilities & bugs

Benda ni macam simple. Tapi dalam kes blockchain, sekali ada bug yang critical, kena hard-fork seluruh network. Lepas tu kena suruh semua client dan miners untuk upgrade software dia. Tak ke leceh gitu?

Contoh paling dekat ialah DAO hack. Hambik kau, tengah best layan harga Eth nak sampai 25 USD sekali kena hack (tak hack lah, cuma ada flaw dalam smart contract code). Merudum jatuh sampai ke 10 USD. Menangis wei. Sekarang ni sibuk diskus kat Reddit bagai nak hardfork ke nak softfork. Tapi baru baru ni, mereka dah capai consensus dah pun, Ethereum blockchain di hardfork.

Scalability

Part ni aku cuma nak faham apakah yang dipersoalkan dengan "blockchain scalability" oleh segelintir manusia yang skeptik (developer) di ruang internet.

Adakah dengan merekod segala transaksi Bitcoin dalam Blockchain dapat menjejaskan sekuriti atau kebolehannya menangani amount transaksi yang besar?

Dalam perkara ini, Bitcoin cuba nak compete dengan payment gateway yang dah mainstream seperti Visa dan Paypal. Visa dapat handle dalam 2000-4000 transaksi sesaat (tps), secara puratanya.

Paypal pula dapat handle dalam 10 juta transaksi sehari atau 115 tps. Bitcoin on the other hand, terhad kepada 7 tps disebabkan protokolnya hanya menyokong block size sehingga 1 MB.

Selain daripada tu, CPU, storage dan network utilization juga menjadi satu masalah scalability dalam Bitcoin network.

Basically, secara teorinya nak capai 4000 tps, CPU, storage, dan network kenalah power. Tapi Bitcoin punya current build belum boleh capai sehebat Paypal atau Visa.

Jadi, optimization yang boleh diterapkan untuk membuat Bitcoin lebih scalable dari segi hardware utilization, seperti CPU dan Simplified payment verification (SPV).

Atas sebab nature Blockchain, Bitcoin adalah sumber terbuka, ada juga cadangkan cadangan penambahbaikan platform ini daripada komuniti seperti:-

1. Ultimate blockchain compression

Satu idea meng-compress blockchain untuk mencapai "trust-free lite nodes" (lol wtf is that?). Seperti yang sudah di tl;dr kan oleh seorang Reddit user ripper2345, ia adalah satu cadangan untuk mengasingkan blockchain -- bukan fork, tapi miners masih mine di chain yang sama -- yang lagi ringan daripada chain utama.

Chain yang terasing ini hanya menyimpan "unspent transaction outputs" sahaja. Ia bagi mendapatkan muat turun Blockchain yang pantas untuk client yang tak mine, tanpa memerlukan trust untuk 3rd party.

2. The Mini-Blockchain Scheme

Kalau nak tahu, Blockchain sekarang agak "bulky" dengan benda benda sampah (although data yang berguna), tapi benda benda ini semua buat Blockchain kita ini berat.

Jadi, scalability issue pun datang. Dalam proposal ini mencadangkan, transaksi yang sudah lama boleh dilupakan oleh network.

Semenjak kita tahu sesebuah node hanya pakai bahagian chain yang baru untuk sync kita panggil bahagian ini "mini-blockchain" (bahagian 1).

Proposal ini pun sudah mengenalpasti bahawa sekuriti akan terjejas kalau buat macam ini, tapi ia boleh diselesaikan dengan "proof chain" (bahagian 2) dan data data ownership coin yang sudah dilupakan tu boleh diselesaikan dengan membina satu database yang memegang address yang ada isi di dalamnya, dipanggil "account tree" (bahagian 3).

Basically, benda ini ada 3 bahagian, mini-blockchain, proof chain dan account tree.

Katanya lagi, Proof chain ni mengawal mini-blockchain dan mini-blockchain mengawal account tree. Antara benefit yang ada dalam proposal ini adalah ia dapat mengetatkan lagi keutuhan dan sekuriti, transaksi yang pantas dan dapat menurunkan fee, network sync yang laju, dapat menyokong trafik yang tinggi, ruang block yang lagi besar untuk custom messages dan ada potensi untuk tingkatan anonymity.

3. Lightning network

Dicadangkan oleh Joseph Poon dan rakan sekerjanya Thaddeus Dryja, Lightning Network bermaksud Rangkaian Kilat lol. Budak berdua ini cadangkan, macammana satu layer atas Bitcoin blockchain dapat membolehkan transaksi yang murah dan segera, sambil meningkatkan lagi scalability. Boom! Simple idea dia.

Ia hanyalah satu teori; takde code whatsoever, tapi still a work in progress.

Disebabkan itu, ramai dari kalangan komuniti buat argument dan tohmahan tak berfakta terhadap teori ni berkenaan dengan campur tangan Blockstream -- sebuah company yang membina aplikasi Bitcoin specifically dalam bidang sidechain.

Macam mana ia berfungsi?

Secara amnya, Lightning Network direka untuk mengurangkan volume dalam Blockchain dengan menyalurkan transaksi dan mikro-transaksi (transaksi kurang dari 1 satoshi dan biasanya wujud dalam fee penghantaran) kepada satu sidechain lain, yang juga sync dengan Blockchain utama, dalam jarak waktu yang tetap.

Kenapa?

Atas sebab isu scalability, Bitcoin sekarang hanya menyokong ~7 tps dan limited kepada 1 MB ruang block. Untuk meluaskan lagi kuasanya untuk mencapai 45000 tps, proposal ini cakap transaksi Bitcoin haruslah di lakukan di luar Blockchain 18.

Use cases

Basically, this infographic tells everything pasal use cases of Blockchain. Yang ni pun interesting juga. But, to put it simply, beberapa general use-cases such as:-
  • Smart contracts
  • Smart assets
  • Clearing and settlements
  • Payments
  • Digital identity

Perbezaan antara aplikasi Blockchain

Di sini kita boleh lihat CHART matrix perbezaan antara teknologi Blockchain yang digunapakai oleh aplikasi lain.

PENING? Semoga memberi manfaat.

BACA INI JUGA:

sumber: aimanbaharum

2 comments

  1. Susah juga nak faham dan hadam.. cuma yang saya tahu bitcoin dulu 200 lebih je..

    3 bulan lalu dah cecah 7300 dollar dan sekarang dah 10000 dollar..


    menyesal juga la tak invest kat bitcoin >.<

    ReplyDelete
    Replies
    1. Memang berat nak hadam. Saya pun masih kurang faham sbb sistem ni belum lagi digunakan sepenuhnya.

      Delete

TERIMA KASIH KERANA SUDI MEMBERIKAN KOMEN. INSYAA ALLAH SAYA AKAN KOMEN DI BLOG ANDA JUGA.
EmoticonEmoticon