Smart Contract Design in Times of Congested Networks

Updated on: August 12th, 2020
This content has been Fact-Checked.
Smart Contract Design in Times of Congested Networks

Laten we in dit artikel begrijpen wat Ethereum-gas betekent en waarom het onlangs is getorenteerd. Daarna zullen we zien hoe andere slimme contractplatforms zoals RSK en EOS omgaan met gasprijzen als het gaat om Smart Contract Design.

Ethereum heeft een gasprobleem. Hoe grappig het ook klinkt, we kunnen u verzekeren dat ontwikkelaars alles doen behalve lachen om die verklaring.

De groeiende vraag naar DeFi (gedecentraliseerde financiering) toepassingen heeft verhoogde congestie op de belangrijkste Ethereum-blockchain. Dit heeft op zijn beurt geschoten de gasprijzen op de hoofdketen. Volgens Bitinfocharts zijn de mediane transactiekosten sinds begin 2018 opgeschoten naar het hoogste niveau.

Slim contract en Ethereum Virtual Machine (EVM)

Slimme contracten zijn geautomatiseerde contracten. Ze voeren zelf uit met specifieke instructies geschreven op de code, die worden uitgevoerd wanneer bepaalde voorwaarden worden gesteld.

Meer informatie over slimme contracten vindt u hier in onze diepgaande gids.

Slimme contracten zijn hoe dingen gedaan worden op het Ethereum-ecosysteem. Wanneer iemand een bepaalde taak in Ethereum wil laten uitvoeren, initiëren ze een slim contract met een of meer mensen.

Slimme contracten zijn een reeks instructies geschreven met behulp van de programmeertaal „solidity”, die werkt op basis van de IFTTT-logica, oftewel de IF-THIS-THEN-THA-logica. Kortom, als de eerste set instructies is voltooid, voer dan de volgende functie uit en daarna de volgende en blijf herhalen totdat u het einde van het contract hebt bereikt.

Dit is het kernprincipe achter slimme contracten. Dit is wat ons in staat stelt om een bindende overeenkomst tussen meerdere partijen onder toezicht van code, in plaats van een derde, zoals een advocaat.

Wat is de Ethereum Virtual Machine?

Virtuele machines van Ethereum zijn ecosystemen waarin u slimme contracten uitvoert. Een goede slimme contractfunctionaliteit vereist drie belangrijke dingen:

Deterministisch.

Termineerbaar.

Geïsoleerd

Mogelijkheid #1: Deterministisch

Een programma is deterministisch als het elke keer dezelfde uitvoer geeft aan een gegeven invoer. Bijv. Als 3+1 = 4 dan is 3+1 ALTIJD 4 (uitgaande van dezelfde basis). Dus als een programma dezelfde uitvoer geeft aan dezelfde set ingangen in verschillende computers, wordt het deterministisch genoemd.

Mogelijkheid #2: Terminable

In wiskundige logica, hebben we een fout genaamd „stoppen probleem.” In principe stelt het dat er een onvermogen is om te weten of een bepaald programma zijn functie in een tijdslimiet kan uitvoeren. Dit is natuurlijk een probleem met slimme contracten, omdat contracten per definitie in staat moeten zijn om binnen een bepaalde termijn te beëindigen. Slimme contracten hebben een omgeving nodig waarin ze een stopmechanisme kunnen integreren.

Mogelijkheid #3: geïsoleerd

In een blockchain kan iedereen en iedereen een slim contract uploaden. Hierdoor kunnen de contracten echter, bewust en onbewust, virussen en bugs bevatten. Als het contract niet geïsoleerd is, kan dit het hele systeem belemmeren. Daarom is het van cruciaal belang dat een contract geïsoleerd wordt gehouden in een zandbak om het hele ecosysteem te redden van eventuele nadelige effecten.

Ethereum biedt al deze functionaliteiten via de EVM. Het is een eenvoudige maar krachtige Turing Complete 256-bit virtuele machine.

Wat is Ethereum Gas?

Gas is een eenheid die de hoeveelheid computationele inspanning meet die nodig is om bepaalde bewerkingen uit te voeren. Alle slimme contracten die in de EVM worden uitgevoerd, zijn gecodeerd met behulp van soliditeit (Ethereum is van plan om in de toekomst door te gaan naar Viper van Solidity.) Elke regel code in soliditeit vereist een bepaalde hoeveelheid gas om berekend te worden.

De onderstaande afbeelding is genomen van de Ethereum Yellowpage en kan worden gebruikt om een ruw idee te krijgen van hoeveel specifieke instructies gas-wise kosten.

Afbeelding met dank aan: Ethereum geel papier

Om beter te begrijpen hoe gas werkt in Ethereum, laten we een analogie gebruiken. Stel dat je op een roadtrip gaat. Voordat u dit doet, gaat u door de volgende stappen:

Je gaat naar het benzinestation en geeft aan hoeveel gas je in je auto wilt vullen.

Je krijgt dat gas gevuld in je auto.

Je betaalt het benzinestation het bedrag dat je ze schuldig bent voor de benzine.

Laten we parallellen tekenen met Ethereum.

De auto is de operatie die u wilt uitvoeren, zoals een gas of een slim contract.

Het gas is goed... gas.

Het benzinestation is uw mijnwerker.

Het geld dat je ze betaald hebt, is de mijnwerker kosten.

Alle bewerkingen die gebruikers in ethereum willen uitvoeren, moeten gas leveren voor het volgende:

Om zijn gegevens te dekken aka intrinsieke gas.

Om de hele berekening te dekken.

Nu we de kale basis hebben behandeld, stel je misschien de volgende vraag.

Waarom hebben we dit gassysteem?

Het antwoord is simpel... stimulering.

Zoals elk proof-of-of-work peer-to-peer systeem, Ethereum is sterk afhankelijk van de hashrate van hun mijnwerkers. Meer de mijnwerkers, meer de hashrate, veiliger, en snel het systeem.

Om meer mijnwerkers in het systeem aan te trekken, moeten ze het systeem zo winstgevend en aantrekkelijk mogelijk maken voor de mijnwerkers. In Ethereum zijn er twee manieren waarop mijnwerkers geld kunnen verdienen:

Door blokken te mijnen en blokbeloningen te krijgen.

Door steeds tijdelijke dictators van hun gedolven blokken.

Laten we het tweede punt verkennen.

De mijnwerkers zijn verantwoordelijk voor het plaatsen van transacties in hun blokken. Om dit te doen, moeten ze hun rekenkracht gebruiken om slimme contracten te valideren. Het gassysteem stelt hen in staat om hiervoor een specifieke vergoeding in rekening te brengen.

Deze vergoeding staat bekend als de mijnwerker vergoeding en het helpt hen voldoende te stimuleren om actief deel te nemen aan het ecosysteem.

Dus, hoeveel kosten kunnen ze in rekening brengen? Voordat we dat kunnen berekenen, laten we begrijpen hoe we gas meten.

De kleinste eenheid van gasmeting is wei. Dus als we tijdens een operatie 1 gaseenheid uitgeven, noemen we het 1 wei.

De meeteenheden nemen als volgt toe:

Beeld tegoed: Steemit

Voordat we verder gaan, is het belangrijk om het concept van Gas Limit te kennen.

Wat is Gas Limit?

Om een bewerking uit te voeren in Ethereum, moet de operatiegenerator (d.w.z. de persoon die de transactie start of de slimme contractmaker) een gaslimiet opgeven voordat deze wordt ingediend bij de mijnwerkers. Als er een gaslimiet is gedefinieerd, dan zullen de mijnwerkers pas beginnen met het uitvoeren van de operatie.

Bij het indienen van een gaslimiet moeten de volgende punten in overweging worden genomen:

Verschillende activiteiten zullen verschillende gaskosten hebben (zoals eerder is aangetoond).

De mijnwerkers stoppen met uitvoeren zodra het gas op is.

Als er nog gas over is, wordt het onmiddellijk terugbetaald aan de generator.

Laten we dit in werking zien in een hypothetisch scenario.

Stel dat we twee nummers toevoegen en daarvoor moet het contract de volgende acties uitvoeren:

Het opslaan van 10 in een variabele. Laten we zeggen dat deze operatie 45 wei-gas kost.

Twee variabelen toevoegen, laten we zeggen dat dit 10 wei-gas kost.

Opslaan van het resultaat dat weer 45 wei-gas kost.

Stel dat de gaslimiet 120 wei is.

Het totale gas dat door de mijnwerker wordt gebruikt is (45+10+45) 100 wei.

De vergoedingen die aan hen verschuldigd zijn, uitgaande van 1 wei kosten 0,02 micro ETH is (100*0,02 micro ETH) = 0,000002 ETH.

Hoeveel gas is er nog over?

120 — 100 = 20 wei.

De 20 wei wordt teruggestort naar de generator.

Dus, na dat te hebben gespecificeerd, zijn er twee scenario's die men moet overwegen:

De Gas Limit is te laag.

De Gas Limit is te hoog.

Scenario #1: De gaslimiet is te laag

Als een operatie geen gas meer heeft, wordt deze teruggekeerd naar de oorspronkelijke staat alsof er niets echt is gebeurd, maar de operatiegenerator moet de mijnwerkers nog steeds de vergoeding betalen voor hun computationele kosten en de operatie wordt toegevoegd aan de blockchain (zelfs als deze niet is uitgevoerd).

Teruggaan naar onze road trip analogie, als je niet genoeg benzine in je auto hebt gevuld, dan zul je niet in staat zijn om je bestemming te bereiken, maar zelfs dan heb je het benzinestation het geld betaald voor de brandstof recht?

Laten we eens kijken hoe dit werkt in ons hypothetische toevoeging slim contract. De stap was:

Het opslaan van 10 in een variabele. Laten we zeggen dat deze operatie 45 wei-gas kost.

Twee variabelen toevoegen, laten we zeggen dat dit 10 wei-gas kost.

Opslaan van het resultaat dat weer 45 wei-gas kost.

Deze keer is de gaslimiet echter 90 wei.

We weten dat het gas dat nodig is voor het uitvoeren van het contract 100 wei is, maar we hebben slechts 90 wel-limiet.

In dit scenario zal de mijnwerker 90 wei-waarde van de berekening doen en vervolgens de generatorkosten voor de 90 wei in rekening brengen, die blijkt te zijn (90 * 0,02 micro ETH) 0,000018 ETH.

Ook keert het contract terug naar de oorspronkelijke staat en wordt het toegevoegd aan de blockchain.

Scenario #2: De gaslimiet is te hoog

Wat als we de gasgrens te hoog stellen?

Dat zou logisch zijn om goed te doen? Na alles wat er overblijft wordt terugbetaald aan de generator toch?

Dat klinkt goed op papier, maar het werkt in werkelijkheid niet zo goed. Je moet niet vergeten dat elk blok op Ethereum een algemene gaslimiet heeft. Mijnwerkers kunnen alleen bewerkingen toevoegen die kleiner zijn dan of gelijk zijn aan de blokgaslimiet.

Afbeelding hoffelijkheid: Hackernoon

Stel dat er sprake is van een transactie A met een gaslimiet van 42.000 en twee transacties B en C met normale limieten van 21.000.

Wat is logischer voor een mijnwerker om in hun blok te zetten?

Zullen ze in transactie A zetten en een enorme hoeveelheid gas terugbetalen?

Of zullen ze transacties B en C zetten en weinig tot niets terugbetalen?

Het tweede punt is logischer voor hen economisch toch?

Dit is precies de reden waarom het hebben van een opgeblazen gaslimiet niet de verstandige manier is om te gaan.

Hoog en laag gas versus hoge en lage kosten

Het moet u tot nu toe duidelijk zijn dat gas en ether niet hetzelfde zijn. Gas is de hoeveelheid rekenkracht die nodig is, terwijl ether de prijs is aka de KOESS die men moet betalen voor dat gas.

Nu, met de kennis van alles wat we tot nu toe hebben verkregen, laten we bepaalde gas- en vergoedingsscenario's doorlopen.

Als een operatie LOW gas heeft, dan halen de mijnwerkers het niet eens op omdat het niet genoeg gas heeft om de berekening te voltooien.

Als een operatie lage kosten heeft, dan heeft het misschien net genoeg gas om het te dekken, maar toch zullen de mijnwerkers niet chomping op de bits om het op te halen omdat een operatie met lage kosten economisch niet haalbaar is voor hen.

Als een bewerking HOOG gas heeft, betekent dit dat de operatie opgeblazen is met een hoge gaslimiet en dus zullen de mijnwerkers het niet oppikken.

Als een operatie hoge kosten heeft, weten de mijnwerkers dat ze veel geld zullen verdienen en het meteen ophalen.

De aanbevolen gasprijzen voor verschillende transactiekosten, volgens ethgasstation zijn:

Stijgende prijzen van Ethereum Gas

De Ethereum-blockchain heeft de laatste tijd een verhoogd gebruik gezien. Dit komt door de toename van het gebruik van meer gecompliceerde slimme contracten.

Per Ethereum tankstation, stablecoins zoals USDT en gedecentraliseerde uitwisselingen zoals Uniswap zijn de meer gas hongerige slimme contracten in de ruimte. Dit toegenomen gebruik vraagt gebruikers om hogere kosten te betalen om hun transacties sneller te verwerken. Als zodanig, wanneer er veel activiteit is, kunnen de tarieven snel omhoog spiraalvormig worden.

Om te begrijpen hoe drastisch de situatie is, overweeg dit. Volgens Coin Metrics zijn de gemiddelde kosten per transactie op een gegeven moment gestegen tot een 7-daagse gemiddelde van ongeveer 91 cent, van ongeveer 8 cent aan het begin van 2020. Connor Abendschein van Digital Assets Data merkt op:

„Vanaf nu, hoge gaskosten houden kleinere spelers van de mogelijkheid om deel te nemen aan een aantal van de meest interessante protocollen van DeFi, zoals Synthetix.”

Dit is een absolute schande, want Ethereum en DeFi is om een open en gemakkelijk toegankelijk wereldwijd financieel systeem te bouwen.

Het ergste is dat dit probleem alleen maar zal verslechteren als meer gecompliceerde Defi protocollen en gebruikers het ecosysteem betreden.

Dus, hoe gaan de concurrenten van Ethereum om met het gasprobleem? Laten we een kijkje nemen..

Slim contractontwerp in EOS: Eigendomsmodelmodel

Het Ethereum-gassysteem kan worden gezien als een huurmodel. Ethereum is een wereldwijde supercomputer, waarin u resources (gas) huurt om uw toepassing te maken en uit te voeren.

EOS maakt daarentegen gebruik van een eigendomsmodel. In plaats van een gedecentraliseerde supercomputer te zijn, is EOS van plan om een gedecentraliseerd besturingssysteem te worden dat Dapp-ontwikkelaars kunnen gebruiken om verschillende Dapps te maken en te coderen. De EOS-tokens fungeren als een tolcabine en houden ze geeft u toegang tot verschillende bronnen zoals bandbreedte, berekening en RAM.

Omdat deze bronnen schaars zijn, wil EOS niet dat je hun tokens te lang vasthoudt. Het bedrijf achter EOS, block.one, heeft expliciet vermeld in de platformgrondwet dat EOS-leden die hun tokens gedurende drie jaar niet gebruiken hun account zouden beëindigen.

Door EOS-tokens in te zetten en te vergrendelen, krijgt u in ruil daarvoor een equivalente hoeveelheid bronnen in netwerk- en CPU-bandbreedte. Echter, omdat RAM een schaarse bron is, krijg je het niet automatisch door staking. Dus, om ze te verkrijgen, moet u het rechtstreeks kopen van de RAM-marktplaats.

Elke keer dat iemand RAM koopt of verkoopt, wordt een vergoeding van 0,5% toegepast op zowel de kant van de koper als de verkoper (1% in totaal). Dit geeft gebruikers een economische stimulans om hun RAM te verkopen en ontmoedigt speculatieve marketing en inflatie omdat de verzamelde vergoedingen onmiddellijk worden verbrand (verwijderd uit het ecosysteem).

Deze interne RAM marktplaats zal ervoor zorgen dat er een constante beschikbaarheid van RAM en zal eventuele toekomstige voorspelde tekorten te compenseren. U kunt RAM kopen op basis van de prijs waarop het systeem het instelt, op basis van de momenteel beschikbare RAM-voorraad.

Door deze bronnen te kopen en te gebruiken, kunnen ontwikkelaars vervolgens gedecentraliseerde toepassingen maken.

EOS-ontwikkelingskosten

In tegenstelling tot Ethereum, hoeft u geen gasprijzen te betalen in EOS. U moet uw EOS-tokens inzetten om bandbreedte, CPU en opslag te ontvangen voor uw slimme contract. Samen met dit alles heb je nog steeds RAM nodig. Omdat RAM zo'n zeldzame bron is, moet je het kopen van een interne RAM-marktplaats. Volgens de EOS resourceplanner kost RAM $0,154 USD per KiB

Dus, met al die informatie in het achterhoofd, laten we eens kijken hoeveel EOS je moet inzetten om een applicatie uit te voeren. Laten we aannemen dat we een aanvraag gaan maken voor 1000 gebruikers. U moet rekening houden met de volgende statistieken:

Betaal voor elke gebruikersaccount.

U moet betalen voor hun opslag

U moet ook rekening houden met de netwerkbandbreedte en CPU-bandbreedte die u nodig hebt.

RSK - De brug tussen Bitcoin en Ethereum - Smart Contract Design

Rootstock (RSK) is een slim contractplatform dat is verbonden met de Bitcoin blockchain via sidechain-technologie. Rootstock werd geboren om compatibel te zijn met Ethereum's applicaties (het Web3/EVM/Solidity model) en bitcoin als de onderliggende cryptocurrency. Het idee achter de oprichting van RSK was om de Bitcoin blockchain slimme contractfunctionaliteiten te geven. In de kern is Rootstock een combinatie van:

Een Turing-complete resource-accounted deterministische virtuele machine (voor slimme contracten) compatibel met Ethereum's EVM.

Een twee-weg gepegged Bitcoin sidechain (voor BTC luidende handel) gebaseerd op een sterke federatie

Een SHA256D fuse-mining consensusprotocol (voor consensusbeveiliging vertrouwend op Bitcoin's mijnwerkers) met een blokinterval van 30 seconden. (voor snelle betalingen).

RSK stelt u in staat om tokenbruggen te bouwen die rechtstreeks verbinding maken met de Ethereum-blockchain. Dit stelt de contractmaker in staat om de voordelen van beide blockchains te benutten, maar het maakt ook de creatie van een bloeiend, interoperabel ecosysteem tussen de twee mogelijk.

Dus, hoe vertaalt dit zich naar gasprijzen? RSK is historisch gezien goedkoper geweest dan Ethereum als het gaat om gaskosten.

De blauwe lijn hierboven is de gasprijs van Ethereum, terwijl de groene lijn onderaan de gasprijs van RSK is. Als u meer duidelijkheid nodig hebt over hoeveel gaszuiniger RSK is in vergelijking met Ethereum, bekijk dan dit:

Hier is de avg. transactiekosten vergelijking van Ethereum en RSK in de afgelopen tien dagen. Dus, wat dit betekent is dat niet alleen RSK goedkoper is, maar het brengt ook de algehele veiligheid van de Bitcoin blockchain, waardoor het een duidelijk voordeel ten opzichte van zowel Ethereum als EOS.

Conclusie

Naarmate we een heel nieuw tijdperk betreden van DeFi innovatie en bredere adoptie, hebben ontwikkelaars een platform nodig waar ze hun applicaties efficiënt kunnen ontwikkelen. Hoewel niemand ontkent dat Ethereum een first-mover is, hebben andere platforms zoals RSK zeker sterke gevallen gemaakt als potentiële zware slagmannen van de toekomst. Als we rekening houden met het feit dat het ontwikkelen van slimme contracten en allerlei fungibele tokens en niet-fungibele tokens een naadloos proces op RSK is, hebben ontwikkelaars grote prikkels om dit slimme contractplatform te testen.

Rajarshi Mitra
Rajarshi started writing in the blockchain space after listening to Andreas Antonopoulos’ podcast with Joe Rogan. A content generating machine, Rajarshi has been consistently producing high-quality guides and articles for us since late 2016. His articles have been shared extensively in social media and several start-ups have used his guide as learning material for their staff. He is continuously invited all over his country to give talks in various crypto seminars and conferences. He has gained a solid reputation as a speaker/educator on top of being one of the most promising writers in the crypto space. When he is not busy nerding out over the latest in the blockchain/crypto space, he is usually busy watching re-runs of top gear and MMA.

Like what you read? Give us one like or share it to your friends and get +16

1,102
Hungry for knowledge?
New guides and courses each week
Looking to invest?
Market data, analysis, and reports
Just curious?
A community of blockchain experts to help

Get started today

Already have an account? Sign In