Mari kita lihat fitur-fitur utama Corda dan keunikannya di antara blockchain lainnya:
- Corda tidak memiliki mata uang kripto sendiri.
- Corda tidak menggunakan konsep mining dan sistem Proof-of-Work.
- Transfer data hanya terjadi antar pihak yang bertransaksi/kontrak. Tidak ada siaran global ke semua node jaringan.
- Tidak ada pengontrol pusat yang mengelola semua transaksi.
- Corda mendukung berbagai mekanisme konsensus.
- Konsensus dicapai antar peserta pada tingkat kesepakatan/kontrak individu, dan bukan pada tingkat keseluruhan sistem.
- Suatu transaksi dikonfirmasi hanya oleh peserta yang terkait dengannya.
- Corda menawarkan hubungan langsung antara bahasa hukum formal manusia dan kode kontrak pintar.
Buku besar
Konsep buku besar di Corda bersifat subyektif. Tidak ada satu tempat penyimpanan data terpusat. Sebaliknya, setiap node menyimpan database fakta terpisah yang diketahuinya.
Misalnya, bayangkan sebuah jaringan yang terdiri dari 5 node, di mana sebuah lingkaran adalah fakta yang diketahui oleh node tersebut.
Seperti yang bisa kita lihat, Ed, Carl dan Demi mengetahui fakta 3, tetapi Alice dan Bob bahkan tidak menyadarinya. Corda menjamin bahwa fakta-fakta umum disimpan dalam database setiap node, dan datanya akan sama.
Serikat
Negara adalah kekal sebuah objek yang mewakili fakta yang diketahui oleh satu atau lebih node jaringan pada titik waktu tertentu.
Negara dapat menyimpan data sewenang-wenang, misalnya saham, obligasi, pinjaman, informasi identifikasi.
Misalnya, keadaan berikut mewakili IOUβperjanjian bahwa Alice berutang kepada Bob sejumlah X:
Siklus hidup suatu fakta dari waktu ke waktu diwakili oleh serangkaian keadaan. Jika status saat ini perlu diperbarui, kami membuat status baru dan menandai status saat ini sebagai status historis.
Transaksi
Transaksi adalah usulan untuk memperbarui buku besar. Mereka tidak disiarkan ke semua peserta buku besar dan hanya tersedia bagi peserta jaringan yang memiliki hak hukum untuk melihat dan mengelolanya.
Suatu transaksi akan ditambahkan ke buku besar jika:
- sah secara kontrak
- ditandatangani oleh seluruh peserta yang diwajibkan
- tidak mengandung pembelanjaan ganda
Corda menggunakan model UTXO (output transaksi yang tidak terpakai), di mana setiap status buku besar tidak dapat diubah.
Ketika suatu transaksi dibuat, status keluaran dari transaksi sebelumnya (berdasarkan hash dan indeks) ditransfer ke masukan.
Siklus hidup transaksi:
- Pembuatan (Saat ini transaksi hanya berupa usulan untuk memperbarui buku besar)
- Kumpulkan tanda tangan (Pihak yang bertransaksi wajib menyetujui proposal pembaruan dengan menambahkan tanda tangan pada transaksi)
- Komit transaksi ke buku besar
Setelah transaksi ditambahkan ke buku besar, status masukan ditandai sebagai riwayat dan tidak dapat digunakan dalam transaksi mendatang.
Selain status input dan output, suatu transaksi mungkin berisi:
- Perintah (parameter transaksi yang menunjukkan tujuan transaksi)
- Lampiran (kalender hari libur, konverter mata uang)
- Jendela waktu (masa berlaku)
- Notaris (Notaris, peserta jaringan khusus yang memvalidasi transaksi)
Kontrak.
Ketika kita berbicara tentang keabsahan transaksi, yang kita maksud bukan hanya adanya tanda tangan yang diperlukan, tetapi juga keabsahan kontrak. Setiap transaksi dikaitkan dengan kontrak yang menerimanya dan memvalidasi status input dan output. Suatu transaksi dianggap sah hanya jika semua statusnya valid.
Kontrak di Corda ditulis dalam bahasa JVM apa pun (misalnya Java, Kotlin).
class CommercialPaper : Contract {
override fun verify(tx: LedgerTransaction) {
TODO()
}
}
Hal ini diperlukan untuk mewarisi dari suatu kelas Kontrak dan ganti metodenya memeriksa. Jika transaksi tidak valid, pengecualian akan diberikan.
Validasi transaksi harus bersifat deterministik, yaitu kontrak harus selalu menerima atau menolak transaksi. Sehubungan dengan itu, keabsahan transaksi tidak dapat bergantung pada waktu, nomor acak, file host, dll.
Di Corda, kontrak dieksekusi dalam apa yang disebut sandbox - JVM yang sedikit dimodifikasi yang menjamin eksekusi kontrak secara deterministik.
Aliran
Untuk mengotomatiskan komunikasi antar node jaringan, utas ditambahkan.
Alur adalah serangkaian langkah yang memberi tahu node cara melakukan pembaruan buku besar tertentu dan pada titik mana transaksi perlu ditandatangani dan divalidasi.
Terkadang butuh waktu berjam-jam, berhari-hari hingga transaksi ditandatangani oleh semua pihak dan masuk ke buku besar. Apa yang terjadi jika Anda memutuskan sambungan node yang berpartisipasi dalam suatu transaksi? Thread memiliki pos pemeriksaan, di mana status thread ditulis ke database node. Ketika sebuah node dipulihkan ke jaringan, node tersebut akan melanjutkan aktivitasnya di tempat terakhirnya.
Konsensus
Untuk masuk ke dalam buku besar, suatu transaksi harus mencapai 2 konsensus: validitas dan keunikan.
Keputusan keabsahan suatu transaksi hanya diambil oleh pihak-pihak yang terlibat langsung di dalamnya.
Node notaris memeriksa keunikan transaksi dan mencegah pembelanjaan ganda.
Bayangkan Bob memiliki $100 dan ingin mentransfer $80 ke Charlie dan $70 ke Dan menggunakan status input yang sama.
Corda tidak akan mengizinkan Anda melakukan trik seperti itu. Meskipun transaksi akan lolos pemeriksaan validitas, namun pemeriksaan keunikan akan gagal.
Kesimpulan
Platform Corda, yang dikembangkan oleh konsorsium blockchain R3, bukanlah kasus penggunaan murni untuk teknologi blockchain. Corda adalah alat yang sangat terspesialisasi untuk lembaga keuangan.
Sumber: www.habr.com