Predstavljamo Scribble s strani ConsenSys Diligence

blog 1NewsDevelopersEnterpriseBlockchain ExplainedDogodki in konferencePressGlasila

Naročite se na naše novice.

Email naslov

Spoštujemo vašo zasebnost

DomovBlogNovice

Predstavljamo Scribble s strani ConsenSys Diligence

avtor ConsenSys 8. december 2020 Objavljeno 8. decembra 2020

Škrabanje

Zagotavljanje, da so pametne pogodbe varne in brez napak, še nikoli ni bilo bolj kritično. Na žalost ostaja težka naloga. Čeprav obstajajo koristna orodja za samodejno testiranje in formalno preverjanje, je zagotavljanje pravilnosti pametnih pogodb še vedno dolgotrajna in zahtevna naloga. Da je stvar še hujša, ima vsako orodje pogosto strmo učno krivuljo in pogosto je negotovo, ali je sploh primerno za to službo.

Zato smo razvili Scribble: jezik za preverjanje in orodje za preverjanje med izvajanjem. Čeprav je bil sprva ustvarjen za samodejno preskušanje nepremičnin med revizijami, smo se odločili, da ta projekt delimo s skupnostjo!

Kaj je Scribble?

Ko govorimo o Scribble, govorimo o dveh stvareh.

Prvič, Scribble je jezik specifikacije za zapisovanje lastnosti.

Drugič, Scribble je orodje za preverjanje izvajalnega okolja, ki uporablja jezik specifikacije Scribble.

OPOMBA: Scribble sam ne opravi nobenega preverjanja. To naredi omogoči druga orodja za preizkušanje in preverjanje lastnosti.

Škrabanje je jezik

Scribble definira jezik, specifičen za domeno, za pisanje lastnosti o pametnih pogodbah. Jezik smo zgradili nad sintakso solidity, da ga je lažje učiti. Ta jezik specifikacije vam omogoča, da trdne pametne pogodbe označite z lastnostmi.

OPOMBA: Lastnost je logična izjava, za katero pričakujete, da bo resnična, npr. “Vsi avtomobili so rdeči”. Kot trdnost boste pogosto imeli lastnosti, kot so: “Samo lastnik lahko spremeni X”. Ali “Funkcija sendToken (), ne sme spremeniti eterskega ravnotežja te pogodbe”.

Za različne vrste lastnosti lahko uporabite več vrst pripisov. Na primer, invariante ali post-pogoji.

To je primer pripisa Scribble:

Posnetek zaslona 2020 12. 08. ob 12. 06. 15

Kot lahko vidite, imajo pripisi obliko vstavljenega komentarja nad definicijo funkcije. Dodali smo tako imenovano klavzulo if_succeeds, ki preverja, ali stanje velja po izvedbi funkcije. V tem primeru preverimo, ali rezultat funkcije vedno ni nič.

Preberite pisarniško dokumentacijo

Jezik Scribble smo utemeljili na preizkušenih konceptih, kot so post-pogoji, invariante in časovna logika. Preučujemo pa tudi, kako lahko predstavimo nove ideje, ki bodo bolje ustrezale specifičnim problemom pametnih pogodb.

Scribble je orodje

Scribble lahko sprejme pogodbo, označeno z lastnostmi, in jo sestavi v novo pogodbo. V tej novi pogodbi bo Scribble dodal kodo Solidity, ki sproži trditev, kadar je lastnost kršena. Temu postopku pravimo instrumentacija.

Dodajanje izvršljive kode, ki preverja lastnosti, se imenuje preverjanje izvajalnega okolja in olajša delo z obstoječimi orodji brez veliko prilagoditev. To velja, ker bo večina orodij že razlagala solidnostno kodo in bo lahko takoj iskala kršitve lastnine!

Ker lahko uporabite obstoječe tehnike samodejnega testiranja (na primer naš fuzzer Harvey), boste lahko začeli s preskušanjem po pisanju samo ene lastnosti. Menimo, da je to pomembna korist; Takoj imate koristi od samodejnega testiranja, namesto da bi morali vnaprej porabiti veliko časa, da pridobite kritično maso pripisov. Nekaj, kar je običajno potrebno pri tradicionalnih pristopih preverjanja.

Hitro lahko začnete s testiranjem in analizo pogodbe, kasneje pa se celo odločite, da si boste dodatno prizadevali za popolno preverjanje pametne pogodbe!

Cilji

Revizija

Scribble uporabljamo med revizijami za oblikovanje lastnosti. Z uporabo samodejnih analiznih tehnik, kot sta mešanje in simbolična izvedba, bomo samodejno preizkusili in ugotovili kršitve teh lastnosti.

Pišite nam, če želite izvedeti več o nejasnostih in preskusih na podlagi lastnosti med revizijami

Standardno

Scribble želi delati z različnimi orodji in tehnikami; ne želimo samo omogočiti testiranja na podlagi lastnosti, ampak tudi enostavno formalno preverjanje. Prednost uporabe enega samega jezika univerzalne specifikacije je v tem, da se potrudite samo enkrat zapisati lastnosti, vendar izkoristite prednosti uporabe več orodij.

Posvojitev

S Scribble upamo, da bomo spustili pregrado ali vstop za samodejno testiranje in formalno preverjanje. Prav tako želimo zmanjšati čas, potreben za razvoj pravilnih in varnih pametnih pogodb, kar bo imelo za posledico varnejši ekosistem.

Kje ga lahko dobite?

Imamo popolnoma odprto kodo Scribble, zdaj pa je na voljo na naslovu github.com/consensys/scribble.

OPOMBA: To je različica beta, različice jezika se bodo spremenile in morda boste naleteli na nekatere napake.

Scribble lahko enostavno namestite z npm:

Posnetek zaslona 2020 12 08 ob 12 06 35 Namestite Scribble

Na naše novice se naročite na najnovejše novice o Ethereumu, rešitve za podjetja, vire za razvijalce in še več.Poročilo DeFi za Ethereum Q3 2020Prijavi

Poročilo DeFi za Ethereum Q3 2020

Poročilo DeFi o Ethereum Q2 2020Prijavi

Poročilo DeFi o Ethereum Q2 2020

Poročilo Ethereum 2 0 Staking EcosystemPrijavi

Eterično poročilo Ethereum 2.0

Popoln vodnik za poslovna omrežja BlockchainVodnik

Popoln vodnik za poslovna omrežja Blockchain

Kako zgraditi uspešen izdelek BlockchainSpletni seminar

Kako zgraditi uspešen izdelek Blockchain

Centralne banke in prihodnost denarjaBel papir

Centralne banke in prihodnost denarja

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