Corda – blockchain typu open source dla biznesu

Corda to rozproszona księga do przechowywania, zarządzania i synchronizacji zobowiązań finansowych pomiędzy różnymi organizacjami finansowymi.
Corda – blockchain typu open source dla biznesu
Corda ma całkiem niezłą dokumentację z wykładami wideo, które można znaleźć tutaj. Postaram się pokrótce opisać jak Corda działa w środku.

Przyjrzyjmy się głównym cechom Cordy i jej wyjątkowości wśród innych blockchainów:

  • Corda nie posiada własnej kryptowaluty.
  • Corda nie wykorzystuje koncepcji wydobycia i systemu Proof-of-Work.
  • Przekazywanie danych następuje wyłącznie pomiędzy stronami transakcji/umowy. Nie ma globalnej transmisji do wszystkich węzłów sieci.
  • Nie ma centralnego kontrolera zarządzającego wszystkimi transakcjami.
  • Corda obsługuje różne mechanizmy konsensusu.
  • Konsensus pomiędzy uczestnikami osiągany jest na poziomie indywidualnej umowy/kontraktu, a nie na poziomie całego systemu.
  • Transakcję potwierdzają jedynie uczestnicy z nią powiązani.
  • Corda oferuje bezpośrednie połączenie pomiędzy formalnym językiem prawnym człowieka a inteligentnym kodem kontraktu.

Księga

Koncepcja księgi głównej w Corda jest subiektywna. Nie ma jednego centralnego repozytorium danych. Zamiast tego każdy węzeł utrzymuje odrębną bazę danych znanych mu faktów.

Wyobraźmy sobie na przykład sieć 5 węzłów, w której okrąg jest faktem znanym węzłowi.

Corda – blockchain typu open source dla biznesu

Jak widać Ed, Carl i Demi wiedzą o fakcie 3, ale Alice i Bob nawet nie są tego świadomi. Corda gwarantuje, że w bazie danych każdego węzła zapisane zostaną wspólne fakty, a dane będą identyczne.

Stany

Stan jest niezmienny obiekt reprezentujący fakt znany jednemu lub większej liczbie węzłów sieci w określonym momencie.

Państwa mogą przechowywać dowolne dane, na przykład akcje, obligacje, pożyczki, dane identyfikacyjne.

Na przykład następujący stan reprezentuje IOU — umowę, w ramach której Alicja jest winna Bobowi kwotę X:

Corda – blockchain typu open source dla biznesu
Cykl życia faktu w czasie jest reprezentowany przez sekwencję stanów. W przypadku konieczności aktualizacji stanu bieżącego tworzymy nowy, a bieżący oznaczamy jako historyczny.

Corda – blockchain typu open source dla biznesu

Transakcje

Transakcje są propozycjami aktualizacji księgi. Nie są one udostępniane wszystkim uczestnikom księgi i są dostępne tylko dla tych uczestników sieci, którzy mają prawo do ich przeglądania i zarządzania.

Transakcja zostanie dodana do księgi, jeśli:

  • ważne umownie
  • podpisane przez wszystkich wymaganych uczestników
  • nie zawiera podwójnych wydatków

Corda wykorzystuje model UTXO (niewydane dane wyjściowe transakcji), w którym każdy stan księgi jest niezmienny.

Po utworzeniu transakcji stan wyjściowy poprzedniej transakcji (za pomocą skrótu i ​​indeksu) jest przekazywany na wejście.

Corda – blockchain typu open source dla biznesu
Cykl życia transakcji:

  • Utworzenie (Na chwilę obecną transakcja jest jedynie propozycją aktualizacji księgi)
  • Zbieraj podpisy (Wymagane strony transakcji zatwierdzają propozycję aktualizacji poprzez dodanie podpisu do transakcji)
  • Zatwierdź transakcję w księdze

Po dodaniu transakcji do księgi stany wejściowe są oznaczane jako historyczne i nie można ich wykorzystać w przyszłych transakcjach.

Corda – blockchain typu open source dla biznesu
Oprócz stanów wejściowych i wyjściowych transakcja może zawierać:

  • Komendy (parametr transakcji wskazujący cel transakcji)
  • Załączniki (kalendarz wakacji, przelicznik walut)
  • Okna czasowe (okres ważności)
  • Notariusz (Notariusz, specjalni uczestnicy sieci zatwierdzający transakcje)

Corda – blockchain typu open source dla biznesu

Kontrakty

Kiedy mówimy o ważności transakcji, mamy na myśli nie tylko obecność niezbędnych podpisów, ale także ważność umowną. Każda transakcja jest powiązana z umową, która ją akceptuje i sprawdza stany wejściowe i wyjściowe. Transakcję uważa się za ważną tylko wtedy, gdy wszystkie jej stany są prawidłowe.

Kontrakty w Cordie są pisane w dowolnym języku JVM (np. Java, Kotlin).

class CommercialPaper : Contract {
    override fun verify(tx: LedgerTransaction) {
        TODO()
    }
}

Dziedziczenie z klasy jest konieczne Umowa i zastąp metodę zweryfikować. Jeśli transakcja jest nieprawidłowa, zostanie zgłoszony wyjątek.

Walidacja transakcji musi być deterministyczna, tj. umowa musi zawsze zaakceptować lub odrzucić transakcję. W związku z tym ważność transakcji nie może zależeć od czasu, liczb losowych, plików hosta itp.

W Cordie kontrakty realizowane są w tzw. sandboksie – nieco zmodyfikowanej maszynie JVM, która gwarantuje deterministyczną realizację kontraktów.

Strumienie

Aby zautomatyzować komunikację pomiędzy węzłami sieci, dodano wątki.

Przepływ to sekwencja kroków, która informuje węzeł, jak przeprowadzić określoną aktualizację księgi i w którym momencie transakcja musi zostać podpisana i zatwierdzona.

Corda – blockchain typu open source dla biznesu

Czasami potrzeba godzin, dni, zanim transakcja zostanie podpisana przez wszystkie strony i trafi do księgi głównej. Co się stanie, jeśli odłączysz węzeł biorący udział w transakcji? Wątki posiadają punkty kontrolne, w których stan wątku jest zapisywany w bazie danych węzła. Po przywróceniu węzła do sieci jego działanie będzie kontynuowane od miejsca, w którym zostało przerwane.

Zgoda

Aby dostać się do księgi, transakcja musi osiągnąć 2 konsensusy: ważność i niepowtarzalność.

Decyzję o ważności transakcji podejmują wyłącznie strony bezpośrednio w nią zaangażowane.

Węzły notarialne sprawdzają niepowtarzalność transakcji i zapobiegają podwójnym wydatkom.

Wyobraźmy sobie, że Bob ma 100 dolarów i chce przelać 80 dolarów Charliemu i 70 dolarów Danowi, używając tego samego stanu wejściowego.

Corda – blockchain typu open source dla biznesu

Corda nie pozwoli ci na taki trik. Chociaż transakcja przejdzie kontrolę ważności, sprawdzenie unikalności zakończy się niepowodzeniem.

wniosek

Platforma Corda, opracowana przez konsorcjum blockchain R3, nie jest czystym przypadkiem użycia technologii blockchain. Corda to wysoce wyspecjalizowane narzędzie dla instytucji finansowych.

Źródło: www.habr.com

Dodaj komentarz