Multisig wallets

Τί είναι ένα πορτοφόλι στο Cardano;


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

Δηλαδή:
● Ποιοί είναι οι υπεύθυνοι για την διατήρηση του;
● Αυτοί οι υπεύθυνοι, τι βλέπουν και τι πρέπει να ξέρουν για έναν χρήστη, ώστε να μπορούν να κάνουν την δουλειά τους;
● Όταν κάτι πάει στραβά, ποιον μπορείς να πάρεις και να βρίσεις;

Οι υπεύθυνοι

Αρμόδιοι για αυτήν τήρηση του τεφτερίου είναι τα Staking Pools του Cardano, δηλαδή οι Node Operators (Κόμβοι του δικτύου). Οι περισσότεροι τα ξέρετε ήδη αυτά, καθώς ήδη stakeάρετε τα ADA σας. Αν όχι, θα σας μαλώσω, τρέξτε γρήγορα να το κάνετε! Τα πώς και τί πάνω σε αυτό το θέμα, θα σας το χρωστάω για την επόμενη φορά (διότι ως γνωστόν, οι ωραίοι έχουν χρέη). Πάμε τώρα στο ψητό!

Το πορτοφόλι σου

Για το σύστημα του Cardano, το πορτοφόλι σου είναι δύο αριθμοί. Το Public Key (κοινώς δημόσιο κλειδί), και το Secret ή Private Key (ιδιωτικό κλειδί). Από εδώ και πέρα θα τα αναφέρω σαν pk και sk αντίστοιχα. Και πριν αρχίσεις να γκρινιάζεις, και τα δύο αυτά τα έχεις ήδη δει. Πάμε να δούμε:

  • Public Key: Μπορείς να το σκέφτεσαι ως τον “αριθμό τραπέζης” σου που ζει πάνω στο Blockchain. Αυτό είναι το Address που έβαλες για να στείλεις τα ADΑ σου στο πορτοφόλι σου, αφότου το δημιούργησες. Αυτό επίσης πρέπει να ξέρει ένας τρίτος, για να σου στείλει ADA ή άλλα native tokens. Ως εκ τούτου, αυτό είναι δημόσιο και γνωστό στο σύστημα!
  • Secret Key: Κατά την δημιουργία ενός Cardano Wallet, σου δόθηκαν 24 λέξεις. Αυτές, όπως σου έχει πει ήδη ο Βαραβάς, τις έχεις ράψει μέσα στο βρακί σου (αυτό το καλό που το κρατάς για όταν γυρίσει ο Βασιλιάς ή φτάσει το ADA στα 40$). Επίσης, μέσω αυτόν τον λέξεων δημιούργησες το Spending Password σου σε ένα πορτοφόλι. Κοινώς είναι η υπογραφή σου. Αυτή, όπως και κάτι άλλο, προσέχεις που την βάζεις, και δεν φεύγει ποτέ από το πορτοφόλι σου. Με άλλα λόγια, αυτό πρέπει να παραμένει ιδιωτικό!

Το ζουμί: Για το Cardano, το wallet σου είναι μια δυάδα συναλλαγών (pk, sk). Για να κάνεις μια συναλλαγή tx πρέπει να υπογράψεις, πρέπει δηλαδή να στείλεις ένα έγκυρο μήνυμα της μορφής M= h(tx, sk), όπου h μια ειδική συνάρτηση (Hash function), αποδεικνύοντας έτσι την ταυτότητα σου, χωρίς να χρειαστεί να υποβάλεις κάποιος έγγραφο. Με άλλα λόγια η γνώση του μυστικού σου κλειδίου sk είναι αυτή που αποδεικνύει την ταυτότητα σου στο δίκτυο, εξ ου και η προσοχή που πρέπει να δώσεις για την διασφάλιση της ιδιωτικότητας του κωδικού σου.

Ποιον να πάρεις να βρίσεις;

Άμα διάβασες τα παραπάνω, φαντάζομαι την απάντηση την έχεις μαντέψει ήδη. Ο μόνος λόγος να γίνει μια συναλλαγή στο όνομά σου και παρά την θέλησή σου, είναι ότι κάποιος απέκτησε πρόσβαση στο ιδιωτικό κλειδί σου. Οπότε εάν θέλεις να βρίσεις κάποιον, τράβα μια βόλτα από τον καθρέφτη. Σκληρό; Πιθανώς. Αλλά είναι το αντίτιμο που πληρώνουμε για να μην έχουμε την ανάγκη του τραπεζικού συστήματος για την καθημερινή μας ζωή.

Τι είναι το Broclan wallet και ποια είναι η διαφορά του με ένα απλό πορτοφόλι στο Cardano;

Πίσω στα ωραία τώρα. Το Broclan wallet, είναι ένα multisig wallet. Τι είναι αυτό μάναμ; Η
λέξη multisig βγαίνει από το multiple signatures. Για να γίνει μια συναλλαγή δηλαδή, απαιτούνται να πέσουν πάνω από μια τζίφρες. Και επειδή εμείς είμαστε τις αποκεντροποίησης, αυτό είναι ιδιαιτέρως επιθυμητό.
Ας πάρουμε για παράδειγμα ένα DAO (αποκεντροποιημένος αυτόνομος οργανισμός, θα το δούμε και αυτό σε άλλο μάθημα), και ας κρατησουμε προς το παρόν μόνο την λέξη οργανισμός. Κάθε οργανισμός έχει και ένα ταμείο. Αν επιλέξουμε για αυτό το ταμείο ένα συμβατικό πορτοφόλι, τον έλεγχο του ταμείου θα τον είχε μόνο ένα άτομο. Ο πρόεδρος. Όποιος έχει έστω και την παραμικρή επαφή με τον ελληνικό ποδόσφαιρο τα τελευταία (20; 30; 40;) χρόνια, ξέρει πως αυτό είναι κακή ιδέα. Αγαπούλα, πούλα.

Πως γίνεται αυτό;

Τα multisig wallets βασίζονται πάνω στην επιστημονικά και πρακτικά αποδεδειγμένη ιδέα των Threshold signature schemes. Εάν δεν σε πείθει αυτό, βασίζεται και στους Power Rangers. Με πολύ απλά λόγια, ας πούμε ότι η υπογραφή που πρέπει να πέσει για να γίνει μια συναλλαγή είναι η sk = 2310 (αυτό είναι το μεγάλο ρομπότ των Power rangers), και ας πούμε ότι θέλουμε να την σπάσουμε στα τέσσερα. Παράγουμε τους εξής αριθμούς (power rangers), που θα είναι τα τέσσερα ιδιωτικά κλειδιά μας.:

  1. sk1 = 0023 (o κόκκινος power ranger)
  2. sk2 = 0894 (o πράσινος power ranger)
  3. sk3 = 0507 (o κίτρινος power ranger)
  4. sk4 = 0886 (o μπλε power ranger)

Αρχικά καταστρέφουμε το αρχικό sk (εάν αυτό διαρεύσει όλη η φάση που στήνουμε εδώ είναι άχρηστη). Έπειτα βλέπουμε πως για να γίνει μια συναλλαγή tx πρέπει να ισχύει η σχέση M = h(tx, sk) = h(tx, sk1 + sk2 + sk3 + sk4).

Τι μου λες τώρα ρε δάσκαλε τώρα;

Η ουσία της υπόθεσης είναι ότι, αν μοιράσουμε τα κλειδιά με μυστικό τρόπο σε τέσσερα μέλη μιας επιτροπής, κανένας δεν μπορεί να κάνει μια συναλλαγή, εκτός αν συμφωνούν και οι τεσσερεις. Αγαπούλα, κρίμα. Και αυτό γιατί, όπως μάθαμε στην δευτέρα γυμνασίου, η εξίσωση 0023 + 0894 + 0507 + x = y έχει άπειρες λύσεις. ΌΧΙ ΜΗΝ ΠΑΤΗΣΕΙΣ Χ. Αυτό μας λέει ακόμα πιο απλά ότι δεν υπάρχει τρόπος να επαναδημιουργηθεί το αρχικό κλειδί, εκτός και αν μαζευτούν όλα κομμάτια του. Δηλαδή για να δημιουργηθεί το μεγάλο ρομπότ, πρέπει να μαζευτούν όλοι οι Rangers.

Στο παραπάνω παράδειγμα, απαιτούνται και οι τέσσερις υπογραφές, όμως δεν είναι ανάγκη να είναι πάντα έτσι. Στην πράξη το σύστημα μπορεί να τροποποιηθεί ουτοσώστε να απαιτούνται t εκ των n κλειδίων, με το t και n να είναι στην ευχέρεια του κάθε χρήστη (ή καλύτερα της κάθε ομάδας χρηστών).

Άρα σε αυτό το παράδειγμα, ποιον να βρίσεις;
Όλους ή κάποιους από τους power rangers ή αλλιώς τα μέλη της επιτροπής που έχουν στην κατοχή τους τα κομμάτια του μυστικού κλειδιού του οργανισμού.

Καλή συνέχεια…
G. Tsoumas

Ακολουθεί βίντεο παρουσίασης και οδηγίες για το πώς να στήσεις ένα MultiSig στο BroClan (7 λεπτά)