Blockchain adalah topik yang menarik perhatian banyak pihak dalam beberapa tahun belakangan. Teknologi itu terus berkembang khususnya fungsi smart contract untuk membuat dan menjalankan aplikasi secara desentralistik dan transparan. Namun ada sejumlah tantangan yang sepatutnya dijawab.
OLEH: Richard
Peneliti di Universitas Bina Nusantara, Jakarta
Membuat decentralized application (dApp) tidaklah semudah yang kita bayangkan. Ia tak semudah membuat aplikasi biasa yang tak menggunakan jaringan blockchain.
Seperti tertera pada gambar, aplikasi biasa (conventional) pada umumnya memerlukan sejumlah komponen, Pertama, Client Application berupa browser atau aplikasi lain, baik di perangkat desktop ataupun mobile dan memiliki user interface (UI) untuk berinteraksi dengan pengguna.
Kedua, Application Layer untuk menjalan komputasi dan menjalankan business logic serta web service. Dan Ketiga, Database Layer untuk menyimpan data aplikasi.
Tak Mudah
Banyak orang menganggap untuk membuat aplikasi di atas blockchain (dApp), cukup dengan menggantikan bagian Application Layer dan Database Layer. Padahal dalam penerapannya tidaklah demikian, karena diperlukan komponen lain dan usaha yang cukup besar.
Sebuah dApp tetap memerlukan Application Layer untuk melakukan komputasi, menjalankan business logic, serta penyediaan web service.
Kita juga masih akan memerlukan Database Layer untuk menyimpan data yang tidak mungkin kita letakkan di blockchain terkait dengan data size dan complexity, karena akan tekait dengan gas cost pada aplikasi.
Konsep pemisahan ini biasa disebut dengan off-chain application. Setelah selesai dengan komponen Application Layer dan Database Layer, kita juga perlu  untuk membuat sebuah Smart Contract, untuk menjalankan program secara on-chain.
Smart Contract ini juga memerlukan interaksi dengan aplikasi off-chain melalui web service. Komponen lain yang tak kalah penting adalah setiap ingin melakukan transaksi, developer aplikasi dan pengguna harus memiliki Crypto Wallet untuk mengakses Smart Contract yang telah kita deploy ke jaringan blockchain.
Pengguna aplikasi juga perlu memasang aplikasi Crypto Wallet seperti Metamask untuk mengontrol private key mereka untuk berinteraksi dengan aplikasi yang kita buat.
Tentu saja hal ini membawa konsekuensi bagi tingkat kemudahan dalam menggunakan aplikasi kita.
Pengguna aplikasi bisa saja akan merasa kerepotan jika diminta untuk memasang aplikasi pihak ketiga dan ini bisa berdampak kepada turunnya minat untuk menggunakan aplikasi.
Dalam mengatasi hal ini, developer aplikasi memiliki pilihan untuk membiarkan pengguna mengontrol private key, atau kita membantu untuk mengontrol private key mereka.
Namun, pilihan kedua ini kita memiliki resiko yang lebih tinggi, karena kita akan berperan sebagai money transmitter dan memunculkan legal serta security aspect yang perlu kita pertimbangkan.
Tantangan Membuat Smart Contract
Application Layer serta Web Service yang telah dibangun akan berinteraksi dengan smart contract yang dijalankan pada sebuah virtual machine pada blockchain.
Proses pembuatan smart contract memerlukan keahlian khusus dan belum banyak programmer yang memiliki keahlian di bidang ini.
Pada tahap pembuatan smart contract biasanya orang akan mengalami overbudget terkait dengan cost dan timeline.
Namun, ada dua hal penting yang biasanya terabaikan saat membangun sebuah smart contract. Pertama, membuat smart contract yang baik tentunya membutuhkan developer yang berpengalaman dan tarifnya tidak murah,
Kedua, smart contract yang kita buat harus teraudit dengan baik oleh pihak ketiga. Ini juga memerlukan waktu dan biaya. Smart contract yang tak diaudit akan berdampak buruk bagi pengguna, misalnya kehilangan uang atau citra bisnis kita.
Tantangan lainnya adalah memadukan (integration) seluruh komponen secara baik. Menjaga interaksi antar komponen juga usaha yang sangat melelahkan. Belum lagi bicara tentang proses pembaruan aplikasi pihak ketiga, seperti crypto wallet dan virtual machine.
Standard Internasional
Teknologi blockchain harus diakui memiliki keunggulan dibandingkan teknologi database yang sudah ada. Namun, kita diakui pula, bahwa blockchain masih pada tahap awal perkembangan.
Saat ini beberapa peneliti, akademisi dan praktisi sedang bekerja untuk merumuskan sebuah standard baku dan framework dalam pembuatan blockchain dan smart contract.
Sebagai contoh, lembaga sertifikasi besar seperti International Standard Organization (ISO) melalui ISO/TC 307 sedang merumuskan standarisasi terkait dengan blockchain.
Hal ini menunjukkan bahwa teknologi blockchain dan dApp akan terus berkembang ke depannya.
Kita mengharapkan bahwa teknologi ini akan semakin accesible bagi para pengembang aplikasi maupun para pengguna. [*]