NewsDevelopersEnterpriseBlockchain ExplainedEvents and ConferencesPressButlletins informatius
Subscriu-te al nostre butlletí.
Correu electrònic
Respectem la vostra privadesa
IniciBlogNotícies
Presentació de Scribble by ConsenSys Diligence
per ConsenSys, 8 de desembre de 2020 Publicat el 8 de desembre de 2020
Mai no ha estat tan crític assegurar-se que els contractes intel·ligents siguin segurs i exempts d’errors. Malauradament, continua sent una tasca difícil. Tot i que hi ha eines útils per a les proves automàtiques i la verificació formal, garantir que els contractes intel·ligents siguin correctes continua sent una tasca que requereix molt de temps. Per empitjorar les coses, cada eina sol tenir una forta corba d’aprenentatge i sovint no se sap si és adequat per a la feina.
És per això que hem desenvolupat Scribble: una eina de verificació del llenguatge de verificació i del temps d’execució. Tot i que es va crear inicialment per fer proves automàtiques de propietats durant les auditories, hem decidit compartir aquest projecte amb la comunitat!
Què és Scribble?
Quan parlem de Scribble, parlem de dues coses.
En primer lloc, Scribble és un llenguatge d’especificació per escriure propietats.
En segon lloc, Scribble és una eina de verificació en temps d’execució que utilitza el llenguatge d’especificació Scribble.
NOTA: Scribble no realitza cap verificació per si mateix. Això fa habilitar altres eines per provar i comprovar propietats.
El gargot és un idioma
Scribble defineix un llenguatge específic de domini per escriure propietats sobre contractes intel·ligents. Hem creat el llenguatge a sobre de la sintaxi de la solidesa, per facilitar-ne l’aprenentatge. Aquest llenguatge d’especificació us permet anotar un contracte intel·ligent de solidesa amb propietats.
NOTA: Una propietat és una afirmació lògica que espereu que sigui certa, per exemple. “Tots els cotxes són vermells”. Com a solidesa, sovint tindreu propietats com ara: “Només el propietari pot fer un canvi a X”. O “La funció sendToken () no hauria de canviar el saldo èter d’aquest contracte”.
Podeu utilitzar diversos tipus d’anotacions per a diferents tipus de propietats. Per exemple, invariants o postcondicions.
Aquest és un exemple d’una anotació Scribble:
Com podeu veure, les anotacions prenen la forma d’un comentari en línia situat sobre una definició de funció. Hem afegit l’anomenada clàusula if_succeed, que comprova si es manté una condició després d’executar la funció. En aquest cas, comprovem que el resultat de la funció sempre és diferent de zero.
Llegiu la documentació de Scribble
Hem basat el llenguatge Scribble en conceptes provats com ara postcondicions, invariants i lògica temporal. Però també examinem com podem introduir idees noves per adaptar-se millor als problemes específics del domini dels contractes intel·ligents.
Scribble és una eina
Scribble pot prendre un contracte anotat amb propietats i compilar-lo en un nou contracte. En aquest nou contracte, Scribble haurà afegit un codi Solidity que planteja una afirmació cada vegada que es infringeix una propietat. A aquest procés l’anomenem instrumentació.
L’addició de codi executable que comprova les propietats s’anomena verificació en temps d’execució i facilita el treball amb eines existents sense moltes adaptacions. Aquest és el cas perquè la majoria d’eines ja interpretaran el codi de solidesa i podran cercar immediatament violacions de propietats!
Perquè podeu utilitzar tècniques de proves automàtiques existents (com ara el nostre difusor) Harvey), podreu començar a provar després d’escriure una sola propietat. Creiem que això suposa un benefici important; Us beneficieu de les proves automàtiques immediatament, en lloc d’haver de dedicar molt de temps per endavant a obtenir una massa crítica d’anotacions. Una cosa que normalment és necessària amb els enfocaments de verificació tradicionals.
Podeu començar a provar i analitzar un contracte ràpidament i, fins i tot, decidir-vos més endavant per fer un esforç addicional per verificar completament un contracte intel·ligent!
Metes
Auditoria
Utilitzem Scribble durant les auditories per formular propietats. Mitjançant tècniques d’anàlisi automàtica, com ara la difusió i l’execució simbòlica, provarem i detectarem automàticament infraccions d’aquestes propietats.
Poseu-vos en contacte amb nosaltres per obtenir més informació sobre proves fuzzing i basades en propietats durant les auditories
Estàndard
Scribble té com a objectiu treballar amb diferents eines i tècniques; no només volem habilitar les proves basades en propietats, sinó també una verificació formal fàcil. L’avantatge d’utilitzar un llenguatge d’especificació universal únic és que només feu l’esforç d’escriure propietats una vegada, però obteniu l’avantatge d’utilitzar diverses eines.
Adopció
Amb Scribble esperem baixar la barrera o l’entrada per fer proves automàtiques i verificació formal. També volem reduir el temps d’inversió necessari per desenvolupar contractes intel·ligents correctes i segurs, donant lloc a un ecosistema més segur.
On es pot aconseguir?
Tenim Scribble de codi obert totalment, i ja està disponible a github.com/consensys/scribble.
NOTA: es tracta d’una versió beta, els aspectes de l’idioma canviaran i és possible que trobeu algun error.
Podeu instal·lar fàcilment Scribble amb npm:
Subscriu-te al nostre butlletí per obtenir les últimes novetats, solucions empresarials, recursos per a desenvolupadors i molt més sobre Ethereum. Adreça de correu electrònic Contingut exclusiuInforme
Informe DeFi d’Ethereum Q3 2020
Informe
Informe DeFi d’Ethereum Q2 2020
Informe
Ethereum 2.0 Staking Ecosystem Report
Guia
Guia completa de xarxes empresarials Blockchain
Seminari web
Com es pot crear un producte Blockchain amb èxit
Paper blanc