Επίσημη επαλήθευση των προδιαγραφών Ethereum 2.0 Phase 0

blog 1ΕιδήσειςΑναπτυσσόμενοιΕξέτασηΕπεξήγηση BlockchainΕκδηλώσεις και ΣυνέδριαΠατήστεΕνημερωτικά δελτία

Contents

Εγγραφείτε στο newsletter μας.

Διεύθυνση ηλεκτρονικού ταχυδρομείου

Σεβόμαστε το απόρρητό σας

HomeBlogBlockchain Ανάπτυξη

Επίσημη επαλήθευση των προδιαγραφών Ethereum 2.0 Phase 0

Μια ενημέρωση από το ConsenSys R&Δ για την προσπάθειά τους να φέρουν την αξιοπιστία στην αλυσίδα Beacon και τα βασικά θεμέλια του Eth2. από τον Franck Cassez 10 Αυγούστου 2020 Δημοσιεύτηκε στις 10 Αυγούστου 2020

dafny επαλήθευση ήρωα blog

Η ομάδα αυτόματης επαλήθευσης στο ConsenSys R&Ο D εργάζεται για μια επίσημη προδιαγραφή και επαλήθευση της Beacon Chain για μερικούς μήνες. Είμαστε στην ευχάριστη θέση να αναφέρουμε ότι έχει σημειωθεί μεγάλη πρόοδος και παρόλο που δεν έχει ολοκληρωθεί ακόμη, καταφέραμε να αναπτυχθούμε ένας σταθερός και επίσημα επαληθευμένος πυρήνας της αλυσίδας Beacon. Για πρώτη φορά, το έργο μας παρέχει ένα απαράμιλλο επίπεδο αξιοπιστίας στα βασικά θεμέλια της υποδομής Eth2.0.

Μεθοδολογία

Επαλήθευση έναντι δοκιμών

Χρησιμοποιήσαμε το βραβευμένο γλώσσα προγραμματισμού με γνώμονα την επαλήθευση Ντάφνι να γράψω ένα επίσημος (λειτουργικό και λογικό) προσδιορισμός για κάθε συνάρτηση Beacon Chain, εκτέλεση κάθε συνάρτησης και a απόδειξη ότι η εφαρμογή συμμορφώνεται με τις προδιαγραφές της. Με άλλα λόγια, έχουμε επαληθεύσει μαθηματικά την απουσία σφαλμάτων. Βασίζονται οι υλοποιήσεις στις οποίες αποδείξαμε τελικά σωστές τις επίσημες προδιαγραφές Eth2.0 με την προειδοποίηση που έχουμε διορθώσει και αναφέρουμε κάποια σφάλματα και ασυνέπειες.

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

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

Ακίνητα που έχουμε αποδείξει 

Οι ιδιότητες κυμαίνονται από την απουσία αριθμητική κάτω / υπερχείλιση και ευρετήριο εκτός ορίων, τη συμμόρφωση κάθε συνάρτησης σε λογική (λογική πρώτης τάξης) προ / μετα-συνθήκες (παράδειγμα merkelise εδώ), σε πιο πολύπλοκες που περιλαμβάνουν συνθέσεις συναρτήσεων. Για παράδειγμα, έχουμε τα ακόλουθα ιδιοκτησία του SSZ Serialise / Deserialise συναρτήσεις: για κάθε αντικείμενο x, Deserialise (Serialise (x)) = x, δηλ. η αποεστερίωση ενός σειριακού αντικειμένου επιστρέφει το αρχικό αντικείμενο. Έχουμε επίσης δημιουργήσει ένα αριθμός αναλλοίωτων, και τα χρησιμοποίησε για να αποδείξει ότι οι βασικές λειτουργίες των Beacon Chain και ForkChoice (state_transition, on_block) πράγματι χτίστε μια αλυσίδα μπλοκ: για οποιοδήποτε μπλοκ b στο κατάστημα, οι πρόγονοι του b σχηματίζουν μια πεπερασμένη ολοκληρωμένη ακολουθία που οδηγεί στο μπλοκ γένεσης, το οποίο είναι η κύρια ιδιότητα ενός blockchain!

Τα οφέλη της επίσημης επαλήθευσης

Κάθε επίσημος μεθοδιστής θα επέμενε ότι η επαλήθευση αποτελεί βέλτιστη πρακτική ασφαλείας Δείτε πώς ακριβώς αυτή η μεθοδολογία διασφαλίζει μια ασφαλή και αξιόπιστη υποδομή για το Ethereum 2.0.


Λειτουργική προδιαγραφή

Αρχικά, έχουμε ανεβάσει τις επίσημες προδιαγραφές Eth2.0 σε α τυπική λογική και λειτουργική προδιαγραφή. Για κάθε συνάρτηση, ορίζουμε επίσημα τι αναμένεται να υπολογίσει η συνάρτηση, όχι πώς. Αυτό παρέχει γλωσσικές-αγνωστικές προδιαγραφές αναφοράς φιλικές για προγραμματιστές που μπορεί να χρησιμοποιηθεί για την ανάπτυξη πιο ασφαλών εφαρμογών, με λιγότερη προσπάθεια. 

Αρθρωτότητα

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

Εκτελεστότητα

Τρίτον, οι υλοποιήσεις μας είναι εκτελέσιμο. Μπορούμε να συντάξουμε και να τρέξουμε ένα πρόγραμμα Dafny. Ακόμα καλύτερα, μπορείτε αυτομάτως δημιουργία κώδικα σε μερικές δημοφιλείς γλώσσες προγραμματισμού όπως C #, Go (και σύντομα Java) από τον κωδικό Dafny. Αυτό μπορεί να χρησιμοποιηθεί για τη συμπλήρωση υφιστάμενων βάσεων κώδικα ή για τη δημιουργία πιστοποιημένες δοκιμές. Η εφαρμογή που πρόκειται να δοκιμαστεί μπορεί να χρησιμοποιήσει τις αποδεδειγμένες σωστές λειτουργίες μας για να υπολογίσει το αναμενόμενο αποτέλεσμα μιας δοκιμής και να το ελέγξει με το δικό της αποτέλεσμα.   

Τα πάντα σε μία γλώσσα

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

Ερωτήσεις και εκτιμήσεις 

Τι γίνεται με την ευκρίνεια της μηχανής επαλήθευσης?

Ίσως αναρωτιέστε, “τι γίνεται αν ο μεταγλωττιστής / επαληθευτής Dafny είναι αμαξώματος;” Γνωρίζουμε πραγματικά ότι η Dafny είναι λάθη (ζητήματα dafny repo, αλλά δεν στηριζόμαστε στην απουσία σφαλμάτων στο Dafny. Στηριζόμαστε στο Dafny (και στον κινητήρα επαλήθευσής του) ήχος. Το Soundness σημαίνει ότι όταν ο Dafny αναφέρει ότι οι αποδείξεις είναι σωστές, είναι πράγματι σωστές. 

Τι γίνεται αν η προδιαγραφή που έχουμε γράψει δεν είναι η σωστή? 

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

Τι γίνεται αν ο Dafny δεν μπορεί να αποδείξει ότι μια εφαρμογή συμμορφώνεται με μια προδιαγραφή? 

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

Χαιρετίζουμε τα σχόλιά σας, οπότε παρακαλούμε ρίξτε μια ματιά το αποθετήριο eth2.0-dafny. Είμαστε ενθουσιασμένοι που παρακολουθούμε την ανάπτυξη του Ethereum 2.0 να φτάνει στα πρόσφατα ορόσημα του testnet και ανυπομονούμε να συνεργαστούμε με ομάδες σε ολόκληρο το οικοσύστημα για να διασφαλίσουμε ότι η επόμενη φάση του δικτύου θα βασίζεται σε μια σταθερή βάση.

Ευχαριστίες: Χάρη στους συμπαίκτες μου Joanne Fuller, Roberto Saltini (αυτοματοποιημένη ομάδα επαλήθευσης), Nicolas Liochon και στον Avery Erwin για σχόλια σχετικά με μια προκαταρκτική έκδοση αυτής της ανάρτησης.

Συνεχίστε με το Ethereum 2.0

Εγγραφείτε στο ενημερωτικό δελτίο ConsenSys για να λαμβάνετε τα τελευταία νέα Eth2 απευθείας στα εισερχόμενά σας. Ethereum 2.0 Έρευνα και ανάπτυξη ΑσφάλειαNewsletterΕγγραφείτε στο ενημερωτικό δελτίο μας για τις τελευταίες ειδήσεις Ethereum, εταιρικές λύσεις, πόρους προγραμματιστών και πολλά άλλα. Διεύθυνση ηλεκτρονικού ταχυδρομείου Αποκλειστικό περιεχόμενοΠώς να δημιουργήσετε ένα επιτυχημένο προϊόν BlockchainΔιαδικτυακό σεμινάριο

Πώς να δημιουργήσετε ένα επιτυχημένο προϊόν Blockchain

Πώς να ρυθμίσετε και να εκτελέσετε έναν κόμβο EthereumΔιαδικτυακό σεμινάριο

Πώς να ρυθμίσετε και να εκτελέσετε έναν κόμβο Ethereum

Πώς να φτιάξετε το δικό σας API EthereumΔιαδικτυακό σεμινάριο

Πώς να φτιάξετε το δικό σας API Ethereum

Πώς να δημιουργήσετε ένα κοινωνικό κουπόνιΔιαδικτυακό σεμινάριο

Πώς να δημιουργήσετε ένα κοινωνικό κουπόνι

Χρήση εργαλείων ασφαλείας στην ανάπτυξη έξυπνων συμβάσεωνΔιαδικτυακό σεμινάριο

Χρήση εργαλείων ασφαλείας στην ανάπτυξη έξυπνων συμβάσεων

Το μέλλον των ψηφιακών στοιχείων ενεργητικού και του DeFiΔιαδικτυακό σεμινάριο

Το μέλλον των οικονομικών: Ψηφιακά περιουσιακά στοιχεία και DeFi

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map