Pengertian Blockchain
Secara teknis blockchain adalah sebuah kumpulan block yang membentuk sebuah rantai (chain). Rantai tersebut akan terus bertambah ketika block baru ditambahkan. Dapat diibaratkan sebagai buku besar (ledger) yang dimana setiap transaksi yang terjadi disimpan pada tiap block.
Setiap block diidentifikasikan menggunakan hash. Setiap block berisi transaksi yang terjadi dan menunjuk hash dari block sebelumnya sehingga akan membuat block tersebut saling terhubung. Namun block pertama adalah spesial dan tidak ada block di belakangnya, maka block pertama tersebut tidak menunjuk hash dari block sebelumnya. Block pertama tersebut bernama genesis block.
Transaksi Blockchain
Pada sebuah blockchain terdapat beberapa tahapan bagaimana transaksi dalam sebuah blockchain dapat bekerja. Di dalam jaringan blockchain setiap node memegang salinan block yang sama, sebuah node dapat menjadi sebuah entry point dari pengguna blockchain yang berbeda. Untuk lebih jelasnya bagaimana sebuah transaksi dapat terjadi hingga terbentuk sebuah block, berikut merupakan tahapan yang terjadi.
User berinteraksi didalam blockchain dengan menggunakan pasangan private key dan public key. Saat transaksi terjadi, transaksi tersebut akan ditanda tangani menggunakan private key. Kemudian transaksi tersebut akan dialamatkan menggunakan public key. Selanjutnya transaksi tersebut akan dikirimkan kepada peer lainnya. Penggunaan kriptogtafi asimetris menjamin authentication, integrity, dan non-repudiation didalam jaringan blockchain.
Selanjutnya setelah peer menerima transaksi tersebut akan melakukan validasi terlebih dahulu bahwa transaksinya valid. Kriteria valid atau tidaknya transaksi telah ditentukan saat membangun jaringan blockchain dan disebut dengan konsensus. Jika transaksi yang diterima dianggap tidak valid, maka transaksi tersebut akan dibuang.
Kemudian transaksi yang valid tersebut akan disusun oleh orderer. Orderer merupakan node yang terdapat pada jaringan blockchain yang bertugas untuk menyusun transaksi, membuat block, dan memberikantimestamp terhadap block yang akan disusun. Pada proses ini dapat disebut dengan mining. Mining node kemudian melakukan broadcast block yang sudah jadi tersebut kedalam jaringan blockchain.
Langkah yang terakhir yaitu node yang menerima block tersebut memvalidasi bahwa block yang diterima berisi transaksi yang valid dan memiliki nilai hash yang menunjuk ke block sebelumnya. Jika memang sudah terpenuhi, maka setiap node akan menambahkan block kedalam chain yang ada.
Jenis Blockchain
Blockchain berdasarkan mode operasinya dibagi menjadi 2, yaitu permissionless dan permissioned.
Permissionless atau bisa disebut dengan public blockchain memungkinkan siapa saja untuk dapat bergabung kedalam jaringan blockchain dan seluruh partisipan memiliki akses terhadap transaksi yang pernah tercatat didalam blockchain. Metode konsensus yang digunakan adalah Proof Of Work (PoW), dimana seluruh partisipan melakukan proses mining untuk memvalidasi sebuah transaksi sehingga memengaruhi kinerja pemrosesan transaksi.
Sedangkan pada permissioned atau private blockchain, tidak semua partisipan dapat bergabung kedalam jaringan blockchain, melainkan hanya partisipan yang telah ditentukan dan hak aksesnya sesuai dengan apa yang ditentukan. Metode konsensus yang digunakan berbeda dengan yang digunakan oleh permissionless, dimana ketika transaksi terjadi endorser peer melakukan pengesahan jika transaksi tersebut memenuhi kondisi yang diberikan. Setelah itu transaksi yang sudah sah tersebut akan di-broadcast ke semua peer yang ada pada channel yang sama. Algoritma konsensus yang digunakan adalah Practical Byzantine Fault Tolerance (PBFT). Penggunaan algoritma konsensus menggunakan PBFT lebih cocok digunakan saat integritas data merupakan hal yang diprioritaskan.