blogul 1NewsDevelopersEnterpriseBlockchain Explained Evenimente și conferințe ApăsațiBuletine informative

Aboneaza-te la newsletter-ul nostru.

Adresa de email

Vă respectăm confidențialitatea

AcasăBlogNoutăți

Vă prezentăm Scribble by ConsenSys Diligence

de ConsenSys 8 decembrie 2020 Postat pe 8 decembrie 2020

Bileţel

Asigurarea faptului că contractele inteligente sunt sigure și fără erori nu a fost niciodată mai critic. Din păcate, rămâne o sarcină dificilă. În timp ce există instrumente utile pentru testarea automată și verificarea formală, asigurarea corectitudinii contractelor inteligente continuă să fie o sarcină intensivă și provocatoare. Pentru a înrăutăți lucrurile, fiecare instrument are adesea o curbă de învățare abruptă și adesea nu este sigur dacă este chiar potrivit pentru job.

De aceea, am dezvoltat Scribble: un instrument de verificare a limbajului de verificare și a runtime-ului. Deși inițial a fost creat pentru testarea automată a proprietății în timpul auditurilor, am decis să împărtășim acest proiect comunității!

Ce este Scribble?

Când vorbim despre Scribble, vorbim despre două lucruri.

În primul rând, Scribble este un limbaj de specificare pentru scrierea proprietăților.

În al doilea rând, Scribble este un instrument de verificare a runtime care utilizează limbajul de specificare Scribble.

NOTĂ: Scribble nu efectuează nicio verificare de la sine. Aceasta face activați alte instrumente pentru a testa și verifica proprietățile.

Scribble este un limbaj

Scribble definește un limbaj specific domeniului pentru scrierea proprietăților despre contractele inteligente. Am construit limba pe baza sintaxei solidității, pentru a ușura învățarea. Acest limbaj de specificații vă permite să adnotați un contract inteligent de soliditate cu proprietăți.

NOTĂ: O proprietate este o afirmație logică pe care vă așteptați să fie adevărată, de ex. „Toate mașinile sunt roșii”. Din punct de vedere al solidității, veți avea deseori proprietăți precum: „Numai proprietarul poate modifica X”. Sau „Funcția sendToken (), nu ar trebui să schimbe soldul eteric al acestui contract”.

Puteți utiliza mai multe tipuri de adnotări pentru diferite tipuri de proprietăți. De exemplu, invarianți sau post-condiții.

Acesta este un exemplu de adnotare Scribble:

Captură de ecran 2020 12 08 la 12 06 15 PM

După cum puteți vedea, adnotările iau forma unui comentariu în linie plasat deasupra unei definiții a funcției. Am adăugat o așa-numită clauză if_succeed, care verifică dacă o condiție este valabilă după executarea funcției. În acest caz, verificăm dacă rezultatul funcției este întotdeauna diferit de zero.

Citiți documentația Scribble

Am bazat limbajul Scribble pe concepte dovedite precum post-condiții, invarianți și logică temporală. Dar ne uităm și la modul în care putem introduce idei noi pentru a se potrivi mai bine problemelor specifice domeniului contractelor inteligente.

Scribble este un instrument

Scribble poate lua un contract adnotat cu proprietăți și îl poate compila într-un nou contract. În acest nou contract, Scribble va adăuga un cod Solidity care ridică o afirmație ori de câte ori este încălcată o proprietate. Acest proces îl numim instrumentare.

Adăugarea unui cod executabil care verifică proprietățile se numește verificare în timp de execuție și facilitează lucrul cu instrumentele existente fără multe adaptări. Acesta este cazul, deoarece majoritatea instrumentelor vor interpreta deja codul de soliditate și vor putea căuta imediat încălcări ale proprietății!

Deoarece puteți utiliza tehnici de testare automată existente (cum ar fi fuzzer-ul nostru Harvey), veți putea începe testarea după ce scrieți o singură proprietate. Credem că acesta este un beneficiu semnificativ; Beneficiați de testarea automată imediat, în loc să trebuiască să petreceți mult timp în avans pentru a obține o masă critică de adnotări. Ceva care este de obicei necesar cu abordările tradiționale de verificare.

Puteți începe să testați și să analizați rapid un contract și chiar să decideți mai târziu să depuneți efortul suplimentar pentru a verifica complet un contract inteligent!

Obiective

Audit

Folosim Scribble în timpul auditurilor pentru a formula proprietăți. Folosind tehnici de analiză automată, cum ar fi fuzzing-ul și execuția simbolică, vom testa automat și vom găsi încălcări pentru aceste proprietăți.

Contactați-ne pentru a afla mai multe despre fuzzing și testarea bazată pe proprietăți în timpul auditurilor

Standard

Scribble își propune să lucreze cu diferite instrumente și tehnici; nu dorim doar să activăm testarea bazată pe proprietăți, ci și verificarea formală ușoară. Avantajul utilizării unui singur limbaj de specificație universal este că depuneți efortul de a scrie proprietăți o singură dată, dar beneficiați de avantajul utilizării mai multor instrumente.

Adopţie

Cu Scribble sperăm să coborăm bariera sau intrarea pentru testare automată și verificare formală. De asemenea, dorim să reducem timpul necesar pentru a dezvolta contracte inteligente corecte și sigure, rezultând un ecosistem mai sigur.

De unde îl puteți obține?

Am scris în întregime Scribble cu sursă deschisă și este disponibil acum la github.com/consensys/scribble.

NOTĂ: Aceasta este o versiune beta, aspecte ale limbajului se vor schimba și este posibil să întâlniți unele erori.

Puteți instala cu ușurință Scribble cu npm:

Captură de ecran 2020 12 08 la 12 06 35 PM Instalați Scribble

Newsletter Abonați-vă la newsletter-ul nostru pentru cele mai recente știri Ethereum, soluții pentru întreprinderi, resurse pentru dezvoltatori și multe altele. Adresa de e-mail Conținut exclusivEthereum Q3 2020 DeFi ReportRaport

Ethereum Q3 2020 DeFi Report

Ethereum Q2 2020 DeFi ReportRaport

Ethereum Q2 2020 DeFi Report

Ethereum 2 0 Raport privind ecosistemul de mizăRaport

Ethereum 2.0 Staking Ecosystem Report

Ghid complet pentru rețelele de afaceri BlockchainGhid

Ghid complet pentru rețelele de afaceri Blockchain

Cum să construiți un produs Blockchain de succesWebinar

Cum să construiți un produs Blockchain de succes

Băncile centrale și viitorul banilorHartie alba

Băncile centrale și viitorul banilor

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me