Smart Contract pada Hyperledger Fabric

Suatu smart contract, atau apa yang Fabric sebut “chaincode”, berfungsi sebagai suatu aplikasi terdistribusi yang terpercaya yang memperoleh security/trust-nya dari blockchain tersebut dan mendasari konsensus di antara peer-peer. Itu adalah suatu logika bisnis dari aplikasi blockchain.

Ada tiga poin kunci yang berlaku pada smart contract, terutama ketika diterapkan kepada suatu platform:

  • banyak smart contract yang dapat berjalan secara bersamaan di dalam jaringan,
  • kontrak-kontrak itu dapat di-deploy secara dinamis (dalam banyak kasus oleh siapa pun), dan
  • kode aplikasi sudah seharusnya diperlakukan sebagai tidak terpercaya, berpotensi untuk tidak dipercaya dan bahkan berbahaya.

Kebanyakan platform blockchain yang dapat menjalankan smart-contract mengikuti suatu arsitektur order-execute yang mana protokol konsensusnya:

  • memvalidasi dan mengorder transaksi dan kemudian menyebarkannya kepada semua node peer,
  • setiap peer kemudian mengeksekusi transaksi tersebut secara berurutan.

Arsitektur order-execute tersebut pada dasarnya dapat ditemukan di dalam semua sistim blockchain yang ada, mulai dari platform public/permissionless seperti Ethereum (dengan konsensus berbasis PoW) sampai platform permissioned seperti Tendermint, Chain, dan Quorum.

Smart contract yang mengeksekusi di dalam suatu blockchain yang beroperasi dengan arsitektur order-execute tersebut haruslah bersifat deterministik; karena kalau tidak, konsensus tidak akan pernah dicapai. Untuk menyelesaikan isu-isu yang bersifat non-determinisme, banyak platform menghendaki smart contract tersebut ditulis di dalam suatu bahasa yang non-standar, atau domain-specific (seperti Solidity) sehingga operasi yang bersifat non-deterministik dapat dihilangkan. Hal ini menghalangi adopsi secara luas karena hal tersebut menghendaki para developer yang menulis smart contract untuk mempelajari bahasa baru dan dapat mengarah kepada error dalam pemrograman.

Lebih jauh lagi, karena semua transaksi dieksekusi secara berurutan oleh semua node, performa dan skala dibatasi. Adalah merupakan fakta, bahwa kode smart contract mengeksekusi pada setiap node di dalam permintaan sistim yang ukuran rumitnya diambil untuk melindungi keseluruhan sistim dari kontrak yang berpotensi jahat untuk memastikan ketahanan dari keseluruhan sistim.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top