Corda - blockchain ανοιχτού κώδικα για επιχειρήσεις

σκοινί είναι ένα κατανεμημένο καθολικό για την αποθήκευση, διαχείριση και συγχρονισμό οικονομικών υποχρεώσεων μεταξύ διαφορετικών χρηματοπιστωτικών οργανισμών.
Corda - blockchain ανοιχτού κώδικα για επιχειρήσεις
Το Corda έχει αρκετά καλή τεκμηρίωση με διαλέξεις βίντεο που μπορείτε να βρείτε εδώ. Θα προσπαθήσω να περιγράψω εν συντομία πώς λειτουργεί το Corda στο εσωτερικό.

Ας δούμε τα κύρια χαρακτηριστικά του Corda και τη μοναδικότητά του μεταξύ άλλων blockchains:

  • Η Corda δεν έχει δικό της κρυπτονόμισμα.
  • Η Corda δεν χρησιμοποιεί την έννοια της εξόρυξης και του συστήματος Proof-of-Work.
  • Η μεταφορά δεδομένων πραγματοποιείται μόνο μεταξύ των μερών της συναλλαγής/σύμβασης. Δεν υπάρχει παγκόσμια μετάδοση σε όλους τους κόμβους δικτύου.
  • Δεν υπάρχει κεντρικός ελεγκτής που να διαχειρίζεται όλες τις συναλλαγές.
  • Το Corda υποστηρίζει διάφορους μηχανισμούς συναίνεσης.
  • Η συναίνεση επιτυγχάνεται μεταξύ των συμμετεχόντων σε επίπεδο μεμονωμένης συμφωνίας/σύμβασης και όχι σε επίπεδο ολόκληρου του συστήματος.
  • Μια συναλλαγή επιβεβαιώνεται μόνο από τους συμμετέχοντες που σχετίζονται με αυτήν.
  • Η Corda προσφέρει μια άμεση σύνδεση μεταξύ της επίσημης ανθρώπινης νομικής γλώσσας και του κώδικα έξυπνου συμβολαίου.

Το βιβλίο

Η έννοια του καθολικού στο Corda είναι υποκειμενική. Δεν υπάρχει ενιαίο κεντρικό αποθετήριο δεδομένων. Αντίθετα, κάθε κόμβος διατηρεί μια ξεχωριστή βάση δεδομένων με γεγονότα που είναι γνωστά σε αυτόν.

Για παράδειγμα, φανταστείτε ένα δίκτυο 5 κόμβων, όπου ένας κύκλος είναι ένα γεγονός που είναι γνωστό στον κόμβο.

Corda - blockchain ανοιχτού κώδικα για επιχειρήσεις

Όπως μπορούμε να δούμε, ο Ed, ο Carl και η Demi γνωρίζουν το γεγονός 3, αλλά η Alice και ο Bob δεν το γνωρίζουν καν. Η Corda εγγυάται ότι τα κοινά γεγονότα αποθηκεύονται στη βάση δεδομένων κάθε κόμβου και τα δεδομένα θα είναι πανομοιότυπα.

Κράτη

Κράτος είναι αμετάβλητος ένα αντικείμενο που αντιπροσωπεύει ένα γεγονός που είναι γνωστό σε έναν ή περισσότερους κόμβους δικτύου σε μια συγκεκριμένη χρονική στιγμή.

Τα κράτη μπορούν να αποθηκεύουν αυθαίρετα δεδομένα, για παράδειγμα, μετοχές, ομόλογα, δάνεια, πληροφορίες ταυτοποίησης.

Για παράδειγμα, η ακόλουθη κατάσταση αντιπροσωπεύει μια IOU—μια συμφωνία ότι η Alice χρωστάει στον Bob ένα ποσό X:

Corda - blockchain ανοιχτού κώδικα για επιχειρήσεις
Ο κύκλος ζωής ενός γεγονότος με την πάροδο του χρόνου αντιπροσωπεύεται από μια ακολουθία καταστάσεων. Όταν είναι απαραίτητο να ενημερώσουμε την τρέχουσα κατάσταση, δημιουργούμε μια νέα και επισημαίνουμε την τρέχουσα ως ιστορική.

Corda - blockchain ανοιχτού κώδικα για επιχειρήσεις

Συναλλαγές

Οι συναλλαγές είναι προτάσεις ενημέρωσης του καθολικού. Δεν μεταδίδονται σε όλους τους συμμετέχοντες στο καθολικό και είναι διαθέσιμα μόνο σε όσους συμμετέχοντες στο δίκτυο έχουν το νόμιμο δικαίωμα να τα βλέπουν και να τα διαχειρίζονται.

Μια συναλλαγή θα προστεθεί στο καθολικό εάν:

  • συμβατικά έγκυρη
  • υπογεγραμμένο από όλους τους απαιτούμενους συμμετέχοντες
  • δεν περιέχει διπλές δαπάνες

Η Corda χρησιμοποιεί το μοντέλο UTXO (μη δαπανημένη έξοδο συναλλαγής), στο οποίο κάθε κατάσταση λογιστικού είναι αμετάβλητη.

Όταν δημιουργείται μια συναλλαγή, η κατάσταση εξόδου της προηγούμενης συναλλαγής (κατά κατακερματισμό και ευρετήριο) μεταφέρεται στην είσοδο.

Corda - blockchain ανοιχτού κώδικα για επιχειρήσεις
Κύκλος ζωής συναλλαγής:

  • Δημιουργία (Προς το παρόν, η συναλλαγή είναι απλώς μια πρόταση ενημέρωσης του καθολικού)
  • Συλλέξτε υπογραφές (Τα μέρη που απαιτούνται στη συναλλαγή εγκρίνουν την πρόταση ενημέρωσης προσθέτοντας μια υπογραφή στη συναλλαγή)
  • Δέσμευση συναλλαγής στο καθολικό

Μόλις προστεθεί μια συναλλαγή στο καθολικό, οι καταστάσεις εισόδου επισημαίνονται ως ιστορικές και δεν μπορούν να χρησιμοποιηθούν σε μελλοντικές συναλλαγές.

Corda - blockchain ανοιχτού κώδικα για επιχειρήσεις
Εκτός από τις καταστάσεις εισόδου και εξόδου, μια συναλλαγή μπορεί να περιέχει:

  • Εντολές (παράμετρος συναλλαγής που υποδεικνύει τον σκοπό της συναλλαγής)
  • Συνημμένα (ημερολόγιο διακοπών, μετατροπέας νομίσματος)
  • Χρονικά παράθυρα (περίοδος ισχύος)
  • Συμβολαιογράφος (Συμβολαιογράφος, ειδικοί συμμετέχοντες στο δίκτυο που επικυρώνουν συναλλαγές)

Corda - blockchain ανοιχτού κώδικα για επιχειρήσεις

Συμβάσεις

Όταν μιλάμε για εγκυρότητα συναλλαγής, εννοούμε όχι μόνο την ύπαρξη των απαραίτητων υπογραφών, αλλά και τη συμβατική ισχύ. Κάθε συναλλαγή συνδέεται με ένα συμβόλαιο που την αποδέχεται και επικυρώνει τις καταστάσεις εισόδου και εξόδου. Μια συναλλαγή θεωρείται έγκυρη μόνο εάν όλες οι καταστάσεις της είναι έγκυρες.

Τα συμβόλαια στο Corda είναι γραμμένα σε οποιαδήποτε γλώσσα JVM (για παράδειγμα, Java, Kotlin).

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

Είναι απαραίτητο να κληρονομήσετε από μια τάξη Σύμβαση και παρακάμπτετε τη μέθοδο επαληθεύει. Εάν η συναλλαγή είναι άκυρη, θα γίνει εξαίρεση.

Η επικύρωση της συναλλαγής πρέπει να είναι ντετερμινιστική, δηλ. η σύμβαση πρέπει πάντα είτε να αποδέχεται είτε να απορρίπτει τη συναλλαγή. Σε σχέση με αυτό, η εγκυρότητα της συναλλαγής δεν μπορεί να εξαρτάται από τον χρόνο, τους τυχαίους αριθμούς, τα αρχεία κεντρικού υπολογιστή κ.λπ.

Στην Corda, οι συμβάσεις εκτελούνται σε ένα λεγόμενο sandbox - ένα ελαφρώς τροποποιημένο JVM που εγγυάται την ντετερμινιστική εκτέλεση των συμβολαίων.

Ροές

Για την αυτοματοποίηση της επικοινωνίας μεταξύ των κόμβων δικτύου, προστέθηκαν νήματα.

Μια ροή είναι μια ακολουθία βημάτων που λέει σε έναν κόμβο πώς να εκτελέσει μια συγκεκριμένη ενημέρωση του καθολικού και σε ποιο σημείο η συναλλαγή πρέπει να υπογραφεί και να επικυρωθεί.

Corda - blockchain ανοιχτού κώδικα για επιχειρήσεις

Μερικές φορές χρειάζονται ώρες, μέρες μέχρι να υπογραφεί η συναλλαγή από όλα τα μέρη και να μπει στο καθολικό. Τι συμβαίνει εάν αποσυνδέσετε έναν κόμβο που συμμετέχει σε μια συναλλαγή; Τα νήματα έχουν σημεία ελέγχου, στα οποία η κατάσταση του νήματος γράφεται στη βάση δεδομένων του κόμβου. Όταν ένας κόμβος αποκατασταθεί στο δίκτυο, θα συνεχίσει από εκεί που σταμάτησε.

Ομοφωνία

Για να μπει στο καθολικό, μια συναλλαγή πρέπει να έχει 2 συναινέσεις: εγκυρότητα και μοναδικότητα.

Η απόφαση για την εγκυρότητα μιας συναλλαγής λαμβάνεται μόνο από τα μέρη που εμπλέκονται άμεσα σε αυτήν.

Οι συμβολαιογραφικοί κόμβοι ελέγχουν τη συναλλαγή για μοναδικότητα και αποτρέπουν τη διπλή δαπάνη.

Ας φανταστούμε ότι ο Bob έχει $100 και θέλει να μεταφέρει $80 στον Charlie και $70 στον Dan χρησιμοποιώντας την ίδια κατάσταση εισαγωγής.

Corda - blockchain ανοιχτού κώδικα για επιχειρήσεις

Η Corda δεν θα σας επιτρέψει να κάνετε ένα τέτοιο κόλπο. Αν και η συναλλαγή θα περάσει τον έλεγχο εγκυρότητας, ο έλεγχος μοναδικότητας θα αποτύχει.

Συμπέρασμα

Η πλατφόρμα Corda, που αναπτύχθηκε από την κοινοπραξία blockchain R3, δεν είναι μια καθαρή περίπτωση χρήσης για την τεχνολογία blockchain. Το Corda είναι ένα εξαιρετικά εξειδικευμένο εργαλείο για χρηματοπιστωτικά ιδρύματα.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο