Διαθεσιμότητα δεδομένων
Το «Μην εμπιστεύεστε, επαληθεύστε» είναι ένα κοινό ρητό στο Ethereum. Η κύρια ιδέα είναι ότι ο κόμβος σας μπορεί ανεξάρτητα να επαληθεύσει ότι οι πληροφορίες που λαμβάνει είναι σωστές, εκτελώντας όλες τις συναλλαγές στα μπλοκ που λαμβάνουν από ομότιμους για να διασφαλιστεί ότι οι προτεινόμενες αλλαγές ταιριάζουν ακριβώς με αυτές που υπολογίζονται ανεξάρτητα από τον κόμβο. Αυτό σημαίνει ότι οι κόμβοι δε χρειάζεται να εμπιστεύονται ότι οι αποστολείς του μπλοκ είναι ειλικρινείς. Αυτό δεν είναι δυνατό εάν λείπουν δεδομένα.
Η Διαθεσιμότητα δεδομένων αναφέρεται στη διαβεβαίωση που μπορεί να έχει ένας χρήστης ότι τα δεδομένα που απαιτούνται για την επαλήθευση μπλοκ είναι πραγματικά διαθέσιμα σε όλους τους συμμετέχοντες στο δίκτυο. Για τους πλήρεις κόμβους επιπέδου 1 του Ethereum, είναι σχετικά απλό. Ο πλήρης κόμβος πραγματοποιεί λήψη ενός αντιγράφου όλων των δεδομένων σε κάθε μπλοκ. Τα δεδομένα πρέπει να είναι διαθέσιμα για να είναι δυνατή η λήψη τους. Ένα μπλοκ με δεδομένα που λείπουν θα απορριφθεί αντί να προστεθεί στην κρυπτοαλυσίδα. Αυτό είναι η "διαθεσιμότητα δεδομένων στην αλυσίδα" και είναι χαρακτηριστικό των μονολιθικών κρυπτοαλυσίδων. Οι πλήρεις κόμβοι δεν μπορούν να εξαπατηθούν ώστε να αποδεχτούν μη έγκυρες συναλλαγές επειδή κατεβάζουν και εκτελούν κάθε συναλλαγή από μόνοι τους. Ωστόσο, για αρθρωτές κρυπτοαλυσίδες, πακέτα ενημέρωσης επιπέδου 2 και πελάτες μικρού μεγέθους, η διαθεσιμότητας δεδομένων είναι πιο περίπλοκη, απαιτώντας ορισμένες πιο εξελιγμένες διαδικασίες επαλήθευσης.
Προαπαιτούμενα
Θα πρέπει να έχετε καλή κατανόηση των βασικών αρχών κρυπτοαλυσίδας, ιδιαίτερα του μηχανισμού συναίνεσης. Αυτή η σελίδα υποθέτει επίσης ότι ο αναγνώστης είναι εξοικειωμένος με τα μπλοκ, τις συναλλαγές, τους κόμβους, τις λύσεις κλιμάκωσης και άλλα σχετικά θέματα.
Το πρόβλημα διαθεσιμότητας δεδομένων
Το πρόβλημα διαθεσιμότητας δεδομένων είναι η ανάγκη να αποδειχθεί σε ολόκληρο το δίκτυο ότι η συνοπτική μορφή ορισμένων δεδομένων συναλλαγών που προστίθενται στην κρυπτοαλυσίδα αντιπροσωπεύει πραγματικά ένα σύνολο έγκυρων συναλλαγών, αλλά χωρίς να απαιτείται από όλους τους κόμβους να κατεβάσουν όλα τα δεδομένα. Τα πλήρη δεδομένα συναλλαγών είναι απαραίτητα για την ανεξάρτητη επαλήθευση μπλοκ, αλλά η απαίτηση από όλους τους κόμβους να κατεβάσουν όλα τα δεδομένα συναλλαγών αποτελεί εμπόδιο στην κλιμάκωση. Οι λύσεις στο πρόβλημα διαθεσιμότητας δεδομένων στοχεύουν στην παροχή επαρκών διαβεβαιώσεων ότι τα πλήρη δεδομένα συναλλαγών που κατέστησαν διαθέσιμα για επαλήθευση στους συμμετέχοντες στο δίκτυο, δεν πραγματοποιούν λήψη και αποθήκευση των δεδομένων για εκείνους.
Οι Ελαφροί κόμβοι και τα πακέτα ενημέρωσης επιπέδου 2 είναι σημαντικά παραδείγματα συμμετεχόντων στο δίκτυο που απαιτούν ισχυρές διαβεβαιώσεις διαθεσιμότητας δεδομένων, αλλά δεν μπορούν να πραγματοποιήσουν λήψη και επεξεργασία δεδομένων συναλλαγών μόνοι τους. Η αποφυγή λήψης δεδομένων συναλλαγών είναι αυτό που κάνει τους ελαφρούς κόμβους, ελαφρούς και επιτρέπει στα πακέτα ενημέρωσης να είναι αποτελεσματικές λύσεις κλιμάκωσης.
Η διαθεσιμότητα δεδομένων αποτελεί επίσης κρίσιμη ανησυχία για μελλοντικούς πελάτες "χωρίς κατάσταση" Ethereum που δε χρειάζεται να πραγματοποιούν λήψη και αποθήκευση δεδομένων κατάστασης για την επαλήθευση των αποκλεισμών. Οι πελάτες χωρίς κατάσταση πρέπει ακόμα να είναι σίγουροι ότι τα δεδομένα είναι διαθέσιμα κάπου και ότι έχουν υποστεί σωστή επεξεργασία.
Λύσεις διαθεσιμότητας δεδομένων
Δειγματοληψία διαθεσιμότητας δεδομένων (DAS)
Η δειγματοληψία διαθεσιμότητας δεδομένων (DAS) είναι ένας τρόπος για το δίκτυο να ελέγχει ότι τα δεδομένα είναι διαθέσιμα, χωρίς να ασκείται υπερβολική πίεση σε οποιονδήποτε μεμονωμένο κόμβο. Κάθε κόμβος (συμπεριλαμβανομένων των κόμβων χωρίς αποθηκευμένο κεφάλαιο) κατεβάζει κάποιο μικρό, τυχαία επιλεγμένο υποσύνολο των δεδομένων. Η επιτυχής λήψη των δειγμάτων επιβεβαιώνει με μεγάλη σιγουριά ότι όλα τα δεδομένα είναι διαθέσιμα. Αυτό βασίζεται στην κωδικοποίηση διαγραφής δεδομένων, η οποία επεκτείνει ένα δεδομένο σύνολο με πλεοναστικές πληροφορίες (ο τρόπος με τον οποίο γίνεται αυτό είναι να προσαρμοστεί μια συνάρτηση γνωστή ως πολυώνυμο στα δεδομένα και να υπολογιστεί αυτό το πολυώνυμο σε πρόσθετα σημεία). Αυτό επιτρέπει την ανάκτηση των αρχικών δεδομένων από τα πλεονάζων δεδομένα όταν είναι απαραίτητο. Συνέπεια αυτής της δημιουργίας δεδομένων είναι ότι εάν κάποια από τα αρχικά δεδομένα δεν είναι διαθέσιμα, τα μισά από τα αναπτυγμένα δεδομένα θα λείπουν! Το ποσό των δειγμάτων δεδομένων που κατεβάζει κάθε κόμβος μπορεί να ρυθμιστεί έτσι ώστε να είναι εξαιρετικά πιθανό ότι τουλάχιστον ένα από τα δείγματα δεδομένων που δειγματοληπτείται από κάθε πελάτη θα λείπει εάν είναι λιγότερα από τα μισά δεδομένα είναι πραγματικά διαθέσιμα.
Το DAS θα χρησιμοποιηθεί για να διασφαλιστεί ότι οι χειριστές του πακέτου ενημέρωσης καθιστούν τα δεδομένα των συναλλαγών τους διαθέσιμα μετά την πλήρη εφαρμογή του Danksharding. Οι κόμβοι Ethereum θα δειγματοληπτούν τυχαία τα δεδομένα συναλλαγών που παρέχονται σε blobs χρησιμοποιώντας το σχήμα περιττής πληροφορίας που εξηγήθηκε παραπάνω για να διασφαλίσουν ότι όλα τα δεδομένα υπάρχουν. Η ίδια τεχνική θα μπορούσε επίσης να χρησιμοποιηθεί για να διασφαλιστεί ότι οι παραγωγοί μπλοκ καθιστούν όλα τα δεδομένα τους διαθέσιμα για την ασφάλεια των ελαφρών πελατών. Παρομοίως, υπό τον διαχωρισμό προτείνοντος - κατασκευαστή, μόνο ο κατασκευαστής μπλοκ θα απαιτείται να επεξεργαστεί ένα ολόκληρο μπλοκ, άλλοι επικυρωτές θα επαληθεύουν χρησιμοποιώντας δειγματοληψία διαθεσιμότητας δεδομένων.
Επιτροπές διαθεσιμότητας δεδομένων
Οι Επιτροπές Διαθεσιμότητας Δεδομένων (DAC) είναι αξιόπιστα μέλη που παρέχουν ή πιστοποιούν τη διαθεσιμότητα δεδομένων. Οι DAC μπορούν να χρησιμοποιηθούν αντιθέτως ή σε συνδυασμό με DAS. Οι εγγυήσεις ασφαλείας που συνοδεύουν τις επιτροπές εξαρτώνται από τη συγκεκριμένη εγκατάσταση. Το Ethereum χρησιμοποιεί τυχαία δειγματοληπτικά υποσύνολα επικυρωτών για να πιστοποιήσουν τη διαθεσιμότητα δεδομένων για τους ελαφρούς κόμβους, για παράδειγμα.
Οι DAC χρησιμοποιούνται επίσης από ορισμένα validiums. Το DAC είναι ένα αξιόπιστο σύνολο κόμβων που αποθηκεύει αντίγραφα δεδομένων εκτός σύνδεσης. Το DAC απαιτείται για να καταστήσει τα δεδομένα διαθέσιμα σε περίπτωση διαφωνίας. Τα μέλη του DAC δημοσιεύουν επίσης στην αλυσίδα πιστοποιήσεις για να αποδείξουν ότι τα συγκεκριμένα δεδομένα είναι πράγματι διαθέσιμα. Ορισμένα validiums αντικαθιστούν τα DAC με ένα σύστημα επικυρωτών απόδειξης συμμετοχής (PoS). Εδώ, ο καθένας μπορεί να γίνει επικυρωτής και να αποθηκεύσει δεδομένα εκτός αλυσίδας. Ωστόσο, πρέπει να παρέχουν ένα "δεσμό", το οποίο κατατίθεται σε ένα έξυπνο συμβόλαιο. Σε περίπτωση κακόβουλης συμπεριφοράς, όπως η παρακράτηση δεδομένων από τον επικυρωτή, ο δεσμός μπορεί να κοπεί. Οι επιτροπές διαθεσιμότητας δεδομένων απόδειξης συμμετοχής είναι σημαντικά πιο ασφαλείς από τα κανονικά DAC επειδή δίνουν άμεσα κίνητρα για ειλικρινή συμπεριφορά.
Διαθεσιμότητα δεδομένων και κόμβοι μικρού μεγέθους
Οι κόμβοι μικρού μεγέθους πρέπει να επικυρώνουν την ορθότητα των επικεφαλίδων των μπλοκ που λαμβάνουν χωρίς να κάνουν λήψη των δεδομένων του μπλοκ. Το κόστος αυτού του μικρού μεγέθους είναι η αδυναμία ανεξάρτητης επαλήθευσης των κεφαλίδων μπλοκ με την εκ νέου εκτέλεση συναλλαγών τοπικά με τον τρόπο που κάνουν οι πλήρεις κόμβοι.
Οι κόμβοι μικρού μεγέθους του Ethereum εμπιστεύονται τυχαία σύνολα 512 επικυρωτών που έχουν εκχωρηθεί σε μια επιτροπή συγχρονισμού. Η επιτροπή συγχρονισμού λειτουργεί ως μια DAC που ενημερώνει τους πελάτες μικρού μεγέθους ότι τα δεδομένα στην κεφαλίδα είναι σωστά χρησιμοποιώντας μια κρυπτογραφική υπογραφή. Κάθε μέρα, η επιτροπή συγχρονισμού ανανεώνεται. Κάθε κεφαλίδα μπλοκ ειδοποιεί τους ελαφρούς κόμβους σχετικά με τους επικυρωτές που αναμένεται να υπογράψουν το επόμενο μπλοκ, ώστε να μην μπορούν να εξαπατηθούν παρέχοντας εμπιστοσύνη σε μια κακόβουλη ομάδα που προσποιείται ότι είναι η πραγματική επιτροπή συγχρονισμού.
Ωστόσο, τι συμβαίνει εάν ένας επιτιθέμενος καταφέρει κάποια στιγμή να περάσει μια κακόβουλη κεφαλίδα μπλοκ σε πελάτες μικρού μεγέθους και να τους πείσει ότι υπογράφηκε από μια ειλικρινή επιτροπή συγχρονισμού; Σε αυτήν την περίπτωση, ο επιτιθέμενος θα μπορούσε να συμπεριλάβει μη έγκυρες συναλλαγές και ο ελαφρύς πελάτης θα τις δεχόταν τυφλά, καθώς δεν ελέγχει ανεξάρτητα όλες τις αλλαγές κατάστασης που συνοψίζονται στην κεφαλίδα μπλοκ. Για να προστατευθεί από αυτό, ο ελαφρύς πελάτης θα μπορούσε να χρησιμοποιήσει αποδείξεις απάτης.
Ο τρόπος με τον οποίο λειτουργούν αυτές οι αποδείξεις απάτης είναι ότι ένας πλήρης κόμβος, βλέποντας μια μη έγκυρη μετάβαση κατάστασης να διαδίδεται στο δίκτυο, θα μπορούσε γρήγορα να δημιουργήσει ένα μικρό κομμάτι δεδομένων που να αποδεικνύει ότι μια προτεινόμενη μετάβαση κατάστασης δε θα μπορούσε να προκύψει από ένα συγκεκριμένο σύνολο συναλλαγών και να μεταδώσει αυτά τα δεδομένα στους ομότιμους. Οι ελαφροί κόμβοι θα μπορούσαν να παραλάβουν αυτές τις αποδείξεις απάτης και να τις χρησιμοποιήσουν για να απορρίψουν κακές κεφαλίδες μπλοκ, εξασφαλίζοντας ότι παραμένουν στην ίδια ειλικρινή αλυσίδα με τους πλήρεις κόμβους.
Αυτό βασίζεται στους πλήρεις κόμβους έχοντας πρόσβαση στα πλήρη δεδομένα συναλλαγών. Ένας επιτιθέμενος που διαδίδει μια κακή κεφαλίδα μπλοκ και επίσης αποτυγχάνει να καταστήσει διαθέσιμα τα δεδομένα της συναλλαγής θα μπορούσε να αποτρέψει τους πλήρεις κόμβους από το να δημιουργήσουν αποδείξεις απάτης. Οι πλήρεις κόμβοι μπορεί να είναι σε θέση να σημάνουν μια προειδοποίηση για ένα κακό μπλοκ, αλλά δε θα μπορούσαν να υποστηρίξουν την προειδοποίησή τους με απόδειξη, επειδή τα δεδομένα δεν κατέστησαν διαθέσιμα για να δημιουργηθεί η απόδειξη!
Η λύση σε αυτό το πρόβλημα διαθεσιμότητας δεδομένων είναι το DAS. Οι ελαφροί κόμβοι κατεβάζουν πολύ μικρά τυχαία κομμάτια των δεδομένων της πλήρους κατάστασης και χρησιμοποιούν τα δείγματα για να επαληθεύσουν ότι το πλήρες σύνολο δεδομένων είναι διαθέσιμο. Η πραγματική πιθανότητα να υποτεθεί λανθασμένα η πλήρης διαθεσιμότητα δεδομένων μετά τη λήψη N τυχαίων τμημάτων μπορεί να υπολογιστεί (για 100 τμήματα η πιθανότητα είναι 10^-30, δηλαδή εξαιρετικά απίθανη).
Ακόμα και σε αυτό το σενάριο, οι επιθέσεις που κατακρατούν μόνο λίγα byte θα μπορούσαν ενδεχομένως να περάσουν απαρατήρητες από τους πελάτες που κάνουν τυχαία αιτήματα δεδομένων. Η κωδικοποίηση διαγραφής το διορθώνει αυτό ανακατασκευάζοντας μικρά χαμένα κομμάτια δεδομένων που μπορούν να χρησιμοποιηθούν για να ελεγχθούν οι προτεινόμενες αλλαγές κατάστασης. Μια απόδειξη απάτης θα μπορούσε στη συνέχεια να κατασκευαστεί χρησιμοποιώντας τα ανακατασκευασμένα δεδομένα, εμποδίζοντας τους ελαφρούς κόμβους από το να αποδεχτούν κακές κεφαλίδες.
Σημείωση: Το DAS και οι αποδείξεις απάτης δεν έχουν ακόμη υλοποιηθεί για τους ελαφρούς πελάτες με απόδειξη συμμετοχής στο Ethereum, αλλά βρίσκονται στο χρονοδιάγραμμα πιθανότατα λαμβάνοντας τη μορφή αποδείξεων βασισμένων σε ZK-SNARK. Οι σημερινοί ελαφροί πελάτες βασίζονται σε μια μορφή DAC: επαληθεύουν τις ταυτότητες της επιτροπής συγχρονισμού και στη συνέχεια εμπιστεύονται τις υπογεγραμμένες κεφαλίδες μπλοκ που λαμβάνουν.
Διαθεσιμότητα δεδομένων και πακέτα ενημέρωσης επιπέδου 2
Λύσεις κλιμάκωσης επιπέδου 2, όπως τα , μειώνουν το κόστος συναλλαγών και αυξάνουν την απόδοση του Ethereum επεξεργάζοντας συναλλαγές εκτός αλυσίδας. Τα πακέτα ενημέρωσης των συναλλαγών συμπιέζονται και δημοσιεύονται στο Ethereum σε παρτίδες. Οι παρτίδες αντιπροσωπεύουν χιλιάδες ατομικές συναλλαγές εκτός αλυσίδας σε μία μόνο συναλλαγή στο Ethereum. Αυτό μειώνει τη συμφόρηση στο βασικό επίπεδο καθώς και τα τέλη για τους χρήστες.
Ωστόσο, είναι δυνατό να εμπιστευόμαστε μόνο τις συναλλαγές 'σύνοψης' που αναρτώνται στο Ethereum εάν η προτεινόμενη αλλαγή κατάστασης μπορεί να επαληθευτεί ανεξάρτητα και να επιβεβαιωθεί ότι είναι αποτέλεσμα της εφαρμογής όλων των μεμονωμένων εκτός αλυσίδας συναλλαγών. Εάν οι διαχειριστές των πακέτων ενημέρωσης δεν κάνουν διαθέσιμα τα δεδομένα συναλλαγής για αυτήν την επαλήθευση, τότε θα μπορούσαν να στείλουν εσφαλμένα δεδομένα στο Ethereum.
Τα Πακέτα ενημέρωσης Optimistic δημοσιεύουν συμπιεσμένα δεδομένα συναλλαγών στο Ethereum και περιμένουν κάποιο χρονικό διάστημα (συνήθως 7 ημέρες) για να επιτρέψουν σε ανεξάρτητους επαληθευτές να ελέγξουν τα δεδομένα. Εάν κάποιος εντοπίσει ένα πρόβλημα, μπορεί να δημιουργήσει ένα στοιχείο προστασίας από απάτη και να το χρησιμοποιήσει για να αμφισβητήσει το πακέτο ενημέρωσης. Αυτό θα προκαλούσε την ανατροπή της αλυσίδας και την παράλειψη του μη έγκυρου μπλοκ. Είναι δυνατό μόνο εάν υπάρχουν διαθέσιμα δεδομένα. Επί του παρόντος, υπάρχουν δύο τρόποι με τους οποίους τα πακέτα ενημέρωσης optimistic στέλνουν δεδομένα συναλλαγών στο L1. Ορισμένα πακέτα συναλλαγών κάνουν τα δεδομένα μόνιμα διαθέσιμα ως CALDATA
που ζουν μόνιμα στην αλυσίδα. Με την εφαρμογή του EIP-4844, ορισμένα πακέτα ενημέρωσης δημοσιεύουν τα δεδομένα συναλλαγών τους σε φθηνότερο χώρο αποθήκευσης blob. Αυτό δεν αφορά μόνιμη αποθήκευση. Ανεξάρτητοι επαληθευτές πρέπει να εξετάσουν τα blobs και να θέσουν τις προκλήσεις τους εντός ~18 ημερών πριν διαγραφούν τα δεδομένα από το Ethereum επιπέδου 1. Η διαθεσιμότητα δεδομένων είναι εγγυημένη μόνο από το πρωτόκολλο Ethereum για αυτό το σύντομο σταθερό διάστημα. Μετά από αυτό, γίνεται ευθύνη άλλων οντοτήτων στο οικοσύστημα Ethereum. Οποιοσδήποτε κόμβος μπορεί να επαληθεύσει τη διαθεσιμότητα δεδομένων χρησιμοποιώντας το DAS, δηλαδή κατεβάζοντας μικρά, τυχαία δείγματα των δεδομένων blob.
Τα πακέτα ενημέρωσης Μηδενικής γνώσης (ZK) δε χρειάζεται να δημοσιεύουν δεδομένα συναλλαγών, καθώς οι εγγυώνται την ορθότητα των μεταβάσεων κατάστασης. Ωστόσο, η διαθεσιμότητα δεδομένων εξακολουθεί να αποτελεί πρόβλημα, επειδή δεν μπορούμε να εγγυηθούμε τη λειτουργικότητα των πακέτων ενημέρωσης ZK (ή να αλληλεπιδράσουμε μαζί) χωρίς πρόσβαση στα δεδομένα κατάστασης. Για παράδειγμα, οι χρήστες δεν μπορούν να γνωρίζουν τα υπόλοιπά τους εάν ένας χειριστής παρακρατεί λεπτομέρειες σχετικά με την κατάσταση του πακέτου ενημέρωσης. Επίσης, δεν μπορούν να πραγματοποιήσουν ενημερώσεις κατάστασης χρησιμοποιώντας πληροφορίες που περιέχονται σε ένα μπλοκ που προστέθηκε πρόσφατα.
Διαθεσιμότητα ή ανάκτηση δεδομένων
Η διαθεσιμότητα δεδομένων είναι διαφορετική από την ανάκτηση δεδομένων. Η διαθεσιμότητα δεδομένων είναι η διαβεβαίωση ότι οι πλήρεις κόμβοι μπόρεσαν να έχουν πρόσβαση και επαληθεύουν το πλήρες σύνολο των συναλλαγών που σχετίζονται με συγκεκριμένο μπλοκ. Δε σημαίνει απαραίτητα ότι τα δεδομένα είναι προσβάσιμα για πάντα.
Η ανάκτηση δεδομένων είναι η ικανότητα των κόμβων να ανακτούν ιστορικές πληροφορίες από την κρυπτοαλυσίδα. Αυτά τα ιστορικά δεδομένα δε χρειάζονται για την επαλήθευση νέων μπλοκ, απαιτούνται μόνο για το συγχρονισμό των πλήρεις κόμβων από το μπλοκ γένεσης ή την εξυπηρέτηση συγκεκριμένων ιστορικών αιτημάτων.
Το βασικό πρωτόκολλο Ethereum ασχολείται κυρίως με τη διαθεσιμότητα και όχι με την ανάκτηση δεδομένων. Η ανάκτηση δεδομένων μπορεί να παρέχεται από έναν μικρό πληθυσμό κόμβων αρχείου, που εκτελούνται από τρίτα μέρη ή μπορεί να διανεμηθεί σε όλο το δίκτυο χρησιμοποιώντας υπηρεσίες αποκεντρωμένης αποθήκευσης αρχείων, όπως το Δίκτυο Portal.
Περαιτέρω πληροφορίες
- Τι είναι η διαθεσιμότητα δεδομένων;
- Τι είναι η διαθεσιμότητα δεδομένων;
- Το τοπίο διαθεσιμότητας δεδομένων εκτός αλυσίδας Ethereum
- Ένα primer για τους ελέγχους διαθεσιμότητας δεδομένων
- Επεξήγηση της πρότασης διαμοιρασμού + DAS
- Σημείωση σχετικά με τη διαθεσιμότητα δεδομένων και την κωδικοποίηση διαγραφής
- Επιτροπές διαθεσιμότητας δεδομένων.
- Επιτροπές διαθεσιμότητας δεδομένων απόδειξης συμμετοχής.
- Λύσεις στο πρόβλημα ανάκτησης δεδομένων
- Διαθεσιμότητα δεδομένων ή: Πώς τα πακέτα ενημέρωσης έμαθαν να σταματούν να ανησυχούν και να αγαπούν το Ethereum
- EIP-7623: Αύξηση κόστους calldata