Wat maakt de Universa Blockchain zo veilig? HashID

In dit artikel duiken we een beetje verder in de veiligheid van de Universa Blockchain. Wat maakt het veilig om te gebruiken? Hoe worden de gegevens in de blockchain beschermd?

In de vorige artikelen hebben we de snelheid and thekosten van het Universa Blockchain Protocol met Bitcoin and Ethereum vergeleken. Mocht je het gemist hebben, kun je er hier meer over lezen.

Universa Today wordt onderhouden door hulp van de community. Als je wilt meehelpen, neem dan gerust contact op met @starnold op Telegram. Zoals je kunt zien, zijn de artikelen in verschillende talen vertaald, maar veel handen maken licht werk.

Veiligheid van de Universa Blockchain

Allereerst moet je een van de belangrijkste aspecten van een blockchain begrijpen: onveranderlijkheid (immutability) en vertrouwen zonder de noodzaak van vertrouwde derde partijen. Maar hoe kan een protocol dergelijke kenmerken hebben zonder iemand die een proces of betaling controleert? In de wereld van blockchains wordt de controle uitgevoerd door een netwerk van nodes.

De nodes van het netwerk bereiken de consensus van een blockchain-protocol. Ze registreren gegevens die onveranderlijk moeten zijn. Het makkelijkste voorbeeld is geld: u wilt dat uw digitale geld van u is. Het zou niet mogelijk moeten zijn dat buitenstaanders aanspraak kunnen maken op uw geld. Dit is mogelijk door twee aspecten:

  • Netwerk dat de gedistribueerde ledger bevat (waarbij elke node een kopie van de gedistribueerde ledger bewaard);
  • Cryptografie.

De nodes controleren de gegevens van alle peers in het netwerk. Elke node houdt / controleert zijn eigen gegevens en wanneer een ‘consensus question’ moet worden beslist, stemt elke node.

In geval van geld valideren en controleren de nodes de balans van alle deelnemers aan het netwerk. Deze balans in de Universa Blockchain is slechts een getal (bedrag) n het smart contract. Omdat het netwerk een gedistribueerd en gedecentraliseerd systeem is, bereiken de nodes een consensus (90 +%) over de gegevens. Dit voorkomt dat afzonderlijke entiteiten vals spelen.

Het Universa Blockchain protocol heeft verschillende interessante aspecten die een veilig netwerk garanderen. Gevoelige bedrijfsgegevens worden niet ongemerkt en onbewust opgeslagen in onbekende delen van de wereld. Het wordt gecodeerd en gereguleerd door beveiligingsmaatregelen van organisaties. Dit maakt het mogelijk voor ondernemingen om een ​​blockchain met gevoelige of besloten bedrijfsprocessen te vertrouwen. Hier komt het tweede aspect van beveiliging aan bod: cryptografie.

Cryptografie

Cryptografie is de sleutel tot dit succes. Er zijn verschillende manieren om uw gegevens te coderen. Het Bitcoin netwerk gebruikt bijvoorbeeld de SHA-256 hashfunctie en het coderingsalgoritme in Ethereum is Keccak. Beiden behoren tot een enigszins verschillende hashing familie. SHA-256 is een van de SHA-2-familie en Keccak van SHA3.

Interessant is echter dat de Ethereum implementatie in feite een SHA3-algoritme is. Maar omdat het enige tijd leek te duren voordat de SHA3 officieel werd geaccepteerd, verschilt deze ervan (in enkele kleine details).

Het Keccak algoritme in Ethereum is in principe hetzelfde als de SHA3-standaard, hoewel het niet binair verenigbaar is. Wat ernstige problemen kan veroorzaken, bijvoorbeeld bij het gebruik van hardware implementaties of andere standaardconforme oplossingen.

Voor nu zijn ze min of meer veilig te gebruiken, hoewel jeal een aantal aanvallen en problemen kunt vinden.

Een hash functie verandert de input in een kort verslag. Het is een eenrichtingsfunctie die praktisch onhaalbaar is. Je begrijpt misschien wel dat de ‘gehashte’ informatie op een zeer veilige manier via internet kan worden overgedragen.

Als we het woord “universa” nemen en het hashen met de SHA-256-functie, is het resultaat een string als deze:

E7A3A82B5C33F35CAEFF7EB092B3A8A963DC83C7CB8E2EF8B1A2916A4ED6D1DE

Maar als we de input een beetje veranderen in ‘un1versa’, zal de output (of de hash) compleet anders zijn. Het is niet mogelijk om de input af te leiden door deze twee outputs te vergelijken. De nieuwe hash zal zijn:

2D21258B9EF1CD7EA29F65AE161B7E453A628BD6033929D1F608ECE81F1D71C3

Je kunt het zelf opverschillende websitesproberen. Zoals je kunt zien, zien beide hashes er heel anders uit, terwijl de invoer bijna hetzelfde is, ook bekend als het zogenaamde ‘lawine-effect’. Een kleine verandering in de input veroorzaakt een grote verandering in de output.

Maar … Als het algoritme in de toekomst een zwakke plek heeft, kan niet worden gegarandeerd dat de gegevens veilig worden opgeslagen. Universa lost deze potentiële kwetsbaarheid op met de zogenaamdeHashID

Bitcoin, Ethereum en Universa

Bitcoin en Ethereum gebruiken beide één hash, elk van een andere familie. De Universa Blockchain maakt gebruik van drie verschillende cryptografische hashfuncties uit drie verschillende algoritmefamilies en combineert hun resultaten in feite in een complexe hashfunctie, waarbij alle beste kwaliteiten van drie onafhankelijke algoritmen worden gebruikt.

De gebruikte hash-functies zijn:

  • SHA-512/256
  • SHA3-256 (256 bits)
  • Streebog (256 bits)

Ze zijn allemaal gestandaardiseerd over de hele wereld. SHA-512 is bijvoorbeeld gestandaardiseerd door de Amerikaanse federale overheid in 2002. De Japanse regering en de Europese Unie accepteren beide deze cryptografische techniek. Daarnaast is Streebog in 2012 gestandaardiseerd door de Russische Federatie.

Het is een van de zogenaamde “GOST” algoritmen. GOST betekent GOsudarstvenniy STandard, “State Standard”. Er zijn niet meer ‘gestandaardiseerde’ normen in Rusland dan GOST’s; en de GOST-normen dekken alles, van technologieën / industrieën tot voedselproductie en -behandeling.

Dus om het duidelijk te maken:

  • Universa Blockchain gebruikt drie verschillende hashfuncties;
  • Deze behoren tot volledig verschillende algoritmefamilies;
  • Ze zijn ontwikkeld door drie aanzienlijk verschillende teams van cryptografen en maken gebruik van nogal verschillende cryptografische concepten en primitieven;
  • Als een van de hashfuncties in de toekomst met kwetsbaarheden wordt geconfronteerd, worden de gegevens niet openbaar gemaakt.

HashID in de praktijk

Zoals je je misschien herinnert uit de vorige artikelen, is het Universa Blockchain protocol gebaseerd op de verificatie van de status van een contract. Het voert de ‘gedecentraliseerde apps’ niet uit.

Je zou de staat van een contract kunnen lezen als een lange code. Herinner je je de hash van ‘universa’ en ‘un1versa’? Dergelijke strings kunnen eenvoudig worden geverifieerd door de nodes van een blockchain. Maar als je probeert wat informatie uit de input te wijzigen (als u bijvoorbeeld de eigendom van een contract wilt claimen), zal de ID van het contract enorm veranderen. De nodes herkennen het niet als ‘APPROVED’. Je kunt hierover meer lezen op deKnowledge Base site.

Laten we deze hash methode met HashID in de praktijk brengen om te zien wat er gebeurt. Laten we het originele smart contract van het UTN token als voorbeeld nemen.

Als je het smart contract in de universaexplorer opzoekt, zie je de ID van het root contract:

NPo4dIkNdgYfGiNrdExoX003+lFT/d45OA6GifmcRoTzxSRSm5c5jDHBSTaAS+QleuN7ttX1rTvSQbHIIqkcK/zWjx/fCpP9ziwsgXbyyCtUhLqP9G4YZ+zEY/yL/GVE

Dit is een string van 128 symbolen. Maar voordat we van een smart contract naar dit kleine stukje tekst gingen, gebeurde er veel ‘achter de schermen’. Deze string vertegenwoordigt veel informatie. Het vertegenwoordigt de status van een smart contract. Maar deze string weerspiegelt de hele inhoud van een smart contract (of de revisie ervan). Het enige dat de nodes moeten doen, is controleren of deze status geldig is (vandaar ‘APPROVED’). Als dat niet het geval is, kunnen ze dit contract communiceren als DECLINED, REVOKED or UNDEFINED.

Het enige dat een node opslaat, is de relatie zoals:

“het contract met de status NPo4dIkNdgYfGiNrdExoX003+lFT/d45OA6GifmcRoTzxSRSm5c5jDHBSTaAS+QleuN7ttX1rTvSQbHIIqkcK/zWjx/fCpP9ziwsgXbyyCtUhLqP9G4YZ+zEY/yL/GVE is nu VALID”

Laten we dus teruggaan naar het smart UTN contract met de ID van 128 symbolen.

Smart contracts

Wanneer een eerste (of een nieuwe) revisie van smart contract wordt geregistreerd in het Universa netwerk, ontvangt elke node de body van dit contract (of de revisie ervan). Na controle van de contract body’s met veel verschillende validatiecontroles, én als de node besluit dat het smart contract geldig is en moet worden geregistreerd, begint het de body van dit contract te verwerken met behulp van het HashID algoritme. Elk van de drie verschillende hashfuncties in HashID scant het hele contract en genereert een string van 256 bits (32 bytes). Dus als u dit drie keer doet met drie verschillende hashfuncties, krijg je een uitkomst van 3⋅256 = 768 bits (96 bytes). Deze output is gecodeerd met Base64, die A-Z, a-z, 0-9, het + en het / teken bevat.

De eigenschap van Base64 codering is dat elke 3 bytes van binaire data worden gecodeerd als 4 symbolen van Base64 weergave. Daarom wordt elke HashID meestal weergegeven als 96⋅4 / 3 = 128 symbolen. En dat is het nummer waarmee we zijn begonnen: de HashID van een smart contract is een string van 128 symbolen. En zelfs slechts een enkele bit of letter die in het smart contract is gewijzigd (incidenteel of opzettelijk), veroorzaakt dit aanzienlijke veranderingen in de uitkomst van elk van de drie componenten. Elk van de drie componenten zal op een andere manier veranderen, met behulp van verschillende algoritmen; wat leidt tot een ongelooflijk onvoorspelbare verandering in het HashID resultaat – de gewenste kwaliteit van goede cryptografische hashes.

HashID in Universa

De HashID bevat alle informatie over (‘gereviseerde’) smart contract. Maar nu wordt het op een compacte en niet-omkeerbare manier opgeslagen. Elke node slaat de kennis op dat “het contract met een specifieke APPROVED HashID”.

Dus op een gegeven moment kan een gebruiker besluiten om dit smart contract te gebruiken (bijvoorbeeld een nieuwe revisie maken). Om dit te doen, uploadt de gebruiker de originele body van het smart contract naar het netwerk. De HashID van dit smart contract zal opnieuw worden berekend. Zolang de informatie in het smart contract geldig en ongewijzigd is, zal de HashID berekening dezelfde waarde opleveren als die door de nodes van het netwerk zijn opgeslagen met ‘APPROVED’. Dus de nodes zullen het als goedgekeurd beschouwen en de klant het laten gebruiken. Dit geeft de gegevens een enorm beveiligingsniveau, terwijl slechts een kleine hoeveelheid gegevens wordt opgeslagen in plaats van het hele contractgedeelte.

Samenvatting

We zijn dit artikel begonnen met onveranderlijkheid en vertrouwen zonder de noodzaak van derden. Hoe kan dit worden bereikt?

Het Universa Blockchain protocol maakt gebruik van een hashing met drie algoritmen om de input van een transactie (het smart contract) veilig en privé op te slaan in de blockchain. Als de string van 128 symbolen geldig is, verwerken de nodes de betaling / transactie / revisie. Omdat de HashID bestaat uit hashing functies uit drie volledig algoritmefamilies, geeft dit de gegevens extra beveiliging voor het geval er in een van de volgende kwetsbaarheden in de toekomst worden gevonden. Omdat deze algoritmen bovendien in verschillende landen zijn gestandaardiseerd, is het bovendien mogelijk dat Universa in alle landen aan de normen voldoet.

De string van 128 symbolen wordt geverifieerd door alle nodes van de blockchain. Als ze het als geldig herkennen (en alle andere wijzigingen als legaal), wordt de transactie toegevoegd aan de DAG. Nu wordt het contract onveranderlijk, veilig en privé op een vertrouwde manier opgeslagen zonder dat een enkele vertrouwde derde partij nodig is.

Help translating this post to Engels Duits Frans Italiaans Spaans Kroatisch Russisch. Contact @starnold to participate!

Related posts

Binnen in een Universa Smart Contract

Arnold

Alexander ontmoet Amsterdam 2020

Arnold

Asymmetrische cryptografie in de Universa Blockchain

Arnold

Leave a Comment