Ethereum Bug sender smarte kontrakter tilbage til tegnebrættet | DK.democraziakmzero.org

Ethereum Bug sender smarte kontrakter tilbage til tegnebrættet

Ethereum Bug sender smarte kontrakter tilbage til tegnebrættet

Bugs er en normal del af software, men på ethereum, kan de være entydigt farligt.

Det kan være den takeaway fra en ethereum programmeringssprog fejl fundet i denne uge, der påvirker en bestemt stil af intelligente kontrakt og på grund af, hvordan ethereum værker (det lover applikationer vil køre præcis som programmeret), de fleste af de berørte kontrakter kan ikke tages ned eller ændres.

Kort sagt, kan ejere af decentrale smarte kontrakter (dem, der ikke er i stand til at blive opgraderet med en ejer) ikke gøre noget for at rette fejlen.

To dage efter fejlen reportwas udstedte, udviklere udrullet en rettelse i Soliditet versionen 0.4.4. Men fejlen påvirker nogle af de adresser og typer af data i disse kontrakter, så de kan stadig ikke ændres med opgraderingen.

Den gode nyhed er, at fejlen ikke kan have påvirket mange smarte kontrakter.

Soliditet skaberen Christian Reitwiessner fortalte CoinDesk han løb en "semi-automatiske" analyse af hver ethereum program opført af en populær blok explorer og fandt, at af 12.000 kontrakter, blot fire var at udnytte.

Reitwiessner sagde ingen af ​​disse kontrakter har nogen ether i dem, da de sandsynligvis blev brugt til testformål. Men det er værd at bemærke, at ikke alle kontrakter er vist på Etherscan, den valgte blok explorer. (Der er mere end 200.000 kontrakter i alt, så det er svært at sige, hvor sikkert de resterende kontraktmidler er).

Samlet set ser det ud til at være en mindre fejl i forhold til The DAO, det mest bemærkelsesværdige eksempel på en smart kontrakt ikke fungerer efter hensigten. Men det genererede diskussion om hvad der kan ske i tilfælde af andre større bugs givet, at ikke alle smarte kontrakter vil have en central ejer, der kan opdatere dem, hvis noget går galt.

En observatør på sociale medier, for eksempel, arguedthat det kunne være en "muldvarpeskud på siden af ​​en stor bjerg" af lignende problemer.

En af de mere radikale ideer til at løse dette problem er at gøre ethereum kontrakter opgraderes i den kortsigtede, så ejerne har en måde at deaktivere eller ændre koden i tilfælde af et uheld. Men frygten er, at gøre det kunne betyde stripping væk, hvad der gør ethereum (eller andre decentrale platforme) unik.

National University of Singapore Ph.d.-studerende Loi Luu sagde, at det ville være bedre for ethereum hvis brugerne lærte at implementere sikre smarte kontrakter på den hårde måde, decentralt.

Luu sagde:

"Jeg personligt tror ikke det er en god idé. Det er dybest set imod alt smarte kontrakter er designet til. Hvis ethereum er en beta-netværk, lad smarte kontrakter mislykkes, lade folk lære deres erfaringer."

Men mens Luu kommentarer tyder på, at det ikke kan være en god idé at lave alle kontrakter opgraderes, er der nogle måder at forberede eventuelle fremtidige fejl, især mens ethereum er stadig en ny teknologi.

Fastsættelse af problemet

Programmer skrevet i ethereum videregående niveau, der er nemme at læse sprog, såsom Soliditet eller Serpent, er samlet i byte-niveau-kode, før de tilsættes til blockchain. Problemet her var med den teknologi gør kompilering.

For at løse problemet, Reitweissner recommendedthat udviklere gøre to ting. En, hvis udarbejdelse af en ny kontrakt, udviklere nødt til at opgradere til den nye version af soliditet for at undgå fejl.

Den anden måde at undgå problemet er mere nysgerrig eksempel, da det kræver opgradering eller defunding smarte kontrakter, der allerede er indsat - noget du måske ikke forvente er muligt med ethereum.

Reitwiessner nærmere ind på dette råd, der forklarer, at der er to typer af kontrakter: centralt styret og decentrale, hvor ingen har "særlige privilegier".

Den første type giver formentlig nogle opgradering mekanisme eller en måde at fjerne midler fra kontrakten.

Den anden type er vanskeligere. På den anden side, da trustless ethereum smarte kontrakter ikke kan tages ned eller ændres, når de er indsat, er der ikke meget at udviklere kan gøre, hvis de ikke brugte en centraliseret Smart kontrakt fra begyndelsen.

Reitwiessner sagde dog, at udviklere kan beskytte mod fremtidige problemer (som dem med Soliditet) ved at gøre et par ting.

"Min anbefaling til sådanne kontrakter ville være at enten holde dem kortvarig, så potentielle dårlige effekter er små eller gøre en ordentlig formel analyse af bytekode af kontrakten. Vi er ved at udvikle værktøjer til at hjælpe med at gøre det," sagde han.

Opgraderbare kontrakter

Der er nogle måder at komme uden om dette, dog.

Ethereum Foundation eksterne forbindelser føre Hudson Jameson beskrevet en måde at opgradere smarte kontrakter, der potentielt kan decentrale begrundelse, at tilføje en måde at opgradere levende kode er en nødvendighed.

"Den generelle følelse fra vores udviklere er, at på dette tidlige tidspunkt er det vigtigt at have fail-pengeskabe i din kode for at sikkert deaktivere eller opgradere kontrakter, der holder en masse værdi," sagde han.

Jameson beskrevet nogle mulige smarte kontrakt "fail-pengeskabe", hvor ejerne er i stand til at opgradere deres kontrakter, selv efter de er indsat til ethereum, eller hvor smarte kontrakter kan registrere, når noget muggent der foregår.

Han sagde, at de ikke nødvendigvis behøver at være centraliseret, eller under kontrol af én ejer. For eksempel kunne du have en smart kontrakt, der sætter en grænse for, hvor meget af et aktiv kan trækkes tilbage på et tidspunkt.

"Så hvis en hacker forsøger at dræne kontrakten af ​​midler eller et aktiv, kan det udløse en decentral svar som at låse dem ud og anmelde andre mennesker, der bruger den kontrakt, de kan have behov for at trække deres midler," sagde han.

Han beskrev et par andre metoder, herunder hacking afsløring, shut-off switche og multi-signatur transaktioner, hvor mere end én person har brug for at underskrive på en transaktion, før æter kan undværes.

Ser frem til

Smart kontrakter på ethereum classic (den gruppe, der udskilt fra ethereum grund af en ideologisk uenighed) er også påvirket af fejlen, siden sin blockchain bygger på det samme sæt af værktøj.

Men ifølge sit forspring organisator Arvicco er udviklere udforske en anderledes langsigtet måde at udvikle et programmeringssprog, der er mere modstandsdygtige over for fejl.

"En af de mulige måder er at flytte smarte kontrakt sproglige udvikling fra objektet / proceduremæssig til funktionel paradigme," sagde han.

Uanset eventuel rettelse, diskussionen indebærer, at ethereum udviklere ikke skal forvente deres smarte kontrakter til at arbejde uden potentielt farlige konsekvenser helt endnu, som måske eller måske ikke være helt klart for dem, der allerede indsat kode på netværket.

Som for Soliditet i særdeleshed, kunne en anden ustoppelig bug potentielt påvirke andre smarte kontrakter i fremtiden.

Reitwiessner bemærkede, at det altid er muligt for en compiler til at indføre en fejl, og det er muligt, at Soliditet eller Serpent (ethereum øvrige smarte kontrakt sprog) har andre uopdagede fejl.

Bemærkede dog, han, at i over to års udvikling, dette var den første alvorlige fejl fundet i smart kontrakt sprog.

Relaterade nyheter


Post Ethereum

Et af Ethereums tidligste smarte kontraktsprog er på vej til pensionering

Post Ethereum

Regulerende Ethereum? EU-Parlamentet vejer Blockchains store problemer

Post Ethereum

Bitcoin og loven om bevarelse af energi

Post Ethereum

Vil DAO Blive Ethereums Mt Gox?

Post Ethereum

Deloitte åbner Ethereum Identity Platform til Blockchain Developers

Post Ethereum

Crypto 2.0 i 2018: Drejer Bitcoin Theory Into Big Business

Post Ethereum

Ingenmandsland? Ether Prices Approach $ 350, men kamp for at skabe momentum

Post Ethereum

Analytikere forudsiger $ 100 pris for Ethereums Ether Token

Post Ethereum

7 Cool Decentralized Apps er bygget på Ethereum

Post Ethereum

Scaling Lightning? Hvordan Revive kunne øge Bitcoins fedeste skaleringsplan

Post Ethereum

Bitcoin Exchange Bitfinex tilføjer Ether Trading i takt med stigende efterspørgsel

Post Ethereum

Bitcoin var ikke den eneste digitale valuta for at se eftervalgtest