03 – Goguen

Met de integratie van slimme contracten vertegenwoordigt het Goguen-tijdperk een grote stap voorwaarts in de mogelijkheden voor het Cardano-netwerk. Waar het Shelley-tijdperk de kern van het systeem decentraliseert, voegt Goguen de mogelijkheid toe om gedecentraliseerde applicaties (DApps) te bouwen op Cardano’s solide basis van peer-reviewed onderzoek en high-assurance-ontwikkeling.

Het werk voor Goguen is parallel met Shelley aan de gang geweest en als het voltooid is, kunnen gebruikers met technische en niet-technische achtergronden functionele slimme contracten op het Cardano-netwerk maken en uitvoeren. Een van de doelen voor het Goguen-tijdperk was de oprichting van Plutus , een speciaal gebouwde slimme contractontwikkelingstaal en uitvoeringsplatform met behulp van de functionele programmeertaal Haskell. Plutus is al beschikbaar voor testen en brengt de voordelen van functioneel programmeren naar slimme contractcreatie. Het maakt het ook mogelijk dat één codebasis zowel on- als off-chain componenten ondersteunt, waardoor de samenhang en bruikbaarheid van de ontwikkelervaring wordt verbeterd in vergelijking met bestaande slimme contractimplementaties.

Het Goguen-tijdperk omvat ook het werk om Cardano toegankelijk te maken voor een breder publiek via Marlowe, waardoor financiële en zakelijke experts zonder voorafgaande technische kennis slimme contracten kunnen maken. Marlowe is een domeinspecifieke taal op hoog niveau (DSL) voor financiële contracten die is gebouwd op Plutus. Marlowe wordt geleverd met de Marlowe Playground, een gebruiksvriendelijk platform voor het bouwen van applicaties dat niet-programmeurs kunnen gebruiken om financiële slimme contracten op te bouwen. Samen vereenvoudigen Marlowe en de Marlowe Playground het proces van het maken van slimme contracten voor financiële toepassingen, waardoor vakexperts rechtstreeks kunnen bijdragen zonder dat diepgaande programmeervaardigheden nodig zijn. De combinatie van Plutus en Marlowe zal een nieuwe klasse slimme contracten op bedrijfsniveau mogelijk maken met geverifieerde functionaliteit, die in staat zijn om grootschalige implementaties in de echte wereld te ondersteunen.

Naast het toevoegen van functionaliteit in de vorm van slimme contracten, zal Goguen ook verbeteringen zien aan het kernaanbod van Cardano. Het belangrijkste is dat de toevoeging van een grootboek met meerdere valuta’s de bruikbaarheid van Cardano nog verder zal vergroten, waardoor gebruikers nieuwe native-ondersteunde tokens kunnen maken. Dit maakt het mogelijk om vervangbare en niet-vervangbare tokens te creëren, wat het creëren van nieuwe cryptocurrencies op Cardano ondersteunt, evenals het tokeniseren van vele soorten digitale en fysieke activa. Een ander voordeel is een eenvoudigere integratie van slimme contracten en DApps met meerdere cryptocurrencies.

Het Goguen-tijdperk vertegenwoordigt een stapsgewijze verandering in de mogelijkheden van Cardano en opent de weg voor de ontwikkeling van bedrijfskritische, gedecentraliseerde slimme contracttoepassingen, met nog meer opwindende dingen die zullen komen tijdens de Basho- en Voltaire-tijdperken.

Goguen research

Op weg naar een slimme, op contracten gebaseerde, gedecentraliseerde infrastructuur met openbare sleutels

Dit document stelt een slimme, op contract gebaseerde gedecentraliseerde infrastructuur met openbare sleutels voor op basis van het inherente schaalbaarheid- en stimuleringsmechanisme van blockchains, waarbij enkele van de ontwerpproblemen worden geformaliseerd met behulp van het Universal Composability-raamwerk

Systeem F in Agda, voor plezier en winst

Dit artikel presenteert de eerste volledig intrinsiek getypeerde, uitvoerbare formalisering van Systeem F, waarop Plutus Core is gebaseerd.

Recursie ontrafelen: compileren van een IR met recursie naar Systeem F

Dit artikel presenteert een tussenliggende representatie (IR) op basis van Systeem F, die een uitbreiding van de mogelijkheden biedt die recursie in zowel functies als gegevenstypen mogelijk maakt, waardoor het programmeertoepassingen op een hoger niveau kan ondersteunen.

Functionele Blockchain-contracten

Dit artikel presenteert het Plutus-platform, een functioneel blockchain smart contract-systeem voor het coderen van gedistribueerde applicaties bovenop de Cardano-blockchain, en beschrijft hoe de bredere Plutus-bibliotheek interageert met Plutus Core in zowel on- als off-chain code.

GOGUEN WERKBEREIK

PLUTUS

Plutus is een speciaal ontwikkeld ontwikkel- en uitvoeringsplatform dat gebruikmaakt van de functionele programmeertaal Haskell. Ontworpen om het maken van slimme contracten op Cardano mogelijk te maken, brengt Plutus de inherente voordelen van functioneel programmeren – zoals minder dubbelzinnigheid en eenvoudiger testen – naar slimme contracten. Tijdens het Goguen-tijdperk zal Plutus de weg bereiden voor slimme contracten die in staat zijn zakelijke en financiële scenario’s op bedrijfsniveau te modelleren. Niet alleen dat, maar Plutus en Haskell maken het gebruik van dezelfde codebase zowel on- als off-chain mogelijk, terwijl andere slimme contractimplementaties ontwikkelaars vaak vereisen om twee of meer verschillende talen te gebruiken, waardoor de efficiëntie afneemt en de kans op kostbare fouten toeneemt.

Smart contracts

Een smart contract is een stukje code dat op een blockchain is geprogrammeerd en die de voorwaarden van een bepaalde transactie definieert. Na ontvangst van een bepaalde trigger of invoer, zal het slimme contract de toegewezen taken uitvoeren.

Alle slimme contracten hebben enkele gemeenschappelijke eigenschappen.

Omdat ze op de blockchain bestaan, hebben ze een status van bestaan, en deze status wordt gedeeld over het hele netwerk. Dus elk knooppunt waarop deze blockchain draait, heeft een kopie van de staat van het slimme contract.

Ze kunnen niet worden gewijzigd. Hoewel er manieren zijn om ze uit te breiden of onderdelen te vervangen – als een dergelijke actie door de ontwikkelaars is voorzien – is er geen manier om hun inhoud te manipuleren zonder de aandacht van het netwerk te trekken.

De logica van een slim contract kan niet worden vervormd, dus er is geen ruimte voor interpretatie. Daarom worden ze een “contract” genoemd. Ze gedragen zich als een overeenkomst tussen partijen, maar een die geen rechter behoeft, omdat het resultaat van te voren bepaald is, onder voorwaarde van bepaalde acties.

Slimme contracten geven ons de mogelijkheid om elk soort token te maken zonder een geheel nieuwe blockchain te hoeven lanceren. Met de opkomst van Ethereum werd een token slechts een stukje code – een slim contract – met bepaalde functies, waaronder het mogelijk maken van de “overdracht” van digitale activa en de mogelijkheid om de accountinhoud van tokenhouders te “lezen”.

PLUTUS KERN

Hoewel Plutus een taal op hoog niveau is voor ontwikkelaars, is Plutus Core een scripttaal op laag niveau die zowel op de verrekeningslaag als op de rekenlaag van Cardano draait en de interacties tussen scripts en de blockchain zelf controleert. Alle on-chain-functionaliteit van slimme contracten die in Plutus zijn geschreven, wordt gecompileerd naar Plutus Core, dat alle voordelen van functionele programmering behoudt en tegelijkertijd eenvoudig en beknopt blijft. Waar Plutus Core is geïmplementeerd in de nederzettingslaag, gebeurt dit op de eenvoudigst mogelijke manier, waardoor de beveiliging wordt verbeterd door potentiële aanvalsvectoren te minimaliseren.

MARLOWE

Marlowe is een domeinspecifieke taal (DSL) voor het maken van financiële slimme contracten , ontworpen om toegankelijk te zijn voor niet-technische personen zoals bedrijfstechnici, vakexperts en financiële analisten. Met Marlowe kan zelfs iemand zonder enige programmeerervaring uitvoerbare slimme contracten maken die communiceren met gegevens uit de echte wereld en deze implementeren op de ingebouwde Cardano-emulator en uiteindelijk op het Cardano-netwerk zelf. Hoewel Marlowe noodzakelijkerwijs een taal van hoog niveau is, is het gebouwd op Plutus en Haskell en blijft het profiteren van alle garanties die functioneel programmeren biedt, zonder het gebruiksgemak aan te tasten.

Al het werk aan Marlowe is zichtbaar in de Marlowe GitHub-repository en de Marlowe Playground-emulator is beschikbaar voor gebruikers om te proberen hun eigen financiële slimme contracten te maken met behulp van een eenvoudige webgebaseerde interface.

PLUTUSFEST

PlutusFest werd in december 2018 gehouden aan de Universiteit van Edinburgh om de programmeertalen Plutus en Marlowe aan te kondigen en te promoten. Geïnteresseerde leden van het publiek en de academische wereld verzamelden zich voor twee dagen van lezingen en presentaties door IOHK-ingenieurs, waarvan de meeste werden opgenomen en kunnen worden bekeken op het IOHK YouTube-kanaal.

PLUTUS EN MARLOWE UDEMY CURSUSSEN

Er zijn twee gratis Mooc-cursussen uitgebracht op Udemy die de programmeertalen Plutus  en Marlowe behandelen. De cursussen zijn gemaakt en beheerd door het interne onderwijsteam van IOHK en bieden een inleidende bron voor iedereen die wil leren experimenteren met slimme contracten met behulp van Plutus en Marlowe.

MEERVOUDIGE LEDGER

De introductie van een grootboekmodel met meerdere valuta’s in Cardano stelt het netwerk in staat om extra cryptocurrencies op een ERC20-achtige manier te ondersteunen, maar goedkoper, veiliger en zonder de noodzaak van een complex scriptsysteem dankzij native ondersteuning in de vereffeningslaag. Gebruikers kunnen niet alleen hun eigen vervangbare tokens op het Cardano-netwerk maken, maar een grootboek met meerdere valuta’s zal ook tokenisatie mogelijk maken met het creëren van niet-vervangbare tokens, plus eenvoudigere integratie met slimme contracten met meerdere cryptocurrencies.

KEVM

KEVM is een hoogwaardige, formeel geverifieerde virtuele smart contract-machine die compatibel is met de virtuele Ethereum-machine (EVM). Formeel gespecificeerd in het K-raamwerk, gebruikt de KEVM formele semantiek voor elementen zoals de configuratie- en overgangsregels van EVM, wat resulteert in een veiligere virtuele machine voor slimme contracten. IOHK heeft haar samenwerking in het K-kaderproject onderbroken om zich te concentreren op andere prioriteiten, maar is enthousiast over de visie en kan in de toekomst weer deelnemen.

IELE

IELE is een virtuele machine gebaseerd op het onderzoek achter KEVM. Als een low-level platform maakt IELE de vertaling en uitvoering mogelijk van slimme contracten van hogere talen met een uniform gasmodel in alle talen. Als een compilatiedoel voor Solidity-code of rechtstreeks geïntegreerd in Cardano, kan dit slimme contractinteroperabiliteit vergemakkelijken en kan het een zeer betrouwbare weg bieden voor het leveren van Ethereum-integratie. Na een aanzienlijke bijdrage aan het project heeft IOHK de samenwerking op IELE onderbroken om zich voorlopig op andere prioriteiten te concentreren, maar is enthousiast over mogelijke terugkeer naar het project in de toekomst.

PLUTUS EBOOK

Het IOHK-onderwijsteam heeft samengewerkt met Plutus-taalarchitecten om een ​​inleidend Plutus-e-boek te maken, beschikbaar op Amazon en LeanPub . Het e-boek is ontworpen om beginnende Haskell-ontwikkelaars te informeren over de grondbeginselen van de nieuwe slimme contracttaal van Plutus en gebruikt praktijkvoorbeelden om de mogelijke toepassingen van Plutus te illustreren.

MEDUSA COMMIT GESCHIEDENIS VISUALISATIE

Medusa is een grafische tool in 3D die de geschiedenis van Cardano-softwareontwikkeling laat zien door veranderingen in GitHub-bestanden in kaart te brengen terwijl ze zich voordoen, zodat gebruikers de activiteit in de codebasis kunnen verkennen en realtime heatmaps van code-commits kunnen bekijken.