Jak weryfikacja formalna może zmniejszyć liczbę błędów i luk w inteligentnych kontraktach

Formalna weryfikacja w inteligentnych kontraktach

Formalna weryfikacja inteligentnych kontraktów to wyłaniający się trend w obszarze kryptowalut, który koncentruje się na zmniejszaniu liczby błędów i luk w zabezpieczeniach inteligentnych kontraktów, które doprowadziły do ​​wielu głośnych hacków i problemów związanych z bezpieczeństwem..

Weryfikacja formalna ma wiele zastosowań w zakresie sprzętu i oprogramowania. Stało się to niezwykle ważne w miarę wzrostu złożoności systemów, zwłaszcza sprzętu. W sieciach blockchain litania luk w zabezpieczeniach inteligentnych kontraktów i exploitów doprowadziła do zapotrzebowania na ulepszone programowanie i audytowanie inteligentnych kontraktów.

Formalna weryfikacja w inteligentnych kontraktach

Wprowadzenie do weryfikacji formalnej

Formalne zastosowania weryfikacji metody formalne aby sprawdzić, czy projekt sprzętu lub systemu oprogramowania spełnia określony zestaw właściwości. Metody formalne to szczególny rodzaj technik matematycznych służących do specyfikacji, rozwoju i weryfikacji zarówno sprzętu, jak i oprogramowania. Korzystanie z metod formalnych w celu udowodnienia lub obalenia poprawności zamierzonych algorytmów nazywa się weryfikacją formalną.

Martinowi Davisowi przypisuje się opracowanie pierwszego wygenerowanego komputerowo dowodu matematycznego w 1954 r. Koncepcja ta zaczęła zyskiwać na popularności w latach sześćdziesiątych XX wieku w celu weryfikacji poprawności programów komputerowych we wczesnych językach, takich jak Pascal i Java. Po kilku znanych błędach komputerowych, takich jak Błąd Pentium FDIV w 1994 r. zaczęło rosnąć w siłę przekonanie, że formalna weryfikacja musi być wszechobecna.

Testowanie oprogramowania lub systemu sprzętowego można podzielić na dwie ogólne fazy:

  1. Uprawomocnienie
  2. Weryfikacja

Walidacja to określenie, czy produkt spełnia potrzeby użytkownika.

Weryfikacja polega na sprawdzeniu, czy produkt jest zgodny ze specyfikacjami.

#Crypto ExchangeBenefits

1

Binance
Best exchange


VISIT SITE
  • ? The worlds biggest bitcoin exchange and altcoin crypto exchange in the world by volume.
  • Binance provides a crypto wallet for its traders, where they can store their electronic funds.

2

Coinbase
Ideal for newbies


Visit SITE
  • Coinbase is the largest U.S.-based cryptocurrency exchange, trading more than 30 cryptocurrencies.
  • Very high liquidity
  • Extremely simple user interface

3

eToro
Crypto + Trading

VISIT SITE
  • Multi-Asset Platform. Stocks, crypto, indices
  • eToro is the world’s leading social trading platform, with thousands of options for traders and investors.

Weryfikacja polega na stworzeniu abstrakcyjnego modelu matematycznego, który jest skorelowany ze specyfikacjami projektowymi produktu (tj. Algorytm, chip sprzętowy), podczas gdy formalne metody użyte do wygenerowania modelu wynikają głównie z teoretycznych podstaw informatyki.

Stosowanie weryfikacji formalnej stało się niezwykle ważne w systemach sprzętowych, w których jest on stosowany przez prawie każdego większego producenta sprzętu w celu zapewnienia niezawodności ich produktów. Jednak jego użycie nie jest tak powszechne w oprogramowaniu, jak w sprzęcie, co przypisuje się głównie komercyjnemu charakterowi produkcji sprzętu..

Jednak ta dynamika zaczyna się zmieniać wraz z pojawieniem się łańcuchów bloków i kryptowalut, w których znaczne transfery wartości są wykonywane autonomicznie w zdecentralizowanej sieci. Biorąc pod uwagę większą wartość niż tradycyjne systemy, poprawność inteligentnych kontraktów stała się pilnym problemem.

ZA krótka historia exploitów związanych z inteligentnymi kontraktami wystarczy, aby zrozumieć konsekwencje prostych luk w kodzie kontraktu.

Dlaczego warto go używać w inteligentnych kontraktach?

#CRYPTO BROKERSBenefits

1

eToro
Best Crypto Broker

VISIT SITE
  • Multi-Asset Platform. Stocks, crypto, indices
  • eToro is the world’s leading social trading platform, with thousands of options for traders and investors.

2

Binance
Cryptocurrency Trading


VISIT SITE
  • ? Your new Favorite App for Cryptocurrency Trading. Buy, sell and trade cryptocurrency on the go
  • Binance provides a crypto wallet for its traders, where they can store their electronic funds.

#BITCOIN CASINOBenefits

1

Bitstarz
Best Crypto Casino

VISIT SITE
  • 2 BTC + 180 free spins First deposit bonus is 152% up to 2 BTC
  • Accepts both fiat currencies and cryptocurrencies

2

Bitcoincasino.io
Fast money transfers


VISIT SITE
  • Six supported cryptocurrencies.
  • 100% up to 0.1 BTC for the first
  • 50% up to 0.1 BTC for the second

Według niedawnego nauka wykonano na prawie 1 milionie inteligentnych kontraktów Ethereum, 34200 z nich zostało oznaczonych jako podatne na atak, w 10 sekund na kontrakt. Ta oszałamiająca liczba została osiągnięta dzięki analizie śledzenia luk w zabezpieczeniach inteligentnych kontraktów, w tym:

  • Znajdowanie umów, które blokują fundusze na czas nieokreślony
  • Umowy, które beztrosko wyciekają fundusze do arbitralnych użytkowników
  • Kontrakty, które każdy może zabić

Wraz z ogólną złożonością logiczną i nowościami związanymi z programowaniem inteligentnych kontraktów dla łańcuchów bloków, ich niezmienny charakter – gdy już zostaną zaangażowani w łańcuch bloków – sprawia, że ​​luki w zabezpieczeniach są potencjalnie znacznie bardziej szkodliwe.

Brian Marick i Daejun Park zapewniają doskonałe analiza luk w zabezpieczeniach inteligentnych kontraktów i jak weryfikacja formalna może pomóc złagodzić ich przypadki. Zasadniczo programista może nie uzyskać tego, czego chce od inteligentnej umowy, na dwa sposoby.

  1. Niezrozumiany zamiar
  2. Popełnianie błędu podczas realizacji tego zamiaru

Wiele z tych standardowych błędów może prowadzić do ogromnych sum zablokowanych funduszy, jak w przypadku Portfel parzystości lub z Ethereum rekurencyjny exploit wysyłania w Incydent DAO. Formalna weryfikacja służy do matematycznego potwierdzenia, że ​​określone luki nie doprowadzą do niszczących wektorów exploitów.

Formalna specyfikacja jest używana jako dokładny wynik lub wynik, którego szuka inteligentny kontrakt, który komputer może sprawdzić. Weryfikacja odbywa się następnie po kompilacji kontraktu do kodu bajtowego, a weryfikacja formalna dowodzi, że skompilowany kod bajtowy implementuje specyfikację. Jednak ręczne przeprowadzanie weryfikacji formalnych jest żmudnym procesem i czasami wiąże się z własnymi błędami. Nawet weryfikacja wyników formalnego dowodu może wiązać się z niuansami.

Narzędzia takie jak Asystent Coq Proof zostały opracowane, aby ułatwić zmechanizowane dowody na temat właściwości programów i są obecnie używane przez kilka pojawiających się kryptowalut z językami, których używają, osadzonymi w Coq.

Podczas gdy audyt inteligentnych kontraktów zapewnia bardzo potrzebną warstwę zapewnienia poprzez przeglądy kodu, formalna weryfikacja inteligentnych kontraktów może pomóc w zmniejszeniu liczby luk w zabezpieczeniach dzięki dalszej analizie matematycznej. Ponieważ inteligentne kontrakty stają się coraz bardziej powszechne, wydaje się naturalne, że stosowanie weryfikacji formalnej stanie się bardziej powszechne w branży.

Aktualne zastosowania weryfikacji formalnej

Kilka platform już integruje weryfikację formalną lub planuje to wkrótce. Ocena bezpieczeństwa i ochrony inteligentnych kontraktów działających w ramach tych platform będzie miała zasadnicze znaczenie dla oceny ich skuteczności w powstrzymywaniu krytycznych słabych punktów.

Zilliqa

Zilliqa to wysokoprzepustowy łańcuch bloków zaprojektowany do obsługi skalowalnych i bezpiecznych zdecentralizowanych aplikacji (dapps). Kilku programistów technicznych stojących za Zilliqa było autorami wcześniejszego badania, które ujawniło tysiące słabych punktów inteligentnych kontraktów.

Zilliqa

Zilliqa używa nowego języka programowania o nazwie Scilla, zaprojektowanego przez członków zespołu Zilliqa i kilku innych partnerów. Scilla jest językiem na poziomie średnio zaawansowanym osadzonym w Asystencie Coq Proof. Ma być celem tłumaczenia dla języków wyższego poziomu w celu przeprowadzenia analizy i weryfikacji przed kompilacją umów do kodu bajtowego.

Tezos

Tezos jest napisane w OCaml a jego językiem inteligentnych kontraktów jest Michelson, oparty na OCaml. OCaml został wybrany ze względu na oferowaną przez program funkcjonalny szybkość, jednoznaczną składnię i semantykę oraz możliwości implementacji dowodów formalnych. Tezos korzysta również z Asystenta Coq Proof, aby ułatwić formalną weryfikację inteligentnych kontraktów.

Przewodnik Tezos

Arthur Breitman – współzałożyciel Tezos – opublikowane szczegóły dotyczące weryfikacji niektórych Michelson kontraktuje w Coq, w tym kontrakt z wieloma sygnaturami w sieci testowej w zeszłym roku. Niedawno uruchomiony Tezos, więc jego zastosowanie weryfikacji formalnej powinno stanowić doskonały miernik stanu poprawy bezpieczeństwa inteligentnych kontraktów wykorzystujących tę metodę. To, czy exploity, które nękały kontrakty Solidity, pojawią się w Tezos, zajmie trochę czasu, ale ocena, jak bezpieczne stają się inteligentne kontrakty na Tezos, może bardzo wskazywać na utrzymujący się trend.

Cardano

Cardano jest napisane w języku Haskell, a jego językiem inteligentnych kontraktów jest Plutus, który jest oparty na Haskell.

Przewodnik Cardano

Cardano został zaprojektowany z warstwą obliczeniową Cardano (CCL), która składa się z 2 warstw:

  1. Formalnie określona maszyna wirtualna i struktura językowa
  2. Formalnie określone języki, które ułatwiają weryfikację kodu inteligentnej umowy

Celem jest stworzenie środowiska, które usprawni proces zagwarantowania, że ​​umowa będzie funkcjonować zgodnie z projektem bez katastrofalnych podatności. Warto zauważyć, że Cardano nie wykorzystuje ograniczonego projektu stosu, takiego jak EVM Ethereum, więc nie martwienie się o przepływ arytmetyczny stosu pozwala znacznie łatwiej formalnie zweryfikować inteligentne kontrakty.

Ethereum

Ethereum od dłuższego czasu bada możliwość włączenia weryfikacji formalnej, a kilka projektów bada jego potencjał. Jedna taka publikacja „Inteligentniejsze kontrakty,”Koncentruje się na błędach w inteligentnych kontraktach i sugeruje sposoby ich złagodzenia, w tym poprawę semantyki operacyjnej Ethereum w celu wsparcia formalnej weryfikacji.

Przewodnik po Ethereum

Ograniczenia gazu w Ethereum to robią trudne wdrożenie weryfikacji formalnej. Ponadto jedynym sposobem poznania znaczenia programu Solidity jest skompilowanie go do kodu bajtowego. Kompilator zmienia się szybko, więc narzędzia weryfikacyjne również musiałyby dostosowywać się do tempa zmian. Biorąc pod uwagę ugruntowaną sieć i historię Ethereum, formalna weryfikacja inteligentnych kontraktów w Ethereum rzekomo zapewniłaby najlepszą miarę ich skuteczności w łagodzeniu luk w zabezpieczeniach, gdyby formalna weryfikacja stała się szeroko stosowana w sieci.

Wniosek

Weryfikacja formalna to bardzo złożone i żmudne zadanie. Mimo to stał się uniwersalnym standardem w branży sprzętu i prawdopodobnie będzie nadal nabierał rozpędu w przestrzeni oprogramowania. Blockchainy i sieci kryptowalut – gdzie transfery o wysokiej wartości są powszechne – z pewnością przyspieszą ten efekt. Mierzenie pozytywnego wpływu formalnej weryfikacji inteligentnych kontraktów zajmie prawdopodobnie kilka lat, ponieważ widzimy dopiero początki tego, co powinno stać się znacznie szerszym trendem w branży.

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