Keling, Corda-ning asosiy xususiyatlarini va uning boshqa blokcheynlar orasida o'ziga xosligini ko'rib chiqaylik:
- Corda o'zining kriptovalyutasiga ega emas.
- Corda kon kontseptsiyasidan va Proof-of-Work tizimidan foydalanmaydi.
- Ma'lumotlarni uzatish faqat bitim/shartnoma taraflari o'rtasida sodir bo'ladi. Barcha tarmoq tugunlariga global eshittirish mavjud emas.
- Barcha operatsiyalarni boshqaradigan markaziy nazoratchi yo'q.
- Corda turli konsensus mexanizmlarini qo'llab-quvvatlaydi.
- Ishtirokchilar o'rtasida konsensusga butun tizim darajasida emas, balki individual kelishuv/shartnoma darajasida erishiladi.
- Bitim faqat unga aloqador ishtirokchilar tomonidan tasdiqlanadi.
- Corda rasmiy insoniy huquqiy til va aqlli shartnoma kodi o'rtasida to'g'ridan-to'g'ri aloqani taklif qiladi.
Daftar
Korda daftar tushunchasi sub'ektivdir. Yagona markaziy ma'lumotlar ombori mavjud emas. Buning o'rniga, har bir tugun o'ziga ma'lum bo'lgan faktlarning alohida ma'lumotlar bazasini saqlaydi.
Misol uchun, 5 tugunli tarmoqni tasavvur qiling, bu erda aylana tugunga ma'lum bo'lgan faktdir.
Ko'rib turganimizdek, Ed, Karl va Demi 3-fakt haqida bilishadi, lekin Elis va Bob bundan hatto xabardor emaslar. Corda umumiy faktlar har bir tugunning ma'lumotlar bazasida saqlanishini va ma'lumotlar bir xil bo'lishini kafolatlaydi.
Shtatlar
Davlat o'zgarmas ma'lum bir vaqtda bir yoki bir nechta tarmoq tugunlariga ma'lum bo'lgan faktni ifodalovchi ob'ekt.
Davlatlar o'zboshimchalik bilan ma'lumotlarni saqlashi mumkin, masalan, aktsiyalar, obligatsiyalar, kreditlar, identifikatsiya ma'lumotlari.
Misol uchun, quyidagi holat IOUni ifodalaydi - Elisning Bobga X miqdorida qarzdorligi haqidagi kelishuv:
Vaqt bo'yicha faktning hayot aylanishi holatlar ketma-ketligi bilan ifodalanadi. Joriy holatni yangilash zarur bo'lganda, biz yangisini yaratamiz va hozirgisini tarixiy deb belgilaymiz.
Jurnallar
Bitimlar buxgalteriya kitobini yangilash bo'yicha takliflardir. Ular buxgalteriya hisobining barcha ishtirokchilariga uzatilmaydi va faqat ularni ko'rish va boshqarish uchun qonuniy huquqqa ega bo'lgan tarmoq ishtirokchilari uchun mavjud.
Bitim buxgalteriya kitobiga qo'shiladi, agar:
- shartnoma asosida amal qiladi
- barcha talab qilinadigan ishtirokchilar tomonidan imzolangan
- ikki martalik xarajatlarni o'z ichiga olmaydi
Corda UTXO (ishlatilmagan tranzaksiya chiqishi) modelidan foydalanadi, bunda har bir daftar holati o'zgarmasdir.
Tranzaktsiya yaratilganda, oldingi tranzaksiyaning chiqish holati (xesh va indeks bo'yicha) kirishga o'tkaziladi.
Tranzaksiyaning hayot aylanishi:
- Yaratish (Hozirda tranzaksiya buxgalteriya kitobini yangilash taklifidir)
- Imzolarni to'plash (Tranzaksiyaning talab qilinadigan tomonlari bitimga imzo qo'shish orqali yangilash taklifini tasdiqlaydi)
- Tranzaktsiyani buxgalteriya kitobiga topshirish
Buxgalteriya daftariga tranzaktsiya qo'shilgandan so'ng, kirish holatlari tarixiy deb belgilanadi va kelajakdagi operatsiyalarda foydalanilmaydi.
Kirish va chiqish holatlariga qo'shimcha ravishda, tranzaktsiya quyidagilarni o'z ichiga olishi mumkin:
- Buyruqlar (tranzaksiya maqsadini ko'rsatuvchi tranzaksiya parametri)
- Qo'shimchalar (bayram taqvimi, valyuta konvertori)
- Vaqt oynalari (yaroqlilik muddati)
- Notarius (notarius, tranzaktsiyalarni tasdiqlovchi tarmoq ishtirokchilari)
Shartnomalar
Bitimning haqiqiyligi haqida gapirganda, biz nafaqat zarur imzolarning mavjudligini, balki shartnomaning haqiqiyligini ham nazarda tutamiz. Har bir tranzaksiya uni qabul qiladigan va kirish va chiqish holatlarini tasdiqlovchi shartnoma bilan bog'lanadi. Bitim faqat uning barcha holatlari haqiqiy bo'lgan taqdirdagina haqiqiy hisoblanadi.
Kordadagi shartnomalar istalgan JVM tilida (masalan, Java, Kotlin) yoziladi.
class CommercialPaper : Contract {
override fun verify(tx: LedgerTransaction) {
TODO()
}
}
Sinfdan meros olish kerak shartnoma va usulni bekor qiling Tekshiring. Agar tranzaksiya noto'g'ri bo'lsa, istisno chiqariladi.
Tranzaksiyani tekshirish deterministik bo'lishi kerak, ya'ni. shartnoma har doim tranzaktsiyani qabul qilishi yoki rad etishi kerak. Shu munosabat bilan, tranzaktsiyaning haqiqiyligi vaqtga, tasodifiy raqamlarga, xost fayllariga va boshqalarga bog'liq bo'lishi mumkin emas.
Corda-da shartnomalar sandbox deb ataladigan joyda bajariladi - shartnomalarning deterministik bajarilishini kafolatlaydigan biroz o'zgartirilgan JVM.
Oqim
Tarmoq tugunlari orasidagi aloqani avtomatlashtirish uchun iplar qo'shildi.
Oqim - bu tugunga ma'lum bir daftarni yangilashni qanday amalga oshirish kerakligini va qaysi nuqtada tranzaktsiya imzolanishi va tasdiqlanishi kerakligini aytadigan bosqichlar ketma-ketligi.
Ba'zan bitim barcha tomonlar tomonidan imzolanib, buxgalteriya kitobiga tushgunga qadar soatlar, kunlar ketadi. Agar tranzaktsiyada ishtirok etuvchi tugunni uzsangiz nima bo'ladi? Mavzularda nazorat nuqtalari mavjud bo'lib, ularda ipning holati tugun ma'lumotlar bazasiga yoziladi. Tugun tarmoqqa tiklanganda, u to'xtagan joyidan davom etadi.
Kelishuv
Buxgalteriya kitobiga kirish uchun bitim ikkita konsensusga erishishi kerak: haqiqiylik va o'ziga xoslik.
Bitimning haqiqiyligi to'g'risidagi qaror faqat unda bevosita ishtirok etuvchi tomonlar tomonidan qabul qilinadi.
Notarius tugunlari tranzaktsiyaning o'ziga xosligini tekshiradi va ikki marta sarflanishini oldini oladi.
Tasavvur qilaylik, Bobda 100 dollar bor va xuddi shu kiritish holatidan foydalanib, Charliga 80 dollar va Denga 70 dollar oβtkazmoqchi.
Korda sizga bunday hiyla-nayrangni olishga ruxsat bermaydi. Garchi tranzaktsiya haqiqiylik tekshiruvidan o'tgan bo'lsa-da, noyoblik tekshiruvi muvaffaqiyatsiz bo'ladi.
xulosa
R3 blokcheyn konsorsiumi tomonidan ishlab chiqilgan Corda platformasi blokcheyn texnologiyasi uchun sof foydalanish holati emas. Corda moliyaviy institutlar uchun juda ixtisoslashgan vositadir.
Manba: www.habr.com