22 oktober 2019
Blockchain Stories
Altcoin Sponsor Universa

Universa Smart Contracts: wat is er mogelijk?

Smart Contracts Universa

Enkele weken geleden is er een artikel gepubliceerd over de Smart Contracts van Universa. Mocht je die gemist hebben, dan is het zeer aan te raden om deze nog door te nemen. De structuur van een smart contract is speciaal ontwikkeld zodat bedrijven hier voor allerlei verschillende toepassingen gebruik van kunnen maken. Maar waarom kan er van alles met de smart contracs van Universa worden ‘gemaakt’? Je leest het hieronder.

Smart Contracts

Er zijn verschillende soorten smart contracts. Om deze duidelijk uit te kunnen leggen, komen ze stuk voor stuk aan bod: token-, factuur- en rekeningcontracten.

Standaard token contract

Dit is een contract dat we allemaal kennen van het Ethereum netwerk: het maken van een Token asset. En dit is bij Universa ook het meest simpele contract die gemaakt kan worden. Het contract checkt de balans van de wallets en kan tokens naar andere wallets versturen. Het Universa Platform kan door dit simpele type contract een grote hoeveelheid verschillende soorten tokens maken. Deze tokens kunnen allemaal verschillende toepassingen hebben; maar dat is aan de gebruikers van het netwerk. Deze contracten kunnen worden uitgebreid met opties voor het creëren van nieuwe tokens, het burnen van de bestaande tokens of het locken hiervan. Deze lock zou ook de totale supply van de token kunnen betreffen, die dan dus (tijdelijk) in zijn geheel onhandelbaar wordt gemaakt. Met de mogelijkheid om tokens te minten/burnen is het dus ook mogelijk om zowel dynamic-supply- als fixed-supply-tokens te maken.

UTN token Smart Contract
UTN token Smart Contract
Bank ondersteunde tokens

De smart contracts van Universa kunnen communiceren met externe API’s. En hiermee is het mogelijk om extra voorzieningen aan te tokens te koppelen. Dit betekent dat er bijvoorbeeld transacties kunnen worden afgehandeld naar externe assets. Deze assets kunnen Bitcoin, Ethereum zijn, maar dit kan ook een fiat-valuta zijn.

Bijvoorbeeld: een contract met de naam USD-TETHER kan worden gekoppeld aan een Amerikaans bank account. In dit contract staat de functie “sellTokensToFiat”, dat ervoor zorgt dat de tokens worden geburned en er SWIFT-adres kan worden ingevuld waar het FIAT geld naartoe wordt gestuurd. Zodra dit wordt uitgevoerd zal het smart contract werken met het corresponderende bank account. Aan de andere kant kan er ook een “buyTokensWithFiat” optie worden uitgevoerd. Die optie maakt het mogelijk om nieuwe coins te creëren voor de hoeveelheid dollars die in de transactie is meegegeven. Op deze manier wordt er geen nieuw geld gemaakt en blijft dit een waterdicht systeem.

Dit type contract kan ook worden gebruikt om bepaalde assets van Universa (denk aan de ultracoins – uBTC en uETH) te backen met andere digitale assets (in dit geval BTC en ETH). Een uBTC vertegenwoordigt een ‘echte’ bitcoin, maar is een token op het Universa netwerk. Hierdoor is het Universa Platform dus operationeel voor het versturen van externe (digitale) valuta.

Factuur contract

Het tweede contract bevat een automatisch betaalsysteem. Stel je voor: je bent de baas van een transportbedrijf en je wilt graag direct betalingen ontvangen voor een dienst, direct nadat de bezorging is afgerond. Wat je dan kunt doen, is het maken van een ‘Invoice Contract’. Als je dit contract maakt, voeg je een document toe in de bijlage waarin de voorwaarden staan waaronder er betaald moet worden. Hierin bepaal je dat er automatisch betaald wordt met het geld van het (hiervoor beschreven) USD-TETHER contract. Als de dienst is uitgevoerd, vragen de medewerkers om een handtekening die moet worden verstrekt. Dit resulteert in een onmiddellijke betaling.

Deze actie kan zelfs offline worden uitgevoerd en later op het netwerk worden geregistreerd. Indien nodig, kan er vóórdat het contract wordt opgesteld, onderhandeld worden over de inhoud hiervan. En als dit wordt ondertekend met een digitale handtekening van één van beide partijen, wordt dit een document dat niet meer kan worden aangepast. De andere partij kan dan óf het volledige contract tekenen óf dit niet teken.

Dit type contract werkt dus in ook in een offline omgeving. En in de online omgeving zijn hier uiteraard ook enorm veel toepassingen te bedenken.

Contract voor overeenstemming

Het ‘factuur contract’ is ook te zien als een contract dat wordt getekend als er een overeenstemming is bereikt over een betaling. Echter zijn hier veel meer mogelijkheden mee:

Digital Exchanges or “Stock Markets”

Net zoals het mogelijk is om betalingen te laten plaatsvinden zodra er een dienst is geleverd, is het ook mogelijk om een trade te plaatsen als beide partijen aan gestelde voorwaarden voldoen. Dit is mogelijk door de externe API’s die in het contract zijn bijgevoegd. In de whitepaper wordt dit een Escrow Contract genoemd. Dat is: ‘a bond, deed, or other document kept in the custody of a third party and taking effect only when a specified condition has been fulfilled.’ Deze third party is in dit geval dus de blockchain, en de condities waaraan moeten worden voldoen, worden door het Proof-of-State ‘verwerkt’ en geverifieerd. In het smart contract wordt een escrow-lock vrij gegeven zodra de twee partijen aan de voorwaarden hebben voldaan. Dit zou dus een betaling kunnen zijn die moet zijn voldaan. Dit type contract zou kunnen worden geïntegreerd in exchanges of brokers voor crypto-to-crypto of crypto-to-fiat betalingen.

Verkopen van goederen

Een tweede voorbeeld voor dit type contract gaat over het verkopen van bijvoorbeeld je huis. De verkoper stelt een contract op met een aantal documenten die aantonen dat de verkoper (op dat moment nog) de eigenaar is van het huis. Deze documenten kunnen een digitale versie van de papieren contracten zijn die wettelijk zijn ondertekend. Het smart contract maakt het mogelijk om de eigendomsdocumenten over te geven naar de nieuwe eigenaar in ruil voor een hoeveelheid USD-TETHER-token. De hoeveelheid wordt uiteraard van te voren ingesteld en onderhandeld. Maar dit kan in principe elk type betaalmiddel/token zijn. Nadat er een overeenstemming is bereikt, wordt de overeenstemming door de nodes van Universa gecontroleerd. Er wordt gecontroleerd of beide handtekeningen aanwezig zijn en of de hoeveelheid van de benodigde tokens aanwezig is op de wallet(s). Als het contract door 90% van de nodes is geverifieerd en goedgekeurd, is de koper de eigenaar van het huis. Nu kan de nieuwe eigenaar de lokale overheden op de hoogte brengen van de (ver)koop door het document van eigendom op te sturen.

Overeenstemming smart contracts Universa
Overeenstemming smart contracts Universa
Digital Autonomous Organization “DAO” Contracts

Als er een stemming is voor een nieuwe functie binnen een bedrijf, kan hier een (main) smart contract voor worden geschreven door de CEO. In het contract wordt de juridische informatie beschreven. Daarna kan het stemmen beginnen en wordt het contract naar alle betrokken personen gestuurd. Deze collega’s openen dit contract, identificeren zich en laten met een digitale handtekening zien dat ze stemrecht hebben. Als er gestemd wordt, wordt er een duplicaat van dit main contract teruggestuurd naar de CEO. Als de stemmen binnen zijn, wordt het main contract automatisch aangepast met daarin de nieuwe invulling van de open functie. Op deze manier is een smart contract dus ook in te zetten als onderdeel van een digitale workflow. Daarbij is al het papierwerk en de juridische documenten vertegenwoordigd in dit contract. Het is zelfs mogelijk om binnen het main contract van de DAO facturen en salaris te betalen.

Meer mogelijkheden

Nu denk je wellicht; is dit het dan? Nou, er is meer dan dit. Zoals in eerdere artikelen over Universa is aangekaart, kunnen in het smart contract JavaScripts worden bijgevoegd. Deze worden uitgevoerd bij de klant en elke wijziging die het script doorvoert, wordt in de blockchain opgenomen in een gereviseerde versie van het contract. Hiervoor zijn oneindig veel toepassingen te bedenken. Verder zijn er in acces.universa enkele templates (token, notary en voting contracts) aanwezig die gebruikt kunnen worden.

This API provides to client to add some javascript to contracts definition. Execution of this script may perform some useful actions, e.g. print specific contract info or create new revision.

Overige contracten

Hierboven zijn drie typen smart contracts uitgelegd aan de hand van voorbeelden. Er zijn er echter nog veel meer mogelijk. Zo zijn er Slot contracten, UNS1 (Universa Name Service) contracten en contracten voor de nodes. Echter is dit niet wat is ontwikkeld voor de doelgroep: businesses. Verder is het ook mogelijk om contracten onderling uit te wisselen door deze uitwisseling op een atomaire wijze uit te voeren. Meer info over smart contracts kun je vinden in de Knowledge Base pagina van Universa. Verder is het ook mogelijk om contracten samen te voegen als batch waardoor er grotere en completere toepassingen kunnen worden verzorgd. Ook hiervoor is het aan te raden naar de KB pagina te gaan. Er is een Contract Service ontwikkeld die je onderweg helpt om deze typen contracten te maken, te implementeren en uit te voeren.

Blijf op de hoogte van de ontwikkelingen rondom bitcoin, altcoins en blockchains. Schrijf je gratis in voor onze nieuwsbrief.

Gerelateerde artikelen

Wat is Universa en wat wil het doen?

Arnold Hubach

ICON (ICX): Het hyperconnecten van verschillende ‘werelden’

Arnold Hubach

Maker (MKR) en de Dai (DAI) stablecoin

Arnold Hubach
Blijf GRATIS op de hoogte!
Schrijf je in voor onze nieuwsbrief en blijf altijd up-to-date in het wereldje van bitcoin, altcoins en blockchains.