Permalink
Fetching contributors…
Cannot retrieve contributors at this time
189 lines (93 sloc) 18.4 KB

NEO White Paper

Een gedistribueerd netwerk voor de Smart Economy.

NEO ontwerpdoelstellingen: Slimme Economie

NEO maakt gebruik van blockchaintechnologie en digitale identiteiten om activa te kunnen digitaliseren. Door middel van Smart Contracten kunnen digitale activa zichzelf beheren, waardoor een slimme economie (Smart Economy) met een gedistribueerd netwerk gerealiseerd kan worden.

Digitale Activa

Digitale activa zijn programmeerbare activa die bestaan in de vorm van elektronische gegevens. Met blockchain technologie kan de digitalisering van activa gedecentraliseerd, vertrouwelijk, traceerbaar, zeer transparant en vrij van tussenpersonen zijn. Op de NEO blockchain kunnen gebruikers meerdere soorten activa registreren, verhandelen en in omloop brengen. Bovendien is het bewijs van de verbinding tussen digitale en fysieke activa mogelijk via een digitale identiteit en zijn de activa die geregistreerd zijn via een gevalideerde digitale identiteit wettelijk beschermd.

NEO heeft twee vormen van digitale activa: globale activa en contracten-activa. Globale activa kunnen worden opgenomen in het systeem en kunnen geïdentificeerd worden door alle klanten en Smart Contracten. Contracten-activa worden opgenomen in het privé-opslaggebied van het Smart Contract en vereisen dat een compatibele klant deze zou moeten kunnen herkennen. Contracten-activa kunnen voldoen aan bepaalde normen/eisen om compatibiliteit met de meeste klanten te bereiken.

Digitale Identiteit

Digitale identiteit verwijst naar de identiteitsinformatie van individuen, organisaties en andere entiteiten die bestaan in elektronische vorm. Het oude digitale identiteitssysteem is gebaseerd op de X.509-standaard van PKI (Public Key Infrastructure). In NEO implementeren we een reeks X.509-compatibele digitale identiteitsnormen. Deze set van digitale identiteitsnormen, naast het compatibele X.509-niveau certificaatuitgiftemodel, zal ook het Web of Trust point-to-point certificaatuitgiftemodel ondersteunen. Onze identiteitsverificatie bij het afgeven of toepassen van digitale identiteiten omvat het gebruik van gezichtsfuncties, vingerafdruk, spraak, sms en andere methoden voor verificatie. Tegelijkertijd gebruiken we ook de blockchain om het Online Certificaat Status Protocol (OCSP) te vervangen, om de X.509 Certificate Revocation List (CRL) op te nemen en te beheren.

Smart Contract

Het Smart Contract werd eerst voorgesteld door de cryptograaf Nick Szabo in 1994, slechts vijf jaar na de oprichting van het World Wide Web. Szabo definieert het als volgt: “Wanneer een voorgeprogrammeerde voorwaarde wordt geactiveerd, zal het Smart Contract de overeenkomstige contractvoorwaarden uitvoeren”. Blockchain-technologie biedt ons een gedecentraliseerd, fraudebestendig en een betrouwbaar systeem aan waarin Smart Contracts zeer handig zijn. NEO heeft een eigen Smart Contract systeem ontwikkeld genaamd: NeoContract.

Het NeoContract Smart Contract systeem is de belangrijkste kenmerk van de integratie voor de ontwikkelaars ecosysteem. Ontwikkelaars hoeven geen nieuwe programmeertaal te leren, maar kunnen gebruik maken van C #, Java en andere algemene programmeertalen in hun vertrouwde IDE-omgevingen (Visual Studio, Eclipse, etc.) voor Smart Contract ontwikkeling, foutopsporing en verzamelwerk. NEO's Universal Lightweight Virtual Machine (NeoVM) geeft de voordelen van hoge zekerheid, hoge coördinatie en hoge schaalbaarheid. Met het NeoContract Smart Contract System kunnen miljoenen ontwikkelaars over de hele wereld snel de ontwikkeling van Smart Contracten uitvoeren. NeoContract heeft daarnaast een aparte White Paper waarin de implementatiegegevens worden beschreven.

Applicaties en Ecosysteem

Het ecosysteem is de levenskracht van de open source gemeenschap. Om het doel van een intelligent economisch netwerk te verwezenlijken, zal NEO zich inzetten voor (1) de ontwikkeling van het ecosysteem, (2) het verstrekken van volwassen ontwikkelings-instrumenten, (3) het verbeteren van de ontwikkeling van documenten, (4) het organiseren van opleidings- en trainingsactiviteiten en (5) het verstrekken van financiële steun. We zijn van plan om de volgende NEO-gebaseerde applicaties te ondersteunen en om beloningen aan te bieden aan ontwikkelaar om het gebruik van het ecosysteem alsmaar te kunnen verbeteren:

🔹 Node Programma

  • Een volledig functionerend full-node pc-programma

  • Een lichte node pc-programma met een betere gebruikerservaring

  • Web / Android / iOS-cliënt die niet gesynchroniseerd hoeft te worden met de blockchain

  • Hardware portemonnee

🔹 Blockchain Explorer

🔹 SDK Ontwikkelingskit

  • Ondersteund Java / Kotlin, .NET C # / VB, JavaScript / Typescript, Python, Go

🔹 Smart Contract Compiler en IDE Plug-in

  • C# / VB.Net / F#, Visual Studio

  • Java/ Kotlin, Eclipse

  • C / C++ / GO

  • JavaScript / TypeScript

  • Python / Ruby

🔹 Gedecentraliseerde Applicaties

  • Smart fonds

  • AI-assisterend juridisch Smart Contract

  • Sociaal netwerken

  • Geautomatiseerde tokens liquiditeitsverleners

  • Gedecentraliseerde uitwisseling

  • Veilig communicatieprotocol

  • Data-uitwisselingsmarkt

  • Intellectuele eigendom handelsmarkt

  • Voorspellingsmarkt

  • Reclamemarkt

  • Hashpowermarkt

  • NeoGasmarkt

NEO Management Model

Economisch Model

NEO heeft twee tokens, NEO (symbool NEO) en NeoGas (afgekort symbool GAS).

NEO, met in totaal 100 miljoen tokens, vertegenwoordigt het recht om het netwerk te beheren. Beheersrechten omvatten het stemmen voor boekhouding, NEO netwerkparameterwijzigingen, enz. De minimale eenheid van NEO is 1 en deze tokens kunnen niet verder onderverdeeld worden.

GAS is het brandstoftoken voor het NEO netwerk, met een maximale totale limiet van 100 miljoen. Het NEO netwerk vraagt kosten aan voor het gebruik en opslag van tokens en Smart Contracten, waardoor er economische stimulansen voor boekhouders ontstaan en het misbruik van middelen kan worden voorkomen. De minimale eenheid van GAS is 0.00000001.

In het creatieblok van het NEO netwerk werd 100 miljoen NEO’s gegenereerd. GAS was op dat moment nog niet gegenereerd. 100 miljoen GAS, overeenkomend met de 100 miljoen NEO, zal in ongeveer 22 jaar tijd door een verval algoritme gegenereerd worden aan NEO-bezitters. Als NEO naar een nieuw adres wordt overgebracht, wordt de gegenereerde GAS ook meegestuurd.

Het NEO netwerk zal een drempel instellen door te stemmen op GAS-vrijstelling van een aantal overdrachtstransacties en Smart Contract operaties, om hiermee de gebruikerservaring te verbeteren. Wanneer er een groot aantal spamtransacties optreden, kan NeoID worden gebruikt om transacties en Smart Contracts met gekwalificeerde identiteiten te prioriteren. Transacties en Smart Contracts zonder gekwalificeerde digitale identiteiten kunnen daarnaast prioriteit krijgen door GAS te betalen.

Distributiemechanisme

NEO distributie:

NEO's 100 miljoen tokens zijn verdeeld in twee porties. De eerste portie bestaat uit 50 miljoen tokens die proportioneel worden verdeeld aan supporters van NEO tijdens de crowdfunding. Deze portie is al gedistribueerd.

De tweede portie bestaat uit 50 miljoen NEO dat beheerd wordt door de NEO raad (Neo Council) voor NEO’s langetermijnsontwikkeling, werking, onderhoud en om het ecosysteem te ondersteunen. NEO heeft in deze portie een uitsluitingstermijn van 1 jaar en wordt pas geopend na 16 oktober 2017. Dit gedeelte wordt niet verhandeld en is alleen voor langetermijn-ondersteuning van NEO-projecten bedoeld. De plannen hiervoor zijn als volgt:

🔹 10 miljoen tokens (10% totaal) worden gebruikt om NEO-ontwikkelaars en leden van de NEO Raad te motiveren

🔹 10 miljoen tokens (10% totaal) worden gebruikt om ontwikkelaars in het NEO-ecosysteem te motiveren

🔹 15 miljoen tokens (15% totaal) worden gebruikt om te investeren in andere block-chain projecten die eigendom zijn van de NEO Council en zal uitsluitend voor NEO-projecten worden gebruikt

🔹 15 miljoen (totaal 15%) wordt behouden voor onvoorziene onkosten

🔹 Het jaarlijkse gebruik van NEO mag in principe niet meer bedragen dan 15 miljoen tokens

GAS distributie:

GAS wordt gegenereerd bij elk nieuw blok. De initiële totale hoeveelheid GAS is nul. Met het toenemende aantal nieuwe blokken wordt in ongeveer 22 jaar de totale limiet van 100 miljoen GAS bereikt. Het interval tussen elk blok is ongeveer 15-20 seconden en in ongeveer een jaar zullen 2 miljoen blokken worden gegenereerd.

Het eerste jaar (0-2 miljoen blokken), zal elk blok 8 nieuwe GAS genereren. Het tweede jaar (2-4 miljoen blokken) zal elk nieuw blok 7 GAS genereren, en ga zo maar door. Er is een jaarlijkse reductie van 1 GAS voor de eerste 8 jaar totdat 1 GAS per blok bereikt is. Dit zal de snelheid van het aantal GAS tot jaar 22 zijn. Na het 44 miljoenste blok zal de totale hoeveelheid GAS 100 miljoen bereiken, waardoor de GAS-generatie uit nieuwe blokken wordt gestopt.

Volgens deze uitgiftecurve wordt in het eerste jaar 16% van de GAS gecreëerd, in de eerste vier jaar 52% en zal ten slotte 80% van de GAS in de eerste 12 jaar gecreëerd worden. Deze GAS wordt proportioneel verdeeld in overeenstemming met het aantal NEO opgenomen in de overeenkomstige adressen. NEO houders kunnen te allen tijde een claimtransactie starten om deze GAS-tokens op te eisen.

Bestuur mechanisme

Chain bestuur: NEO tokenhouders zijn de netwerkbezitters en beheerders die het netwerk beheren door te stemmen. Dit kan met behulp van de GAS die door NEO is gegenereerd om de functies in het netwerk te benutten. NEO-tokens kunnen daarnaast ook overgedragen worden.

Off-chain bestuur: Het NEO bestuur bestaat uit de oprichters van het NEO project, waarbij de directie, het technische comité en het secretariaat verantwoordelijk zijn voor strategische besluitvorming, technische besluitvorming en implementatie. Daarnaast is de NEO Raad verantwoordelijk voor de gemeenschap, waarbij de bevordering en ontwikkeling van het NEO ecosysteem centraal staat.

NEO-technologie implementatie

Consensus mechanisme: DBFT

DBFT staat voor Delegated Byzantine Fault Tolerant, een Byzantijns fouttolerant consensusmechanisme dat grootschalige participatie in consensus mogelijk maakt door middel van volmachtstemming. De houder van de NEO-token kan, door te stemmen, de boekhouder kiezen die hij ondersteunt. De geselecteerde groep boekhouders bereiken via het BFT-algoritme een consensus en genereren nieuwe blokken. Stemmen in het NEO netwerk kan onmiddellijk in plaats van op vaste termijn.

DBFT geeft een fouttolerantie van f = ⌊ (n-1) / 3 ⌋ voor een consensus systeem, bestaande uit n consensus nodes. Deze fout-tolerantie omvat zowel beveiliging als beschikbaarheid, weerstand tegen algemene en Byzantijnse storingen en is geschikt voor elke netwerkomgeving. DBFT heeft een goede eindigheid, wat betekent dat zodra bevestigingen definitief zijn, het blok niet meer kan worden ververst, waarna transacties niet meer teruggetrokken of teruggerold kunnen worden.

In het NEO DBFT consensusmechanisme, dat ongeveer 15 tot 20 seconden duurt om een blok te genereren, wordt de transactiedoorvoer gemeten tot ongeveer 1.000 transacties per seconde (TPS), wat een uitstekende prestatie onder de publieke chains is. Door middel van passende optimalisatie is er potentieel om 10.000 TPS te bereiken, zodat het grote commerciële toepassingen kan ondersteunen.

DBFT combineert digitale identiteitstechnologie, waardoor de boekhouders hun echte naam kunnen gebruiken zoals bijvoorbeeld van een instelling. Het is dus mogelijk om de boekhouders te bevriezen, hun rechten terug te nemen, goederen te laten erven en hun wettelijk aansprakelijk te stellen. Dit vergemakkelijkt de registratie van conforme financiële activa in het NEO-netwerk. Het NEO-netwerk is van plan dergelijke acties te ondersteunen indien nodig.

Smart Contract System: NeoContract

NEO's Smart Contract System bestaat uit drie delen:

NeoVM - Universeel Block Chain Virtuele Machine:

NeoVM is een lichte virtuele machine met veel gebruiksvriendelijkheid, waarvan de architectuur zeer dicht bij de JVM en .NET RUNTIME ligt. Het is vergelijkbaar met een virtuele CPU die opeenvolgend instructies in het contract leest en uitvoert, procescontrole uitvoert op basis van de functionaliteit van de instructie, logica, enz. Het heeft een goede opstartsnelheid en is veelzijdig, waardoor het zeer geschikt is voor kleine programma's zoals Smart Contracten. Deze kunnen ook worden vervoerd buiten de blockchain of geïntegreerd worden met de IDE om een optimale ontwikkelingservaring te bieden. Daarnaast kan de functionaliteit van NeoVM uitgebreid worden, zoals het invoeren van een JIT (real-time compiler) mechanisme, om de efficiëntie van de implementatie te verbeteren.

InteropService - Interoperable diensten:

InteropService wordt gebruikt om de blockchain grootboek, digitale activa, digitale identiteit, persistente opslagruimte en andere onderliggende diensten te laden. Denk hierbij aan virtuele machines die worden geleverd aan andere virtuele machines. Hierdoor kunnen Smart Contracten op looptijd toegang krijgen tot diensten om wat geavanceerde functionaliteit te behalen. NeoVM kan hiermee worden toegewezen aan een blockchain of zelfs een niet-blockchain systeem, waardoor het gebruik van de Smart Contracten alsmaar wordt vergroot.

DevPack - Compiler en IDE plug-in:

DevPack bevat een op hoog niveau taalcompilator en de IDE-invoegtoepassingen. Omdat de architectuur van NeoVM zeer vergelijkbaar is met JVM en .NET Runtime, kunnen de compilers in DevPack Java byte code en .NET MSIL compileren in de instructieset van NeoVM. Java/ Kotlin, C # ontwikkelaars hoeven geen nieuwe talen te leren en zullen meteen Smart Contracten kunnen ontwikkelen in VS, Eclipse en andere bekende IDE-omgevingen. Dit vermindert de leercurve aanzienlijk voor het ontwikkelen van Smart Contracten, waardoor we gemakkelijk en snel een levendige gemeenschap rond NeoContract kunnen bouwen.

NeoContract kan door middel van statische analyse een ‘call tree’ creëren voordat men een slim contract uitvoert. Via de deterministische call tree kan de NEO node het Smart Contract dynamisch fragmenteren, om theoretisch onbeperkte uitbreiding te behalen. Dit zal het "verstoppingseffect" dat wordt veroorzaakt door de statische fragmentatie van andere blockchainsystemen overkomen.

Cross-chain interoperabiliteit overeenkomst: NeoX

NeoX is een protocol dat interoperabiliteit tussen chains implementeert. NeoX is verdeeld in twee delen: de 'cross-chain activa uitwisselingsovereenkomst’ en het 'cross-chain gedistribueerde transactie protocol'.

Cross-chain activa uitwisselingsovereenkomst:

NeoX is uitgebreid met bestaande dubbelstrengige ‘atomaire activa’ voor uitwisselingsovereenkomsten om meerdere deelnemers in staat te stellen activa over verschillende ketens uit te wisselen. Dit zal er ook voor zorgen dat alle stappen in het gehele transactieproces slagen of falen. Om deze functie te bereiken, gebruiken we de NeoContract functie om een contractrekening voor elke deelnemer te maken. Als andere blockchains niet compatibel zijn met NeoContract, kunnen ze compatibel zijn met NeoX zolang ze eenvoudige, Smart Contractfunctionaliteit kunnen bieden.

Cross-chain gedistribueerde transactie protocol:

Cross-chain gedistribueerde transacties met meerdere ketens betekenen dat meerdere stappen van een transactie verspreid zijn over verschillende blockchains en dat de consistentie van de gehele transactie wordt gewaarborgd. Dit is een uitbreiding van de cross-chain activa-overeenkomst, waardoor het gedrag van de uitwisseling van activa wordt uitgebreid tot willekeurig gedrag. In andere woorden; NeoX maakt Smart Contracten voor meerdere kettingen mogelijk, waarbij een slim contract verschillende onderdelen op meerdere kettingen kan uitvoeren. Deze kunnen ofwel succesvol zijn of terugkeren als deze niet aan de eisen voldoen. Dit biedt uitstekende mogelijkheden voor cross-chain collaboraties en NEO is momenteel bezig om meer mogelijkheden te creëren voor cross-chain Smart Contracten applicaties.

Distributed Storage Protocol: NeoFS

NeoFS is een gedistribueerd opslagprotocol dat Distributed Hash Table-technologie gebruikt. NeoFS indexeert de gegevens via de inhoud van het bestand (Hash) in plaats van het bestandspad (URI). Grote bestanden worden verdeeld in databases met vaste grootte die in veel verschillende nodes worden opgeslagen en verdeeld.

Het belangrijkste probleem met dit type systeem is de noodzaak om een evenwicht te vinden tussen redundantie en betrouwbaarheid. NeoFS is van plan deze tegenstrijdigheid op te lossen door middel van tokenincentives en de oprichting van ‘ruggengraat-nodes’. Gebruikers kunnen vervolgens de betrouwbaarheidseisen van het bestand kiezen. Bestanden met een laag betrouwbaarheidsverzoek kunnen gratis of vrijwel gratis worden opgeslagen en toegankelijk gemaakt worden. Hoge betrouwbaarheidseisen worden verstrekt door de stabiele en betrouwbare ruggengraat-nodes.

NeoFS zal dienen als een InteropService-interoperabiliteitsdienst in het NeoContract-systeem, waardoor Smart Contracten grote bestanden op de blockchain kunnen opslaan en toegang tot die bestanden kunnen instellen. Daarnaast kan NeoFS gecombineerd worden met een digitale identiteit, zodat digitale certificaten die worden gebruikt door digitale identiteiten kunnen worden toegewezen, verzonden en ingetrokken, zonder dat een centrale server nodig is om deze te beheren. In de toekomst kunnen de oude blokgegevens opgeslagen worden in NeoFS, zodat de meeste nodes de oude gegevens kunnen vrijmaken voor betere schaalbaarheid en tegelijkertijd de integriteit van de historische gegevens kunnen waarborgen.

Anti-quantum cryptografie mechanisme: NeoQS

De opkomst van kwantumcomputers creëert een grote uitdaging voor RSA en ECC-gebaseerde cryptografische mechanismen. Kwantumcomputers kunnen het grote aantal ontbindingsproblemen (waarop RSA vertrouwt) en het elliptische curve discrete logaritme (waarop ECC vertrouwt) op een zeer korte tijdstip oplossen. NeoQS (Quantum Safe) is een lattice-based cryptografisch mechanisme. Momenteel hebben kwantumcomputers niet de mogelijkheid om op een snelle manier het kortste vectorprobleem (Shortest Vector Problem; SVP) en het dichtstbijzijnde vectorprobleem (Closest Vector Problem; CVP) op te lossen. Hierdoor wordt NeoQS beschouwd als het meest betrouwbare algoritme om zich tegen kwantumcomputers te verzetten.

Samenvatting

NEO is een gedistribueerd netwerk dat digitale activa, digitale identiteiten en Smart Contracten combineert. Het NEO ecosysteem zal ook DBFT, NeoX, NeoFS, NeoQS en vele andere originele technologie gebruiken als infrastructuur om de intelligente economie van de toekomst vorm te geven.