
<100 subscribers

Share Dialog
Share Dialog
Autor oryginalnego artykułu: Avery Ching
Jak stwierdzono w artykule The Genesis of Aptos, naszą misją jest stworzenie powszechnego i sprawiedliwego dostępu do zdecentralizowanych aktywów dla miliardów ludzi. Obszar web3 jest obszerny i bogaty, począwszy od platform inteligentnych kontraktów do infrastruktury deweloperskiej i narzędzi, portfeli i zdecentralizowanych aplikacji. W ciągu najbliższych lat spodziewamy się budować i współpracować z uczestnikami ekosystemu, aby ulepszyć całą przestrzeń. Podróż Aptos rozpoczyna się od współpracy ze zdecentralizowaną społecznością w celu wdrożenia bezpiecznej, skalowalnej i aktualizowalnej platformy inteligentnych kontraktów.
Istnieje wiele platform zbudowanych na smart kontraktach — każda z nich ma swoje unikalne zalety i kompromisy. Wierzymy, że istnieje potrzeba innowacyjnego i adaptowalnego blockchaina, który będzie służył potrzebom miliardów ludzi dziś i w przyszłości. Jesteśmy przekonani, że doświadczenie użytkownika wymaga znacznej poprawy bezpieczeństwa i skalowalności, aby dotrzeć do mas (zwłaszcza ludzi niedoświadczonych w obszarze kryptowalut). W ciągu ostatnich trzech lat nasz zespół był w stanie badać i rozwijać innowacyjne pomysły i bezpiecznie wdrażać je do środowisk produkcyjnych. Poniżej opisujemy krótki przegląd naszych planów i jak będziemy wspierać częste i szybkie aktualizacje sieci. W najbliższych miesiącach podzielimy się serią szczegółowych informacji i towarzyszących im dokumentów technicznych dotyczących zarówno obecnych, jak i nowych inicjatyw zmierzających do osiągnięcia naszych celów.
Miliardy użytkowników Internetu są już zaznajomione z zakupem towarów i usług oraz wymianą lub przechowywaniem wartości. Aby przyspieszyć przyjęcie web3 przez internautów, potrzebujemy szeregu postępów na poziomie blockchain, które mogą dodatkowo wzmocnić resztę obszaru web3. Poniżej znajdują się niektóre z obecnych obszarów zainteresowania naszego zespołu, które mają wpływ na bezpieczeństwo i niezawodność.
Język Move: Bezpieczny i elastyczny język blockchain
Język Move został zaprojektowany do bezpiecznego zarządzania zasobami i weryfikowalnego wdrażania na blockchainie. Wykonanie transakcji jest deterministyczne, hermetyczne i mierzone. Deterministyczne i hermetyczne oznacza, że wynik wykonania transakcji jest całkowicie przewidywalny i oparty tylko na informacjach zawartych w transakcji i aktualnym stanie księgi. Metering jest ważną obroną przed atakami DoS na poziomie wykonania transakcji. Move prover może formalnie zweryfikować właściwości modułów Move poprzez ekspresyjny język specyfikacji i jest wystarczająco szybki, aby uruchomić go jako część testów ciągłej integracji. Zasoby Move, inspirowane typami liniowymi, statycznie zapewniają, że zasoby są zachowane i nie są kopiowane lub przypadkowo niszczone — całkowicie unikając całej klasy potencjalnych ataków. Nasz blockchain i język Move były współtworzone w tym samym czasie ponad trzy lata temu. Konta, opłaty transakcyjne, standardowa biblioteka, zarządzanie węzłami walidacyjnymi i konfiguracja są zaimplementowane w Move. Uwielbiamy bezpieczeństwo Move i jesteśmy podekscytowani pomaganiem w budowaniu szerokiego ekosystemu wokół niego.
Produkcyjny, wysokiej jakości protokół konsensusu BFT
Nasz zespół opracował silnik BFT (Byzantine Fault Tolerant) o niskiej latencji. W ciągu ostatnich trzech lat wdrożyliśmy naszą czwartą iterację protokołu (najbardziej zaawansowaną pochodną HotStuff). W tym czasie ulepszyliśmy protokół konsensusu w prywatnym środowisku mainnetowym z różnorodnym zestawem operatorów i zerowym czasem przestoju. Nasza pierwsza implementacja protokołu BFT dodała aktywny pacemaker, który wykorzystywał timeouty do synchronizacji walidatorów znacznie szybciej niż czekanie na rosnące timeouty. Dzięki naszemu najnowszemu udoskonaleniu protokołu, bloki są popełniane w zaledwie dwóch rundach sieciowych, co sprawia, że ostateczność w czasie poniżej sekundy jest powszechnym przypadkiem. Nasz nowatorski system reputacji analizuje stan łańcucha i automatycznie aktualizuje rotacje liderów, aby dostosować się do niereagujących walidatorów bez jakiejkolwiek interwencji człowieka, dzięki czemu dobrze nadaje się do zdecentralizowanych środowisk. Ponadto, nasz protokół wyraźnie oddziela liveness od bezpieczeństwa. Bez względu na to, czy sieć jest nieosiągalna, czy też rdzeń jest w jakiś sposób zagrożony, łańcuch nie rozwidla się tak długo, jak długo utrzymywane są gwarancje uczciwości BFT. Bezpieczeństwo naszego protokołu konsensusu zostało zarówno poddane audytowi, jak i formalnej weryfikacji.
Nasze badania wykazały, że mogą istnieć proste rozszerzenia, które zwiększają odporność naszego obecnego protokołu BFT poprzez wykorzystanie okresów, w których więcej niż 2f+1 węzłów głosuje na blok. Te silniejsze zobowiązania dają jeszcze większą pewność, że sieć nie rozwidli się w przyszłości i dodatkowo zwiększają zaufanie użytkowników do ostateczności poza standardowymi właściwościami BFT.
Wdrożenie i testowanie Aptos Core
Duża liczba walidatorów działających w różnych środowiskach jest ważna zarówno dla decentralizacji, jak i bezpieczeństwa. Ponadto oprogramowanie walidatora musi być bezpiecznie zaprojektowane, aby zapobiec atakom — jest to jeden z głównych powodów, dla których wybraliśmy Rust i Move jako nasze języki do implementacji logiki protokołu i inteligentnego kontraktu.
Podstawowe właściwości bezpieczeństwa blockchaina Aptos polegają na prawidłowej implementacji walidatorów, modułów Move i maszyny wirtualnej Move. Zmodularyzowaliśmy kod i zidentyfikowaliśmy minimalną zaufaną bazę obliczeniową (TCB), która izoluje krytyczne właściwości bezpieczeństwa (np. bezpieczeństwo protokołu konsensusu i poprawność wykonania). Modularność i użycie TCB pozwala nam na wykorzystanie technik rozwoju wysokiej pewności. Ponadto, w przypadku komponentów krytycznych dla bezpieczeństwa, możemy wprowadzić bardziej rygorystyczne wymagania dotyczące przeglądu kodu, zależności, testowania i bezpieczeństwa środowiska wykonawczego.
Połączyliśmy dekady wspólnego doświadczenia w tworzeniu, testowaniu i wdrażaniu oprogramowania na skalę internetową z nowymi pomysłami na niezawodne działanie w zdecentralizowanym środowisku. Przed każdym wydaniem kodu przeprowadzamy serię testów sieci rozproszonej, takich jak testy obciążenia i ataki bizantyjskie, a następnie oceniamy poprawność i wydajność. Mamy również etapowe wdrożenie do wielu sieci testowych przed wdrożeniem do sieci głównej, z istotnymi testami obciążenia i trwałości na każdym etapie. Nasza nadchodząca, motywowana sieć testowa w drugim kwartale skupi się w dużej mierze na budowaniu wiedzy społeczności na temat działania węzłów. Mamy już duże doświadczenie we współpracy z wiodącymi operatorami węzłów na świecie w zakresie przygotowania i testowania różnych scenariuszy odzyskiwania danych po katastrofie i czekamy na zbudowanie najbardziej niezawodnej zdecentralizowanej sieci, jaka jest możliwa.
Bezpieczniejsze klucze do odzyskiwania kont i rotacyjne protokoły.
Aby zmniejszyć ryzyko kradzieży kluczy, Aptos obsługuje możliwość rotacji klucza prywatnego przez każde konto. Zatwierdzający mogą również okresowo obracać swój klucz konsensusu w celu zwiększenia bezpieczeństwa. Aby uniknąć problemów związanych z miliardami dolarów wartości, które zostały zablokowane z powodu utraty klucza, pracujemy również nad opracowaniem nowatorskich technik wokół odzyskiwania klucza, które mogą być bezpośrednio zintegrowane z modelem konta blockchain.
Transakcje wieloagentowe
Transakcje wieloagentowe wykorzystują typ sygnatariusza Move, aby umożliwić dowolną liczbę działań atomowych w jednej transakcji na wielu kontach on-chain. Może to sprawić, że atomowe zamiany, zatwierdzenia K-of-N i wszelkie dowolne działania atomowe między dwoma lub więcej podmiotami on-chain zostaną zakończone w jednej transakcji. Uczynienie tych złożonych interakcji niepodzielnymi poprawia zarówno bezpieczeństwo, jak i wydajność. Jeszcze szerszy zakres możliwych do skomponowania wzorców i przypadków użycia jest możliwy przy łączeniu transakcji wieloagentowych z obsługą wielu podpisów na jednym koncie.
Powszechnie wiadomo, że wysokie opłaty za transakcje, niska przepustowość i wysokie wskaźniki ostateczności ograniczają przypadki użycia blockchaina i spowodowały wzrost zapotrzebowania na zoptymalizowane pod kątem wydajności blockchainy L1 i L2. Mniej popularnym aspektem skalowalności jest to, że pamięć masowa on-chain jest bardzo droga i ma problemy z wydajnością skalującą się do miliardów kont i bilionów aktywów on-chain i off-chain. Naszym celem jest holistyczne skupienie się na wydajności z punktu widzenia doświadczenia użytkownika. Uważamy, że blockchainy L1 powinny ponosić większą odpowiedzialność za skalowalność, aby uprościć i włączyć do głównego nurtu doświadczenie użytkownika.
Metryki i pomiary end-to-end
Przez lata istniało ogromne zamieszanie wokół metryk wydajności blockchain. Zacznijmy od najprostszych definicji.
· Przepustowość — Liczba transakcji przetwarzanych na sekundę (tps)
· Finality — Czas mierzony od momentu, gdy klient tworzy i przesyła transakcję do momentu, gdy inna strona potwierdzi, że transakcja została zaangażowana
Na przepustowość i finalność wpływa wiele czynników. Pierwszym z nich jest złożoność transakcji. Prosta transakcja peer-to-peer, która przenosi tokeny na konto Alicji z konta Boba jest znacznie mniej kosztowna niż taka, która wstępnie generuje 1000 NFT. Rozmiar i rozkład walidatora i uniwersum kont również będzie miał duży wpływ na wydajność. Ile jest walidatorów i jakie są ich specyfikacje sprzętowe? Ile jest kont (np. 10 000 vs 1 miliard kont)? Jaki jest rozkład wielkości kont (np. 1k vs 10 MB)? Jaki jest rozkład wzorców dostępu (np. zero konfliktów transakcji do w pełni sekwencyjnych zależności)? Jakie są gwarancje uporządkowania między transakcjami (częściowe uporządkowanie lub całkowite uporządkowanie) i czy są one dobrze dopasowane do inteligentnych kontraktów? Te czynniki utrudniają obiektywne porównanie wydajności pomiędzy różnymi sieciami. Porównania są jeszcze bardziej zagmatwane, gdy weźmiemy pod uwagę różne metody pomiaru wydajności. Na przykład, nasze badania nad rodziną protokołów konsensusu opartych na DAG (tj. All You Need Is DAG, Narwhal and Tusk: A DAG-based Mempool and Efficient BFT Consensus oraz Bullshark: DAG BFT Protocols Made Practical) pokazują, że ta klasa protokołów może wynosić od 125 000 do 160 000 tps lub nawet więcej. Jednak te liczby przepustowości nie reprezentują przepustowości end-to-end blockchain, ponieważ biorą pod uwagę tylko konsensus, sieć i rozważania dotyczące częściowego przechowywania. Nie uwzględniają one innych ważnych czynników, takich jak czasy realizacji transakcji, wzorce dostępu do kont lub uwierzytelnione struktury danych (np. drzewa Merkle) w produkcyjnym blockchainie. Po stronie ostateczności, czasy bloków często są mylone z ostatecznością, podczas gdy w rzeczywistości czasy bloków są czynnikiem wejściowym do ostateczności.
Wierzymy w przejrzystość i otwartość wokół benchmarków, wyjaśniając różnice między metodologiami testowania i jasno określając wyniki komponentów w porównaniu z wynikami end-to-end. W najbliższych miesiącach podzielimy się szczegółowymi wynikami wydajności end-to-end i metodologią testów. Z czasem zamierzamy udostępnić ramy benchmarkingowe i porównać charakterystykę wydajności różnych przypadków użycia w różnych blockchainach.
Podróż do wysokiej przepustowości i szybkiej ostateczności
Głównym krokiem w tej podróży było całkowite odłączenie protokołu konsensusu od realizacji transakcji. Protokół konsensusu uzgadnia proponowane uporządkowanie transakcji. W oddzielnym protokole i poza ścieżką krytyczną, walidatory wykonują transakcje i mają porozumienie co do ostatecznego uporządkowania transakcji i wyników wykonania. Protokoły integrujące konsensus i wykonanie są prostsze, ale ponoszą większy koszt w przepustowości i opóźnieniach z powodu ich współzależności.
Jak wspomniano wcześniej, mamy najniższą latencję, najbardziej zaawansowany wariant HotStuff testowany przez wiele lat. W najczęstszym przypadku protokół zobowiązuje się do zawarcia umowy w ciągu dwóch pełnych rund sieciowych — łatwo osiągalna jest podsekunda, nawet gdy światowe rundy sieciowe trwają do 250 milisekund. W przypadku ataku lub w okresie przerwy w działaniu sieci, system reputacji on-chain automatycznie minimalizuje negatywny wpływ wyłączonych walidatorów. Rozpoczęliśmy już badania i rozwój dla naszej kolejnej iteracji protokołu konsensusu, który przyspiesza rozpowszechnianie transakcji i oczekujemy aktualizacji sieci testowej z tą technologią jeszcze w tym roku.
Po odłączeniu protokołu konsensusu od potoku wykonawczego, kolejnym wąskim gardłem jest czas wykonania transakcji. Używając nowatorskich technik inspirowanych programową pamięcią transakcyjną, osiągamy ponad 130 tys. transakcji na sekundę przy użyciu zaledwie 32 rdzeni w naszym benchmarku dotyczącym wyłącznie wykonywania transakcji. Programiści otrzymują tę korzyść za darmo, ponieważ nasz framework wykonawczy automatycznie wykorzystuje nieodłączny paralelizm w każdym obciążeniu. Nie trzeba dostarczać żadnych dodatkowych informacji od deweloperów. Być może najważniejsze jest to, że blockchain o wysokiej przepustowości oznacza niskie opłaty transakcyjne dla użytkowników.
Ostatnim wąskim gardłem dla wydajności — i najbardziej ignorowanym — są uwierzytelnione struktury danych i związane z nimi przechowywanie stanu. Jednym z wyzwań jest to, że podczas uwierzytelniania stanu księgi (np. salda kont, inteligentnych kontraktów itp.), drzewa Merkle w pamięci są wydajne w małej skali, jednak zapisywanie dużych drzew Merkle do pamięci trwałej jest wąskim gardłem. Projektujemy nasze struktury danych uwierzytelnionych, aby były przyjazne dla bazy danych, badając wyższe współczynniki rozgałęzienia, buforowanie zoptymalizowane pod kątem wzorca dostępu i staranne wersjonowanie. Obecnie rozwijamy również wsparcie dla dużych kont — możliwość dostępu do poszczególnych zasobów Move dla każdego konta, zamiast nieefektywnie jako pojedynczy obiekt blob i badamy przyszłą ścieżkę do dokładniejszego dostępu w ramach zasobów Move poprzez podzielenie ich na kawałki zoptymalizowane pod kątem wzorca dostępu. Warstwowe przechowywanie i wynajem stanu są ważnymi priorytetami, aby wspierać wszystkie rodzaje nowych przypadków użycia.
Równoległe transakcje na kontach z zachowaniem kontroli nad porządkiem transakcji
Podejście oparte na numerach sekwencyjnych, spopularyzowane przez Ethereum, zapewnia pełną kontrolę użytkownika nad porządkowaniem transakcji, wydajne filtrowanie mempooli i ograniczone zużycie pamięci. Eksperymentowaliśmy z rozszerzeniem podejścia numerów sekwencyjnych o odporne na konflikty numery sekwencyjne, aby umożliwić równoległość kont w oknie numerów sekwencyjnych, jednocześnie dając użytkownikom możliwość kontrolowania kolejności transakcji w razie potrzeby. Nasza przyszła praca ma również na celu rozważenie alternatywnych implementacji równoległości, które są jeszcze bardziej elastyczne i kompozycyjne.
Szybka i elastyczna obsługa zarządzania stanem dla węzłów lekkich, pełnych, archiwalnych i dla walidatorów
Synchronizacja stanów pomiędzy węzłami może wymagać użycia procesora w przypadku blockchainów o dużej przepustowości. Wspieramy spektrum różnych protokołów synchronizacji stanu, które równoważą procesor i przepustowość sieci. Aby wspierać niedrogie węzły pełne, mamy protokół, który może synchronizować transakcje i ich wykonane wyniki podpisane przez kworum walidatorów, co pozwala węzłowi pominąć obliczenia kosztem wyższej przepustowości sieci i bezpośrednio aktualizować stan księgi głównej z wykonanych wyników.
Zamiast pobierać łańcuch bloków, aby dostać się do najnowszej księgi, jak robi to większość blockchainów, klient może użyć akumulatora transakcji najwyższego poziomu, aby uzyskać najnowszą zaangażowaną transakcję. Pozwala to również na niedrogie przycinanie poprzednich transakcji i historii księgi głównej, jeśli jest to pożądane. Zaufane punkty orientacyjne umożliwiają również szybką synchronizację dla węzłów, aby szybko nadrobić zaległości, jak również.
Sieci muszą szybko dostosować się do wspierania zmieniających się potrzeb web3. Przypadki użycia blockchain i ulepszenia technologii stale rosną i rozwijają się skokowo. Na przykład w 2021 roku NFT stały się rynkiem o wartości 40 miliardów dolarów. Wielu przewiduje, że rok 2022 będzie rokiem, w którym DAO zyskają adopcję. Powstają nowe protokoły konsensusu i języki inteligentnych kontraktów. Transakcje chroniące prywatność stają się bardziej praktyczne. Niestety, wiele z dzisiejszych sieci miało trudności z wprowadzeniem znaczących ulepszeń protokołu po uruchomieniu. Niektóre sieci, które próbowały dokonać znaczących ulepszeń, doświadczyły wielogodzinnych przestojów, a czasem przypadkowych hard forków. Uważamy, że jest to jeden z kluczowych powodów, dla których tak wiele nowych sieci jest uruchamianych. Niestety, eksplozja sieci prowadzi do wyzwań związanych z doświadczeniem użytkownika, ponieważ wymaga znajomości różnych środowisk i zorientowania się, która sieć najlepiej nadaje się do konkretnego przypadku użycia. Zaprojektowaliśmy i zbudowaliśmy Aptos blockchain, aby można było go uaktualnić jako kluczową właściwość i z powodzeniem przeprowadziliśmy kilka dużych aktualizacji bez przestojów w ciągu ostatnich lat. Aby osiągnąć ten cel, zarządzanie walidatorami i konfiguracją jest zarządzane za pomocą stanu on-chain — dzięki czemu społeczność może wygodnie głosować i szybko wykonywać aktualizacje. Solidne praktyki testowania i wdrażania zapewniają bezpieczny i niezawodny rollout.
Technologia Aptos został zbadana, zaprojektowana i opracowana przez ponad 30-osobowy zespół badawczy i inżynieryjny platformy kryptowalutowej z doświadczeniem domenowym i doktoratami w zakresie konsensusu, kryptografii, systemów rozproszonych, weryfikacji formalnej, bezpieczeństwa itp. Baza kodowa znacznie się rozrosła w ciągu 3+ lat z 292 unikalnymi programistami i dziesiątkami propozycji ulepszeń opracowanych przez społeczność. Został on przetestowany w środowisku produkcyjnym w wielu różnych przypadkach użycia i obsługiwany przez wielu operatorów korporacyjnych przez ponad rok z ponad tuzinem możliwych scenariuszy katastrof. Przeprowadziliśmy wiele udanych, znaczących aktualizacji w prywatnej sieci głównej z zerowym czasem przestoju. Baza kodowa jest oparta na otwartym źródle i zarządzana przez społeczność, a jej długoterminowym celem jest zbudowanie infrastruktury, która może być wykorzystana w wielu sieciach. Społeczność jest gotowa i podekscytowana, aby zobaczyć tę technologię i odblokować wiele nowych zastosowań w przyszłości.
Jesteśmy zobowiązani do uruchomienia naszej sieci głównej tak szybko, jak to możliwe, aby umożliwić szerszej społeczności rozpoczęcie budowy — wielu czekało lata na uruchomienie naszej technologii. W trakcie podróży do mainnetu i dalej, będziemy ogłaszać serię globalnych hackathonów i czekamy na Wasz udział! Będziemy wykorzystywać naszą zdolność do uaktualniania sieci o nowe funkcje, funkcjonalność, bezpieczeństwo i ulepszenia skalowania, jak tylko osiągną one gotowość do działania w naszych sieciach testowych i procesie wdrażania.
2022 Q1 (15 marca) — Uruchomienie sieci testowej dla deweloperów
· Praca z partnerami strategicznymi i społecznością programistów web3 w celu zebrania informacji zwrotnych i wprowadzenia ulepszeń w odniesieniu do doświadczenia programisty i języka Move.
2022 Q2 — Uruchomienie sieci testowej
· Większy i podobny do mainnetu obszar dla partnerów strategicznych i deweloperów web3 do zbudowania
· Praca ze społecznością operatorów węzłów w celu wspólnego włączenia i budowania doświadczenia w obsłudze zdecentralizowanej sieci
· Uruchomienie bug bounty w celu poprawy doświadczenia deweloperów, działania węzłów i rozwiązania problemów z infrastrukturą
· Zapewnienie motywacji dla wszystkich uczestników, którzy pomogą zabezpieczyć sieć
2022 Q3 — uruchomienie głównej sieci
2022 Q4–2023 Q1 — Wdrożenie kolejnej ważnej aktualizacji do sieci głównej Aptos z następnym zestawem istotnych funkcji
Autor oryginalnego artykułu: Avery Ching
Jak stwierdzono w artykule The Genesis of Aptos, naszą misją jest stworzenie powszechnego i sprawiedliwego dostępu do zdecentralizowanych aktywów dla miliardów ludzi. Obszar web3 jest obszerny i bogaty, począwszy od platform inteligentnych kontraktów do infrastruktury deweloperskiej i narzędzi, portfeli i zdecentralizowanych aplikacji. W ciągu najbliższych lat spodziewamy się budować i współpracować z uczestnikami ekosystemu, aby ulepszyć całą przestrzeń. Podróż Aptos rozpoczyna się od współpracy ze zdecentralizowaną społecznością w celu wdrożenia bezpiecznej, skalowalnej i aktualizowalnej platformy inteligentnych kontraktów.
Istnieje wiele platform zbudowanych na smart kontraktach — każda z nich ma swoje unikalne zalety i kompromisy. Wierzymy, że istnieje potrzeba innowacyjnego i adaptowalnego blockchaina, który będzie służył potrzebom miliardów ludzi dziś i w przyszłości. Jesteśmy przekonani, że doświadczenie użytkownika wymaga znacznej poprawy bezpieczeństwa i skalowalności, aby dotrzeć do mas (zwłaszcza ludzi niedoświadczonych w obszarze kryptowalut). W ciągu ostatnich trzech lat nasz zespół był w stanie badać i rozwijać innowacyjne pomysły i bezpiecznie wdrażać je do środowisk produkcyjnych. Poniżej opisujemy krótki przegląd naszych planów i jak będziemy wspierać częste i szybkie aktualizacje sieci. W najbliższych miesiącach podzielimy się serią szczegółowych informacji i towarzyszących im dokumentów technicznych dotyczących zarówno obecnych, jak i nowych inicjatyw zmierzających do osiągnięcia naszych celów.
Miliardy użytkowników Internetu są już zaznajomione z zakupem towarów i usług oraz wymianą lub przechowywaniem wartości. Aby przyspieszyć przyjęcie web3 przez internautów, potrzebujemy szeregu postępów na poziomie blockchain, które mogą dodatkowo wzmocnić resztę obszaru web3. Poniżej znajdują się niektóre z obecnych obszarów zainteresowania naszego zespołu, które mają wpływ na bezpieczeństwo i niezawodność.
Język Move: Bezpieczny i elastyczny język blockchain
Język Move został zaprojektowany do bezpiecznego zarządzania zasobami i weryfikowalnego wdrażania na blockchainie. Wykonanie transakcji jest deterministyczne, hermetyczne i mierzone. Deterministyczne i hermetyczne oznacza, że wynik wykonania transakcji jest całkowicie przewidywalny i oparty tylko na informacjach zawartych w transakcji i aktualnym stanie księgi. Metering jest ważną obroną przed atakami DoS na poziomie wykonania transakcji. Move prover może formalnie zweryfikować właściwości modułów Move poprzez ekspresyjny język specyfikacji i jest wystarczająco szybki, aby uruchomić go jako część testów ciągłej integracji. Zasoby Move, inspirowane typami liniowymi, statycznie zapewniają, że zasoby są zachowane i nie są kopiowane lub przypadkowo niszczone — całkowicie unikając całej klasy potencjalnych ataków. Nasz blockchain i język Move były współtworzone w tym samym czasie ponad trzy lata temu. Konta, opłaty transakcyjne, standardowa biblioteka, zarządzanie węzłami walidacyjnymi i konfiguracja są zaimplementowane w Move. Uwielbiamy bezpieczeństwo Move i jesteśmy podekscytowani pomaganiem w budowaniu szerokiego ekosystemu wokół niego.
Produkcyjny, wysokiej jakości protokół konsensusu BFT
Nasz zespół opracował silnik BFT (Byzantine Fault Tolerant) o niskiej latencji. W ciągu ostatnich trzech lat wdrożyliśmy naszą czwartą iterację protokołu (najbardziej zaawansowaną pochodną HotStuff). W tym czasie ulepszyliśmy protokół konsensusu w prywatnym środowisku mainnetowym z różnorodnym zestawem operatorów i zerowym czasem przestoju. Nasza pierwsza implementacja protokołu BFT dodała aktywny pacemaker, który wykorzystywał timeouty do synchronizacji walidatorów znacznie szybciej niż czekanie na rosnące timeouty. Dzięki naszemu najnowszemu udoskonaleniu protokołu, bloki są popełniane w zaledwie dwóch rundach sieciowych, co sprawia, że ostateczność w czasie poniżej sekundy jest powszechnym przypadkiem. Nasz nowatorski system reputacji analizuje stan łańcucha i automatycznie aktualizuje rotacje liderów, aby dostosować się do niereagujących walidatorów bez jakiejkolwiek interwencji człowieka, dzięki czemu dobrze nadaje się do zdecentralizowanych środowisk. Ponadto, nasz protokół wyraźnie oddziela liveness od bezpieczeństwa. Bez względu na to, czy sieć jest nieosiągalna, czy też rdzeń jest w jakiś sposób zagrożony, łańcuch nie rozwidla się tak długo, jak długo utrzymywane są gwarancje uczciwości BFT. Bezpieczeństwo naszego protokołu konsensusu zostało zarówno poddane audytowi, jak i formalnej weryfikacji.
Nasze badania wykazały, że mogą istnieć proste rozszerzenia, które zwiększają odporność naszego obecnego protokołu BFT poprzez wykorzystanie okresów, w których więcej niż 2f+1 węzłów głosuje na blok. Te silniejsze zobowiązania dają jeszcze większą pewność, że sieć nie rozwidli się w przyszłości i dodatkowo zwiększają zaufanie użytkowników do ostateczności poza standardowymi właściwościami BFT.
Wdrożenie i testowanie Aptos Core
Duża liczba walidatorów działających w różnych środowiskach jest ważna zarówno dla decentralizacji, jak i bezpieczeństwa. Ponadto oprogramowanie walidatora musi być bezpiecznie zaprojektowane, aby zapobiec atakom — jest to jeden z głównych powodów, dla których wybraliśmy Rust i Move jako nasze języki do implementacji logiki protokołu i inteligentnego kontraktu.
Podstawowe właściwości bezpieczeństwa blockchaina Aptos polegają na prawidłowej implementacji walidatorów, modułów Move i maszyny wirtualnej Move. Zmodularyzowaliśmy kod i zidentyfikowaliśmy minimalną zaufaną bazę obliczeniową (TCB), która izoluje krytyczne właściwości bezpieczeństwa (np. bezpieczeństwo protokołu konsensusu i poprawność wykonania). Modularność i użycie TCB pozwala nam na wykorzystanie technik rozwoju wysokiej pewności. Ponadto, w przypadku komponentów krytycznych dla bezpieczeństwa, możemy wprowadzić bardziej rygorystyczne wymagania dotyczące przeglądu kodu, zależności, testowania i bezpieczeństwa środowiska wykonawczego.
Połączyliśmy dekady wspólnego doświadczenia w tworzeniu, testowaniu i wdrażaniu oprogramowania na skalę internetową z nowymi pomysłami na niezawodne działanie w zdecentralizowanym środowisku. Przed każdym wydaniem kodu przeprowadzamy serię testów sieci rozproszonej, takich jak testy obciążenia i ataki bizantyjskie, a następnie oceniamy poprawność i wydajność. Mamy również etapowe wdrożenie do wielu sieci testowych przed wdrożeniem do sieci głównej, z istotnymi testami obciążenia i trwałości na każdym etapie. Nasza nadchodząca, motywowana sieć testowa w drugim kwartale skupi się w dużej mierze na budowaniu wiedzy społeczności na temat działania węzłów. Mamy już duże doświadczenie we współpracy z wiodącymi operatorami węzłów na świecie w zakresie przygotowania i testowania różnych scenariuszy odzyskiwania danych po katastrofie i czekamy na zbudowanie najbardziej niezawodnej zdecentralizowanej sieci, jaka jest możliwa.
Bezpieczniejsze klucze do odzyskiwania kont i rotacyjne protokoły.
Aby zmniejszyć ryzyko kradzieży kluczy, Aptos obsługuje możliwość rotacji klucza prywatnego przez każde konto. Zatwierdzający mogą również okresowo obracać swój klucz konsensusu w celu zwiększenia bezpieczeństwa. Aby uniknąć problemów związanych z miliardami dolarów wartości, które zostały zablokowane z powodu utraty klucza, pracujemy również nad opracowaniem nowatorskich technik wokół odzyskiwania klucza, które mogą być bezpośrednio zintegrowane z modelem konta blockchain.
Transakcje wieloagentowe
Transakcje wieloagentowe wykorzystują typ sygnatariusza Move, aby umożliwić dowolną liczbę działań atomowych w jednej transakcji na wielu kontach on-chain. Może to sprawić, że atomowe zamiany, zatwierdzenia K-of-N i wszelkie dowolne działania atomowe między dwoma lub więcej podmiotami on-chain zostaną zakończone w jednej transakcji. Uczynienie tych złożonych interakcji niepodzielnymi poprawia zarówno bezpieczeństwo, jak i wydajność. Jeszcze szerszy zakres możliwych do skomponowania wzorców i przypadków użycia jest możliwy przy łączeniu transakcji wieloagentowych z obsługą wielu podpisów na jednym koncie.
Powszechnie wiadomo, że wysokie opłaty za transakcje, niska przepustowość i wysokie wskaźniki ostateczności ograniczają przypadki użycia blockchaina i spowodowały wzrost zapotrzebowania na zoptymalizowane pod kątem wydajności blockchainy L1 i L2. Mniej popularnym aspektem skalowalności jest to, że pamięć masowa on-chain jest bardzo droga i ma problemy z wydajnością skalującą się do miliardów kont i bilionów aktywów on-chain i off-chain. Naszym celem jest holistyczne skupienie się na wydajności z punktu widzenia doświadczenia użytkownika. Uważamy, że blockchainy L1 powinny ponosić większą odpowiedzialność za skalowalność, aby uprościć i włączyć do głównego nurtu doświadczenie użytkownika.
Metryki i pomiary end-to-end
Przez lata istniało ogromne zamieszanie wokół metryk wydajności blockchain. Zacznijmy od najprostszych definicji.
· Przepustowość — Liczba transakcji przetwarzanych na sekundę (tps)
· Finality — Czas mierzony od momentu, gdy klient tworzy i przesyła transakcję do momentu, gdy inna strona potwierdzi, że transakcja została zaangażowana
Na przepustowość i finalność wpływa wiele czynników. Pierwszym z nich jest złożoność transakcji. Prosta transakcja peer-to-peer, która przenosi tokeny na konto Alicji z konta Boba jest znacznie mniej kosztowna niż taka, która wstępnie generuje 1000 NFT. Rozmiar i rozkład walidatora i uniwersum kont również będzie miał duży wpływ na wydajność. Ile jest walidatorów i jakie są ich specyfikacje sprzętowe? Ile jest kont (np. 10 000 vs 1 miliard kont)? Jaki jest rozkład wielkości kont (np. 1k vs 10 MB)? Jaki jest rozkład wzorców dostępu (np. zero konfliktów transakcji do w pełni sekwencyjnych zależności)? Jakie są gwarancje uporządkowania między transakcjami (częściowe uporządkowanie lub całkowite uporządkowanie) i czy są one dobrze dopasowane do inteligentnych kontraktów? Te czynniki utrudniają obiektywne porównanie wydajności pomiędzy różnymi sieciami. Porównania są jeszcze bardziej zagmatwane, gdy weźmiemy pod uwagę różne metody pomiaru wydajności. Na przykład, nasze badania nad rodziną protokołów konsensusu opartych na DAG (tj. All You Need Is DAG, Narwhal and Tusk: A DAG-based Mempool and Efficient BFT Consensus oraz Bullshark: DAG BFT Protocols Made Practical) pokazują, że ta klasa protokołów może wynosić od 125 000 do 160 000 tps lub nawet więcej. Jednak te liczby przepustowości nie reprezentują przepustowości end-to-end blockchain, ponieważ biorą pod uwagę tylko konsensus, sieć i rozważania dotyczące częściowego przechowywania. Nie uwzględniają one innych ważnych czynników, takich jak czasy realizacji transakcji, wzorce dostępu do kont lub uwierzytelnione struktury danych (np. drzewa Merkle) w produkcyjnym blockchainie. Po stronie ostateczności, czasy bloków często są mylone z ostatecznością, podczas gdy w rzeczywistości czasy bloków są czynnikiem wejściowym do ostateczności.
Wierzymy w przejrzystość i otwartość wokół benchmarków, wyjaśniając różnice między metodologiami testowania i jasno określając wyniki komponentów w porównaniu z wynikami end-to-end. W najbliższych miesiącach podzielimy się szczegółowymi wynikami wydajności end-to-end i metodologią testów. Z czasem zamierzamy udostępnić ramy benchmarkingowe i porównać charakterystykę wydajności różnych przypadków użycia w różnych blockchainach.
Podróż do wysokiej przepustowości i szybkiej ostateczności
Głównym krokiem w tej podróży było całkowite odłączenie protokołu konsensusu od realizacji transakcji. Protokół konsensusu uzgadnia proponowane uporządkowanie transakcji. W oddzielnym protokole i poza ścieżką krytyczną, walidatory wykonują transakcje i mają porozumienie co do ostatecznego uporządkowania transakcji i wyników wykonania. Protokoły integrujące konsensus i wykonanie są prostsze, ale ponoszą większy koszt w przepustowości i opóźnieniach z powodu ich współzależności.
Jak wspomniano wcześniej, mamy najniższą latencję, najbardziej zaawansowany wariant HotStuff testowany przez wiele lat. W najczęstszym przypadku protokół zobowiązuje się do zawarcia umowy w ciągu dwóch pełnych rund sieciowych — łatwo osiągalna jest podsekunda, nawet gdy światowe rundy sieciowe trwają do 250 milisekund. W przypadku ataku lub w okresie przerwy w działaniu sieci, system reputacji on-chain automatycznie minimalizuje negatywny wpływ wyłączonych walidatorów. Rozpoczęliśmy już badania i rozwój dla naszej kolejnej iteracji protokołu konsensusu, który przyspiesza rozpowszechnianie transakcji i oczekujemy aktualizacji sieci testowej z tą technologią jeszcze w tym roku.
Po odłączeniu protokołu konsensusu od potoku wykonawczego, kolejnym wąskim gardłem jest czas wykonania transakcji. Używając nowatorskich technik inspirowanych programową pamięcią transakcyjną, osiągamy ponad 130 tys. transakcji na sekundę przy użyciu zaledwie 32 rdzeni w naszym benchmarku dotyczącym wyłącznie wykonywania transakcji. Programiści otrzymują tę korzyść za darmo, ponieważ nasz framework wykonawczy automatycznie wykorzystuje nieodłączny paralelizm w każdym obciążeniu. Nie trzeba dostarczać żadnych dodatkowych informacji od deweloperów. Być może najważniejsze jest to, że blockchain o wysokiej przepustowości oznacza niskie opłaty transakcyjne dla użytkowników.
Ostatnim wąskim gardłem dla wydajności — i najbardziej ignorowanym — są uwierzytelnione struktury danych i związane z nimi przechowywanie stanu. Jednym z wyzwań jest to, że podczas uwierzytelniania stanu księgi (np. salda kont, inteligentnych kontraktów itp.), drzewa Merkle w pamięci są wydajne w małej skali, jednak zapisywanie dużych drzew Merkle do pamięci trwałej jest wąskim gardłem. Projektujemy nasze struktury danych uwierzytelnionych, aby były przyjazne dla bazy danych, badając wyższe współczynniki rozgałęzienia, buforowanie zoptymalizowane pod kątem wzorca dostępu i staranne wersjonowanie. Obecnie rozwijamy również wsparcie dla dużych kont — możliwość dostępu do poszczególnych zasobów Move dla każdego konta, zamiast nieefektywnie jako pojedynczy obiekt blob i badamy przyszłą ścieżkę do dokładniejszego dostępu w ramach zasobów Move poprzez podzielenie ich na kawałki zoptymalizowane pod kątem wzorca dostępu. Warstwowe przechowywanie i wynajem stanu są ważnymi priorytetami, aby wspierać wszystkie rodzaje nowych przypadków użycia.
Równoległe transakcje na kontach z zachowaniem kontroli nad porządkiem transakcji
Podejście oparte na numerach sekwencyjnych, spopularyzowane przez Ethereum, zapewnia pełną kontrolę użytkownika nad porządkowaniem transakcji, wydajne filtrowanie mempooli i ograniczone zużycie pamięci. Eksperymentowaliśmy z rozszerzeniem podejścia numerów sekwencyjnych o odporne na konflikty numery sekwencyjne, aby umożliwić równoległość kont w oknie numerów sekwencyjnych, jednocześnie dając użytkownikom możliwość kontrolowania kolejności transakcji w razie potrzeby. Nasza przyszła praca ma również na celu rozważenie alternatywnych implementacji równoległości, które są jeszcze bardziej elastyczne i kompozycyjne.
Szybka i elastyczna obsługa zarządzania stanem dla węzłów lekkich, pełnych, archiwalnych i dla walidatorów
Synchronizacja stanów pomiędzy węzłami może wymagać użycia procesora w przypadku blockchainów o dużej przepustowości. Wspieramy spektrum różnych protokołów synchronizacji stanu, które równoważą procesor i przepustowość sieci. Aby wspierać niedrogie węzły pełne, mamy protokół, który może synchronizować transakcje i ich wykonane wyniki podpisane przez kworum walidatorów, co pozwala węzłowi pominąć obliczenia kosztem wyższej przepustowości sieci i bezpośrednio aktualizować stan księgi głównej z wykonanych wyników.
Zamiast pobierać łańcuch bloków, aby dostać się do najnowszej księgi, jak robi to większość blockchainów, klient może użyć akumulatora transakcji najwyższego poziomu, aby uzyskać najnowszą zaangażowaną transakcję. Pozwala to również na niedrogie przycinanie poprzednich transakcji i historii księgi głównej, jeśli jest to pożądane. Zaufane punkty orientacyjne umożliwiają również szybką synchronizację dla węzłów, aby szybko nadrobić zaległości, jak również.
Sieci muszą szybko dostosować się do wspierania zmieniających się potrzeb web3. Przypadki użycia blockchain i ulepszenia technologii stale rosną i rozwijają się skokowo. Na przykład w 2021 roku NFT stały się rynkiem o wartości 40 miliardów dolarów. Wielu przewiduje, że rok 2022 będzie rokiem, w którym DAO zyskają adopcję. Powstają nowe protokoły konsensusu i języki inteligentnych kontraktów. Transakcje chroniące prywatność stają się bardziej praktyczne. Niestety, wiele z dzisiejszych sieci miało trudności z wprowadzeniem znaczących ulepszeń protokołu po uruchomieniu. Niektóre sieci, które próbowały dokonać znaczących ulepszeń, doświadczyły wielogodzinnych przestojów, a czasem przypadkowych hard forków. Uważamy, że jest to jeden z kluczowych powodów, dla których tak wiele nowych sieci jest uruchamianych. Niestety, eksplozja sieci prowadzi do wyzwań związanych z doświadczeniem użytkownika, ponieważ wymaga znajomości różnych środowisk i zorientowania się, która sieć najlepiej nadaje się do konkretnego przypadku użycia. Zaprojektowaliśmy i zbudowaliśmy Aptos blockchain, aby można było go uaktualnić jako kluczową właściwość i z powodzeniem przeprowadziliśmy kilka dużych aktualizacji bez przestojów w ciągu ostatnich lat. Aby osiągnąć ten cel, zarządzanie walidatorami i konfiguracją jest zarządzane za pomocą stanu on-chain — dzięki czemu społeczność może wygodnie głosować i szybko wykonywać aktualizacje. Solidne praktyki testowania i wdrażania zapewniają bezpieczny i niezawodny rollout.
Technologia Aptos został zbadana, zaprojektowana i opracowana przez ponad 30-osobowy zespół badawczy i inżynieryjny platformy kryptowalutowej z doświadczeniem domenowym i doktoratami w zakresie konsensusu, kryptografii, systemów rozproszonych, weryfikacji formalnej, bezpieczeństwa itp. Baza kodowa znacznie się rozrosła w ciągu 3+ lat z 292 unikalnymi programistami i dziesiątkami propozycji ulepszeń opracowanych przez społeczność. Został on przetestowany w środowisku produkcyjnym w wielu różnych przypadkach użycia i obsługiwany przez wielu operatorów korporacyjnych przez ponad rok z ponad tuzinem możliwych scenariuszy katastrof. Przeprowadziliśmy wiele udanych, znaczących aktualizacji w prywatnej sieci głównej z zerowym czasem przestoju. Baza kodowa jest oparta na otwartym źródle i zarządzana przez społeczność, a jej długoterminowym celem jest zbudowanie infrastruktury, która może być wykorzystana w wielu sieciach. Społeczność jest gotowa i podekscytowana, aby zobaczyć tę technologię i odblokować wiele nowych zastosowań w przyszłości.
Jesteśmy zobowiązani do uruchomienia naszej sieci głównej tak szybko, jak to możliwe, aby umożliwić szerszej społeczności rozpoczęcie budowy — wielu czekało lata na uruchomienie naszej technologii. W trakcie podróży do mainnetu i dalej, będziemy ogłaszać serię globalnych hackathonów i czekamy na Wasz udział! Będziemy wykorzystywać naszą zdolność do uaktualniania sieci o nowe funkcje, funkcjonalność, bezpieczeństwo i ulepszenia skalowania, jak tylko osiągną one gotowość do działania w naszych sieciach testowych i procesie wdrażania.
2022 Q1 (15 marca) — Uruchomienie sieci testowej dla deweloperów
· Praca z partnerami strategicznymi i społecznością programistów web3 w celu zebrania informacji zwrotnych i wprowadzenia ulepszeń w odniesieniu do doświadczenia programisty i języka Move.
2022 Q2 — Uruchomienie sieci testowej
· Większy i podobny do mainnetu obszar dla partnerów strategicznych i deweloperów web3 do zbudowania
· Praca ze społecznością operatorów węzłów w celu wspólnego włączenia i budowania doświadczenia w obsłudze zdecentralizowanej sieci
· Uruchomienie bug bounty w celu poprawy doświadczenia deweloperów, działania węzłów i rozwiązania problemów z infrastrukturą
· Zapewnienie motywacji dla wszystkich uczestników, którzy pomogą zabezpieczyć sieć
2022 Q3 — uruchomienie głównej sieci
2022 Q4–2023 Q1 — Wdrożenie kolejnej ważnej aktualizacji do sieci głównej Aptos z następnym zestawem istotnych funkcji
No comments yet