NewsDevelopersEnterpriseBlockchain ExplainedTapahtumat ja konferenssitPainaUutiskirjeet
Contents
- 1 Esittelyssä ConsenSys Diligence -sarjakuvaus
tilaa uutiskirjeemme.
Sähköpostiosoite
Kunnioitamme yksityisyyttäsi
EtusivuBlogiUutiset
Esittelyssä ConsenSys Diligence -sarjakuvaus
mennessä ConsenSys 8. joulukuuta 2020 Lähetetty 8. joulukuuta 2020
Älykkäiden sopimusten turvallisuuden ja virheettömyyden varmistaminen ei ole koskaan ollut kriittisempää. Valitettavasti se on edelleen vaikea tehtävä. Vaikka on olemassa hyödyllisiä työkaluja automaattiseen testaukseen ja muodolliseen todentamiseen, älykkäiden sopimusten oikeellisuuden varmistaminen on edelleen aikaa vievä ja haastava tehtävä. Asiat pahentuvat, että jokaisella työkalulla on usein jyrkkä oppimiskäyrä, ja usein on epävarmaa, sopiiko se juuri tähän työhön.
Siksi olemme kehittäneet Scribble: vahvistuskielen ja ajonaikaisen vahvistustyökalun. Alun perin luotiin automaattista omaisuuden testausta varten auditointien aikana, mutta olemme päättäneet jakaa tämän projektin yhteisön kanssa!
Mikä on Scribble?
Kun puhumme Scribblestä, puhumme kahdesta asiasta.
Ensinnäkin, Scribble on määrityskieli ominaisuuksien kirjoittamiseen.
Toiseksi Scribble on ajonaikaisen tarkistuksen työkalu, joka käyttää Scribble-määrityskieliä.
HUOMAUTUS: Scribble ei suorita mitään vahvistusta itsestään. Se tekee antaa muiden työkalujen testata ja tarkistaa ominaisuuksia.
Scribble on kieli
Scribble määrittelee toimialakohtaisen kielen älykästä sopimusta koskevien ominaisuuksien kirjoittamiseen. Olemme rakentaneet kielen vakaussyntaksin päälle, jotta se olisi helppo oppia. Tämän määrityskielen avulla voit merkitä vankan älykkään sopimuksen ominaisuuksiin.
HUOMAUTUS: Ominaisuus on looginen lause, jonka oletat olevan totta, esim. “Kaikki autot ovat punaisia”. Vakaana sinulla on usein ominaisuuksia, kuten: “Vain omistaja voi muuttaa X: n”. Tai “Funktion sendToken (), ei pitäisi muuttaa tämän sopimuksen eetteritasapainoa”.
Voit käyttää useita merkintätyyppejä erityyppisiin ominaisuuksiin. Esimerkiksi invariants tai post-olosuhteet.
Tämä on esimerkki Scribble-merkinnästä:
Kuten näette, merkinnät ovat toimintomääritelmän yläpuolelle sijoitetun kommentin muodossa. Olemme lisänneet ns. If_succeeds -lausekkeen, joka tarkistaa, täyttyykö ehto toiminnon suorittamisen jälkeen. Tässä tapauksessa tarkistamme, että funktion tulos ei ole aina nolla.
Olemme perustaneet Scribble-kielen todistettuihin käsitteisiin, kuten jälkeiset olosuhteet, muuttumattomat ja ajallinen logiikka. Mutta katsomme myös, kuinka voimme esitellä uusia ideoita, jotka sopivat paremmin älykkäiden sopimusten toimialakohtaisiin ongelmiin.
Scribble on työkalu
Scribble voi tehdä ominaisuuksilla merkityn sopimuksen ja koota sen uudeksi sopimukseksi. Tässä uudessa sopimuksessa Scribble on lisännyt Solidity-koodin, joka tuo esiin väitteen aina, kun omaisuutta loukataan. Kutsumme tätä prosessia instrumentoinniksi.
Ominaisuuksia tarkistavan suoritettavan koodin lisäämistä kutsutaan ajonaikaiseksi tarkistukseksi, ja sen avulla on helppo työskennellä olemassa olevien työkalujen kanssa ilman monia mukautuksia. Näin on, koska useimmat työkalut tulkitsevat jo vakavaraisuuskoodin ja pystyvät etsimään omaisuusrikkomuksia heti!
Koska voit käyttää olemassa olevia automaattisia testaustekniikoita (kuten fuzzer Harvey), voit aloittaa testaamisen kirjoittamalla vain yhden omaisuuden. Uskomme, että tämä on merkittävä etu; Hyödyt automaattisesta testauksesta heti sen sijaan, että joudut viettämään paljon aikaa etukäteen saadaksesi kriittisen massan merkintöjä. Jotain, mikä on yleensä välttämätöntä perinteisillä todentamismenetelmillä.
Voit aloittaa sopimuksen testaamisen ja analysoinnin nopeasti ja jopa myöhemmin päättää lisätä vaivaa älykkään sopimuksen täydelliseen vahvistamiseen!
Tavoitteet
Tarkastaa
Käytämme Scribblea auditointien aikana ominaisuuksien muotoiluun. Käyttämällä automaattisia analyysitekniikoita, kuten fuusiointia ja symbolista suoritusta, testaamme ja löydämme automaattisesti rikkomuksia näille ominaisuuksille.
Ota yhteyttä saadaksesi lisätietoja fuusioinnista ja omaisuusperusteisesta testauksesta auditointien aikana
Vakio
Scribble pyrkii työskentelemään erilaisilla työkaluilla ja tekniikoilla; emme halua ottaa käyttöön vain omaisuuspohjaista testausta, vaan myös helppoa muodollista vahvistusta. Yhden yleisen määrityskielen käytön etuna on, että yrität kirjoittaa ominaisuuksia vain kerran, mutta voit hyötyä useiden työkalujen käytöstä.
Hyväksyminen
Scribblen avulla toivomme laskevan esteen tai merkinnän automaattista testausta ja muodollista tarkistusta varten. Haluamme myös lyhentää oikeaan ja turvalliseen älykkääseen sopimukseen tarvittavaa investointiaikaa, mikä johtaa turvallisempaan ekosysteemiin.
Mistä sen voi saada?
Olemme kirjoittaneet kokonaan avoimen lähdekoodin Scribblen, ja se on saatavilla nyt osoitteessa github.com/consensys/scribble.
HUOMAUTUS: Tämä on beetaversio, kielen osa muuttuu ja saatat kohdata joitain virheitä.
Voit asentaa Scribblen helposti npm: llä:
Tilaa uutiskirjeemme, jossa on uusimmat Ethereum-uutiset, yritysratkaisut, kehittäjien resurssit ja paljon muuta.Raportti
Ethereum Q3 2020 DeFi -raportti
Raportti
Ethereum Q2 2020 DeFi -raportti
Raportti
Ethereum 2.0 Staking Ecosystem -raportti
Opas
Täydellinen opas Blockchain-yritysverkoihin
Webseminaari
Kuinka rakentaa onnistunut blockchain-tuote
Valkoinen paperi