Corda'nın temel özelliklerine ve diğer blockchainler arasındaki benzersizliğine bakalım:
- Corda'nın kendi kripto para birimi yoktur.
- Corda, madencilik kavramını ve İş Kanıtı sistemini kullanmaz.
- Veri aktarımı yalnızca işlemin/sözleşmenin tarafları arasında gerçekleşir. Tüm ağ düğümlerine küresel yayın yoktur.
- Tüm işlemleri yöneten merkezi bir kontrolör yoktur.
- Corda çeşitli fikir birliği mekanizmalarını destekler.
- Katılımcılar arasında tüm sistem düzeyinde değil, bireysel anlaşma/sözleşme düzeyinde fikir birliğine varılır.
- Bir işlem yalnızca onunla ilgili katılımcılar tarafından onaylanır.
- Corda, resmi insan hukuk dili ile akıllı sözleşme kodu arasında doğrudan bir bağlantı sunar.
Defter
Corda'daki defter kavramı özneldir. Tek bir merkezi veri deposu yoktur. Bunun yerine, her düğüm kendisi tarafından bilinen gerçeklerin ayrı bir veritabanını tutar.
Örneğin, bir dairenin düğüm tarafından bilinen bir gerçek olduğu 5 düğümden oluşan bir ağ hayal edin.
Gördüğümüz gibi Ed, Carl ve Demi 3. gerçeği biliyorlar ama Alice ve Bob bunun farkında bile değiller. Corda, ortak gerçeklerin her düğümün veritabanında saklandığını ve verilerin aynı olacağını garanti eder.
Eyaletler
Devlet değişmez Belirli bir zamanda bir veya daha fazla ağ düğümü tarafından bilinen bir gerçeği temsil eden bir nesne.
Devletler, hisse senetleri, tahviller, krediler, kimlik bilgileri gibi keyfi verileri saklayabilir.
Örneğin, aşağıdaki durum bir borç senedini (Alice'in Bob'a X tutarında borçlu olduğu bir anlaşmayı) temsil eder:
Bir olgunun zaman içindeki yaşam döngüsü, bir dizi durumla temsil edilir. Mevcut durumu güncellemek gerektiğinde yenisini oluşturup mevcut durumu geçmişe dönük olarak işaretliyoruz.
Işlemler
İşlemler, defteri güncelleme teklifleridir. Bunlar tüm defter katılımcılarına yayınlanmaz ve yalnızca bunları görüntüleme ve yönetme konusunda yasal hakka sahip olan ağ katılımcılarına açıktır.
Aşağıdaki durumlarda deftere bir işlem eklenecektir:
- sözleşmeye bağlı olarak geçerli
- gerekli tüm katılımcılar tarafından imzalanmış
- çift harcama içermiyor
Corda, her defter durumunun değişmez olduğu UTXO (harcanmamış işlem çıktısı) modelini kullanır.
Bir işlem oluşturulduğunda, önceki işlemin çıkış durumu (karma ve endekse göre) girişe aktarılır.
İşlem yaşam döngüsü:
- Oluşturma (Şu anda işlem yalnızca defteri güncelleme teklifidir)
- İmzaların toplanması (İşlemin gerekli tarafları, işleme imza ekleyerek güncelleme teklifini onaylar)
- İşlemi genel muhasebeye kaydet
Deftere bir işlem eklendiğinde giriş durumları geçmiş olarak işaretlenir ve gelecekteki işlemlerde kullanılamaz.
Giriş ve çıkış durumlarına ek olarak bir işlem şunları içerebilir:
- Komutlar (işlemin amacını belirten işlem parametresi)
- Ekler (tatil takvimi, para birimi dönüştürücü)
- Zaman pencereleri (geçerlilik süresi)
- Noter (Noter, işlemleri doğrulayan özel ağ katılımcıları)
Sözleşmeler.
İşlem geçerliliğinden bahsettiğimizde sadece gerekli imzaların varlığını değil aynı zamanda sözleşme geçerliliğini de kastediyoruz. Her işlem, onu kabul eden ve giriş ve çıkış durumlarını doğrulayan bir sözleşmeyle ilişkilendirilir. Bir işlem yalnızca tüm durumlarının geçerli olması durumunda geçerli kabul edilir.
Corda'daki sözleşmeler herhangi bir JVM dilinde (örneğin Java, Kotlin) yazılır.
class CommercialPaper : Contract {
override fun verify(tx: LedgerTransaction) {
TODO()
}
}
Bir sınıftan miras almak gereklidir Sözleşme ve yöntemi geçersiz kıl doğrulamak. İşlem geçersizse bir istisna atılır.
İşlem doğrulaması deterministik olmalıdır; sözleşmenin her zaman işlemi kabul etmesi veya reddetmesi gerekir. Bununla bağlantılı olarak işlemin geçerliliği zamana, rastgele sayılara, ana bilgisayar dosyalarına vb. bağlı olamaz.
Corda'da sözleşmeler, sözleşmelerin deterministik olarak yürütülmesini garanti eden, hafifçe değiştirilmiş bir JVM olan sandbox adı verilen bir alanda yürütülür.
Canlı Yayınlar
Ağ düğümleri arasındaki iletişimi otomatikleştirmek için iş parçacıkları eklendi.
Akış, bir düğüme belirli bir defter güncellemesinin nasıl gerçekleştirileceğini ve işlemin hangi noktada imzalanması ve doğrulanması gerektiğini söyleyen bir dizi adımdır.
Bazen işlemin tüm taraflarca imzalanması ve deftere geçmesi saatler, günler alır. Bir işleme katılan bir düğümün bağlantısını keserseniz ne olur? İş parçacıklarının, iş parçacığının durumunun düğümün veritabanına yazıldığı kontrol noktaları vardır. Bir düğüm ağa geri yüklendiğinde kaldığı yerden devam edecektir.
Uzlaşma
Bir işlemin deftere girebilmesi için 2 fikir birliğine varması gerekir: geçerlilik ve benzersizlik.
Bir işlemin geçerliliğine ilişkin karar yalnızca işleme doğrudan katılan taraflarca verilir.
Noter düğümleri, işlemin benzersizliğini kontrol eder ve çift harcamayı önler.
Bob'un 100 doları olduğunu ve aynı giriş durumunu kullanarak Charlie'ye 80 doları ve Dan'e 70 dolarını aktarmak istediğini varsayalım.
Corda böyle bir numara yapmana izin vermez. İşlem geçerlilik kontrolünden geçse de benzersizlik kontrolü başarısız olacaktır.
Sonuç
R3 blockchain konsorsiyumu tarafından geliştirilen Corda platformu, blockchain teknolojisi için saf bir kullanım örneği değildir. Corda, finansal kurumlar için son derece uzmanlaşmış bir araçtır.
Kaynak: habr.com