Przedstawiamy Scribble firmy ConsenSys Diligence

blog 1AktualnościDevelopersEnterpriseBlockchain ExplainedWydarzenia i konferencjePrasaBiuletyny

Zapisz się do naszego newslettera.

Adres e-mail

Szanujemy twoją prywatność

HomeBlogAktualności

Przedstawiamy Scribble firmy ConsenSys Diligence

przez ConsenSys 8 grudnia 2020 opublikowany 8 grudnia 2020

Bazgrać

Zapewnienie, że inteligentne kontrakty są bezpieczne i wolne od błędów, nigdy nie było tak krytyczne. Niestety pozostaje to trudne zadanie. Chociaż istnieją przydatne narzędzia do automatycznego testowania i weryfikacji formalnej, zapewnienie poprawności inteligentnych kontraktów nadal jest czasochłonnym i trudnym zadaniem. Co gorsza, każde narzędzie często wymaga stromej krzywej uczenia się i często nie ma pewności, czy jest w ogóle odpowiednie do danego zadania.

Dlatego opracowaliśmy Scribble: język weryfikacji i narzędzie do weryfikacji w czasie wykonywania. Chociaż początkowo został stworzony do automatycznego testowania właściwości podczas audytów, zdecydowaliśmy się udostępnić ten projekt społeczności!

Co to jest Scribble?

Kiedy mówimy o Scribble, mówimy o dwóch rzeczach.

Po pierwsze, Scribble jest językiem specyfikacji do pisania właściwości.

Po drugie, Scribble to narzędzie do weryfikacji środowiska uruchomieniowego przy użyciu języka specyfikacji Scribble.

UWAGA: Scribble nie przeprowadza samodzielnie żadnej weryfikacji. To robi włącz inne narzędzia do testowania i sprawdzania właściwości.


Scribble to język

Scribble definiuje język specyficzny dla domeny do pisania właściwości dotyczących inteligentnych kontraktów. Zbudowaliśmy język na podstawie składni solidności, aby ułatwić naukę. Ten język specyfikacji umożliwia dodawanie adnotacji do inteligentnego kontraktu solidności z właściwościami.

UWAGA: Właściwość to logiczne stwierdzenie, które według Ciebie będzie prawdziwe, np. „Wszystkie samochody są czerwone”. W solidności często będziesz mieć właściwości takie jak: „Tylko właściciel może zmienić X”. Lub „Funkcja sendToken (), nie powinna zmieniać salda ethernetowego tej umowy”.

Możesz użyć kilku typów adnotacji dla różnych rodzajów właściwości. Na przykład niezmienniki lub warunki końcowe.

Oto przykład adnotacji Scribble:

Zrzut ekranu 2020 12 08 o 12 06 15 PM

Jak widać, adnotacje mają postać komentarza w wierszu umieszczonego nad definicją funkcji. Dodaliśmy tak zwaną klauzulę if_succeeds, która sprawdza, czy warunek jest zachowany po wykonaniu funkcji. W takim przypadku sprawdzamy, czy wynik funkcji jest zawsze niezerowy.

Przeczytaj dokumentację Scribble

Oparliśmy język Scribble na sprawdzonych koncepcjach, takich jak warunki końcowe, niezmienniki i logika temporalna. Ale przyglądamy się również, w jaki sposób możemy wprowadzić nowatorskie pomysły, aby lepiej dopasować się do specyficznych dla domeny problemów inteligentnych kontraktów.

Scribble to narzędzie

Scribble może wziąć kontrakt z adnotacjami z właściwościami i skompilować go do nowego kontraktu. W tej nowej umowie Scribble doda kod Solidity, który wywołuje asercję za każdym razem, gdy zostanie naruszona właściwość. Nazywamy to oprzyrządowaniem procesu.

Dodanie kodu wykonywalnego, który sprawdza właściwości, nazywa się weryfikacją w czasie wykonywania i ułatwia pracę z istniejącymi narzędziami bez wielu dostosowań. Dzieje się tak, ponieważ większość narzędzi już zinterpretuje kod solidności i będzie w stanie od razu wyszukiwać naruszenia własności!

Ponieważ możesz użyć istniejących automatycznych technik testowania (takich jak nasz fuzzer Harvey), będziesz mógł rozpocząć testowanie po napisaniu tylko jednej właściwości. Uważamy, że jest to znacząca korzyść; Korzystasz z automatycznego testowania od razu, zamiast spędzać dużo czasu na początku, aby uzyskać krytyczną masę adnotacji. Coś, co jest zwykle konieczne w przypadku tradycyjnych podejść weryfikacyjnych.

Możesz szybko rozpocząć testowanie i analizowanie umowy, a nawet później zdecydować, czy włożyć dodatkowy wysiłek, aby całkowicie zweryfikować inteligentny kontrakt!

Cele

Rewizja

Używamy Scribble podczas audytów do formułowania właściwości. Korzystając z technik automatycznej analizy, takich jak rozmywanie i wykonywanie symboliczne, będziemy automatycznie testować i znajdować naruszenia dotyczące tych właściwości.

Skontaktuj się z nami, aby dowiedzieć się więcej o fuzzingu i testach opartych na właściwościach podczas audytów

Standard

Scribble ma na celu pracę z różnymi narzędziami i technikami; nie chcemy tylko umożliwić testowania opartego na właściwościach, ale także łatwej weryfikacji formalnej. Zaletą używania jednego uniwersalnego języka specyfikacji jest to, że wkładasz wysiłek w napisanie właściwości tylko raz, ale czerpiesz korzyści z używania wielu narzędzi.

Przyjęcie

Dzięki Scribble mamy nadzieję obniżyć barierę lub wejście do automatycznego testowania i formalnej weryfikacji. Chcemy również skrócić czas potrzebny na opracowanie prawidłowych i bezpiecznych inteligentnych kontraktów, co skutkuje bezpieczniejszym ekosystemem.

Gdzie możesz to zdobyć?

Mamy całkowicie otwarty Scribble i jest już dostępny pod adresem github.com/consensys/scribble.

UWAGA: To jest wersja beta, zmienią się aspekty języka i możesz napotkać pewne błędy.

Możesz łatwo zainstalować Scribble za pomocą npm:

Zrzut ekranu 2020 12 08 o 12 06 35 PM Zainstaluj Scribble

Biuletyn Zapisz się do naszego newslettera, aby otrzymywać najnowsze wiadomości dotyczące Ethereum, rozwiązania dla przedsiębiorstw, zasoby dla programistów i nie tylko.Ethereum Raport DeFi za III kwartał 2020 rRaport

Ethereum Raport DeFi za III kwartał 2020 r

Ethereum Raport DeFi za II kwartał 2020 rRaport

Ethereum Raport DeFi za II kwartał 2020 r

Ethereum 2 0 Raport o obstawianiu ekosystemówRaport

Raport ekosystemu obstawiania Ethereum 2.0

Kompletny przewodnik po sieciach biznesowych BlockchainPrzewodnik

Kompletny przewodnik po sieciach biznesowych Blockchain

Jak zbudować udany produkt BlockchainWebinar

Jak zbudować udany produkt Blockchain

Banki centralne i przyszłość pieniądzaBiały papier

Banki centralne i przyszłość pieniądza

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