
Topik tentang komparasi antara blockchain dan basis data tradisional sebenarnya bukanlah hal yang baru. Bila Anda mencoba googling dengan kata kunci “blockchain versus basis data tradisional” atau dalam bahasa Inggrisnya “blockchain versus traditional database”, maka akan muncul berbagai artikel yang bisa jadi memiliki simpulan yang amat berbeda antara satu dan lainnya, misalnya di sini atau di sini. Saya sendiri belum menemukan artikel yang pas untuk menjelaskan perbedaan di antara keduanya, dan untuk itulah tulisan ini diangkat.
Basis data tradisional sendiri sudah ada sejak puluhan tahun yang lalu, yang menjadi pondasi hampir semua aplikasi modern dan juga web 2.0. Basis data memungkinkan aplikasi menjadi lebih dinamis, dengan pemisahan antara logika aplikasi dengan pengelolaan data/informasi yang terkait dengan aplikasi tersebut. Sistem basis data merupakan upgrade yang signifikan dari sekedar penyimpanan informasi dalam berkas, karena sistem basis data mengoptimasi cara pengelolaan informasi sehingga dapat diproses dengan jauh lebih cepat ketimbang berkas biasa.
Berbeda dengan basis data, istilah blockchain sendiri belum berusia sedekade. Bahkan dalam whitepaper milik Satoshi Nakamoto tidak dikenal istilah blockchain. Blockchain sendiri merupakan sebuah struktur baru yang memungkinkan pihak-pihak yang berbeda saling berbagi informasi dengan cara yang lebih aman.
Kedua istilah ini, blockchain dan basis data, tidak dapat dilepaskan dari ranah informasi. Keduanya memang bertugas untuk menyimpan informasi, namun dengan titik fokus yang amat berbeda. Jika basis data berfokus untuk mengelola informasi dan mengoptimasi cara penyimpanan informasi agar dapat dikelola dengan lebih efisien, maka blockchain yang digambarkan dalam whitepaper Satoshi Nakamoto lebih berfokus pada keamanan, di mana tidak ada perubahan yang dapat dilakukan tanpa persetujuan bersama (konsensus).
Dengan persamaan di antara keduanya, yakni mengelola informasi, apakah kedua istilah ini dapat dibandingkan satu sama lain?
Saya rasa tidak. Begini penjelasannya.
Seluruh sistem blockchain pada dasarnya dibangun di atas produk basis data tertentu. Sebut saja blockchain milik Bitcoin yang awalnya menggunakan BerkeleyDB, kemudian beralih ke LevelDB. Atau Monero yang menggunakan LMDB. Produk mata uang kripto seperti ByteBall menggunakan SQLite (dapat juga menggunakan MySQL) yang mendukung bahasa SQL dalam pengorganisasian informasinya dan amat populer di kalangan pengembang perangkat lunak.
Apabila blockchain dibangun di atas basis data, maka dapat dikatakan bahwa blockchain merupakan layer aplikasi yang membutuhkan basis data untuk mengelola informasi, terlepas dari produk basis data apa yang digunakan. Oleh karena itu, perbandingan antara blockchain dan basis data tradisional bagi saya kurang tepat.
Blockchain lebih tepat diperbandingkan dengan aplikasi tersentralisasi, misalnya e-commerce yang digawangi oleh perusahaan tertentu, di mana perusahaan tersebut memiliki kontrol sepenuhnya terhadap aplikasi e-commerce milik mereka sendiri. Nah, dalam hal ini, blockchain bisa dimanfaatkan untuk membangun aplikasi tanpa pengendali pusat dengan mengandalkan konsensus.
Blockchain juga dapat diperbandingkan dengan aplikasi pencatatan (logging), atau bahkan juga aplikasi akuntansi yang sebenarnya tidak membutuhkan fitur penghapusan informasi karena ada mekanisme untuk memperbaiki data tanpa penghapusan data histori sebelumnya.
Pertanyaan menarik berikutnya adalah, apakah blockchain dapat dibangun tanpa menggunakan konsensus?
Istilah blockchain sendiri saat ini amat luas, dan pendefinisian istilah ini memerlukan studi yang mendalam. Mengingat bahwa saat ini produk-produk yang mengaku sebagai produk blockchain amat bervariasi, maka ruang lingkup blockchain juga perlu disesuaikan untuk mencakup seluruh produk ini (lebih kurang karena blockchain sendiri berada dalam domain publik yang hak ciptanya tidak dimiliki pihak manapun).
Blockchain publik seperti milik Bitcoin memiliki keterbatasan kapasitas karena implementasi konsensus dan juga asumsi propagasi jaringan yang dibuat seminimal mungkin. Keputusan untuk membuat satu blok tiap 10 menit pada sistem Bitcoin barangkali merupakan asumsi 10 tahun lalu, di mana tingkat kecepatan Internet amat jomplang di berbagai belahan dunia.
Dalam hal ini, Satoshi tidak ingin menganakemaskan mereka yang tinggal di negara dengan kecepatan Internet tinggi yang akan mendapatkan keunggulan dalam hal konsensus, bila penciptaan blok dilakukan lebih cepat, misalnya setiap 10 detik (meskipun sistem Ethereum mengakali hal ini dengan memperkenalkan istilah Uncle – tidak akan dibahas lebih lanjut dalam artikel ini).
Blockchain tanpa konsensus akan membuat sistem ini berjalan dengan karakter sentralisasi yang lebih kuat, ketimbang desentralisasi yang selama ini melekat pada istilah blockchain publik. Blockchain yang tersentralisasi ini dapat digunakan pada sistem-sistem tertutup (privat) yang tidak membutuhkan persetujuan pihak lain dalam penambahan informasi, namun tetap mendapatkan keuntungan dari karakteristik blockchain yang lainnya. Apa itu?
Integritas Data
Basis data tradisional seperti SQLite, MySQL, atau yang lainnya tidak memiliki fitur khusus dalam memeriksa apakah sebuah informasi telah mengalami perubahan yang tidak diotorisasi. Pengaksesan informasi dalam basis data tradisional amatlah bergantung pada fitur “Access Control” yang diterapkan oleh administrator sistem.
Bagaimanapun juga, Access Control ini memiliki kelemahan dari sisi keamanan karena amat bergantung pada username dan password, yang tentu saja mesti dijaga dari pihak-pihak yang tidak bertanggungjawab. Andaikata username dan password ini jatuh ke tangan yang salah, maka dapat pula pihak ini melakukan pengubahan yang tidak dikehendaki. Belum lagi celah keamanan yang memanfaatkan kelemahan logika pemrograman, seperti XSS dan SQLinjection yang mengeskalasi hak akses pengguna.
Pada basis data tradisional, pengecekan pengubahan informasi tanpa hak ini akan memakan waktu yang tidak sedikit, karena harus melakukan investigasi di sisi log. Permasalahannya, tidak semua sistem informasi memiliki fitur log yang memadai, termasuk juga kemungkinan entri log yang dihapus yang membuat investigasi jadi mustahil dilakukan.
Dengan menggunakan blockchain, informasi hash dari setiap entri data dapat dicatat dan diperiksa dengan lebih efisien apabila dibutuhkan. Meskipun tentu saja informasi hash ini akan memberi beban lebih pada sistem, namun apabila metode blockchain diterapkan untuk sistem informasi yang krusial, maka integritas data akan tetap terjaga.
Kenirsangkalan
Salah satu ide yang dapat diimplementasikan dari blockchain adalah memastikan kenirsangkalan dari semua informasi yang tercatat. Dalam hal ini, seseorang yang memasukkan sebuah entri informasi tidak akan dapat menyangkal bahwa ialah yang melakukan aktivitas tersebut. Nonrepudiasi dapat dilakukan dengan menambahkan informasi tanda tangan elektronik yang memiliki berbagai bentuk, dari yang paling mudah hingga yang paling kompleks menggunakan metode kriptografi.
Duplikasi Data
Dengan mengimplementasikan konsep blockchain, maka duplikasi data (misalnya untuk keperluan DRP atau disaster recovery plan yang membutuhkan backup data secara rutin) dapat dilakukan dengan mudah, karena di dalam blockchain, informasi dikelompokkan dalam epoch atau jangka waktu tertentu (lebih populer disebut dengan istilah blok), sehingga sinkronisasi data akan lebih mudah dilakukan pada multiserver.
Simpulan
Berbagai keuntungan teknologi blockchain yang dijabarkan di atas membuat blockchain tidak hanya cocok diterapkan untuk sistem desentralisasi publik seperti pada mata uang kripto, namun dapat juga diaplikasikan dalam sistem privat yang tersentralisasi. Sistem tersentralisasi tidak memerlukan konsensus yang berlebihan, namun tetap dapat mengeksploitasi fitur-fitur lain dari blockchain seperti integritas data dan kenirsangkalan.
Bukan tidak mungkin blockchain akan menjadi layer keamanan tambahan bagi sistem informasi krusial di masa mendatang.
Sumber gambar: Bitcoinist.com