Indholdsfortegnelse:

Hvordan blockchain faktisk fungerer
Hvordan blockchain faktisk fungerer

Video: Hvordan blockchain faktisk fungerer

Video: Hvordan blockchain faktisk fungerer
Video: WW2 Vet Survives Shark Attack, USS Arizona Explosion | Memoirs Of WWII #45 2024, Kan
Anonim

Dette indlæg er beregnet til at fortælle alle, hvorfor blockchain blev opfundet, hvordan kryptovalutaer fungerer, og hvorfor det er det smukkeste system i de senere år set fra et logisk synspunkt.

Jeg vil straks advare dig om, at der under skæringen er et KÆMPE ark med tekst, og hvis du ikke er klar til at "lukke" spørgsmålet om emnet kryptovalutaer én gang for alle, så tilføj et indlæg til dine favoritter lige nu og reserver tid)

Blockchain er en teknologi, ny, mærkelig, uforståelig, men den ser ud til at ændre verden, i modsætning til dine historier. Tilsyneladende er hun hos os i lang tid.

Dette indlæg er skrevet, som om det bliver fortalt til folk, der er meget langt fra computere og kun kender dem overfladisk, for eksempel forestille sig, at han forberedte sig til dine forældre. Jeg kan endda smide det over til mine humaniora og være sikker på, at de vil forstå.

Og Oleg vil hjælpe os alle i denne vanskelige sag. Møde!

Hvis du ikke kan lide Oleg, smider jeg ham ud.

Det grundlæggende: hvorfor har vi brug for blockchain?

Blockchainen blev beskrevet i Satoshi Nakamotos artikel "Bitcoin: A Peer-to-Peer Electronic Cash System". Der beskrev forfatteren på blot otte sider det grundlæggende i Bitcoin-kryptovalutaen, som var baseret på Blockchain-algoritmen.

Liste, der ikke kan ændres

Blockchain - en kæde af blokke eller med andre ord en sammenkædet liste. I en sådan liste refererer hver næste post til en tidligere, og så videre ned i kæden til den allerførste. Som et togs vogne trækker hver enkelt den næste med. Angående listerne er der en god artikel af Nikita Likhachev på TJ, hvor det samme er forklaret for helt nybegyndere. Analogierne er til dels hentet derfra.

Lad os tage et eksempel

Olegs venner låner konstant penge af ham. Oleg er venlig, men ekstremt glemsom. En uge senere husker han ikke længere, hvem der ikke returnerede gælden til ham, men han er flov over at spørge alle om det. Derfor besluttede han en dag at sætte en stopper for dette ved at lave en liste over venner på tavlen hjemme hos ham, som han lånte penge til.

Nu kan Oleg altid gå til bestyrelsen og sørge for, at Max returnerede alt, men Vanya giver ikke allerede 700 rubler. En dag inviterer Oleg Vanya til at drikke en drink i sit hjem. Mens Oleg går på toilettet, sletter Vanya posten "Jeg lånte 200 rubler til Vanya" og skriver i stedet "Vanya gav 500 rubler".

Oleg, der stolede på sin liste, glemmer gælden og mister 700 rubler. Han beslutter sig for på en eller anden måde at bekæmpe det. Sidste år var Oleg på et programmeringskursus, hvor han fik at vide om hashing. Han husker, at enhver streng kan omdannes til et utvetydigt sæt af tegn - en hash, og at ændre et hvilket som helst tegn i strengen vil fuldstændig ændre det.

Tilføjelse af en prik i slutningen ændrede den endelige hash til ukendelighed - du kan bruge den.

Oleg tager den velkendte SHA-256-hash og hash hver post med den og tilføjer resultatet til sidst. Nu kan Oleg sikre sig, at ingen har ændret hans poster ved at hashe dem igen og sammenligne dem med den grønne.

Men EVIL IVAN ved også, hvordan man bruger SHA-256 og kan nemt ændre indgangen sammen med dens hash. Især hvis hashen er skrevet lige ved siden af på tavlen.

Derfor beslutter Oleg sig for større sikkerhed at hash ikke kun selve posten, men tilføjer den sammen med hashen fra den tidligere post. Nu afhænger alle de følgende poster af de foregående. Hvis du ændrer mindst én linje, bliver du nødt til at genberegne hasherne for alle de andre nedenfor på listen.

Men en dag sniger Ivan sig om natten, ændrer den post, han har brug for, og opdaterer hasherne for hele listen til ende. Det tager ham flere timer, men Oleg sover stadig hurtigt og kan ikke høre. Om morgenen opdager Oleg en helt korrekt liste - alle hashes matcher. Men Ivan bedragede ham alligevel, selvom han tilbragte en søvnløs nat på det. Hvordan kan du ellers beskytte dig mod Night Ivan?

Oleg beslutter sig for på en eller anden måde at komplicere sit liv. Nu, for at tilføje en ny post til listen, vil Oleg løse et komplekst problem forbundet med det, for eksempel en matematisk ligning. Han vil tilføje svaret til den endelige hash.

Oleg er god til matematik, men selv det tager ti minutter at tilføje et indlæg. På trods af dette er den brugte tid det værd, for hvis Ivan vil ændre noget igen, bliver han nødt til at genløse ligningerne for hver række, og der kan være dusinvis af dem. Det vil tage meget tid, fordi ligningerne er unikke hver gang og forbundet med en bestemt post.

Men det er lige så enkelt at tjekke listen: Først skal du sammenligne hasherne som før, og derefter tjekke løsningerne af ligningerne ved simpel substitution. Hvis alt konvergerer, ændres listen ikke.

I virkeligheden er det ikke så godt med ligninger: computere løser dem for godt, og hvor man kan gemme så mange unikke ligninger. Derfor kom forfatterne af blockchain op med et smukkere problem: du skal finde sådan et tal (nonce), så den endelige hash af hele posten starter med 10 nuller. Sådan en nonce er svær at finde, men resultatet kan altid kontrolleres med blot øjne.

Nu verificerer Oleg alle hasherne og sørger desuden for, at hver begynder med det angivne antal nuller. Sly Ivan, selv bevæbnet med en kraftig bærbar computer, vil ikke have tid til at genberegne alle hasherne på en nat, så de opfylder betingelsen - der vil ikke være tid nok.

Sådan en liste er faktisk hjemmets blockchain på knæet. Dets sikkerhed er garanteret af matematikere, som beviste, at disse hash ikke kan beregnes hurtigere, undtagen ved brute force. En sådan opregning af hashes for hver post er minedrift, som der i dag vil være meget og detaljeret om.

Centralisering af tillid

Vores venner kunne lide ideen om at føre en falsk liste over "hvem lånte hvem". De vil heller ikke huske, hvem der har betalt for hvem i baren, og hvor meget de stadig skylder - alt er skrevet på væggen. Du diskuterede ideen og besluttede, at nu har du brug for en enkelt liste til alle.

Men hvem skal betros så vigtig bogføring? Når det kommer til penge, kommer tillid jo i højsædet. Vi vil ikke stole på, at det ukendte beholder vores penge. Til dette opfandt vores forfædre banker, som med tiden begyndte at blive tillid til, fordi de er bakket op af en licens, love og forsikring fra centralbanken.

I vennekredsen stoler alle på hinanden, og du kan blot vælge den mest ansvarlige til denne rolle. Men hvad nu hvis spørgsmålet handler om fremmede? En hel by, land eller hele verden, som det er tilfældet med Bitcoin? Generelt kan ingen stole på nogen der.

Decentralisering: ingen stoler på nogen

Så de fandt på en alternativ tilgang: behold en kopi af listen til alle. En angriber skulle således ikke kun omskrive én liste, men også snige sig ind i hvert hus og omskrive listerne der. Og så viser det sig, at nogen førte flere lister derhjemme, som ingen kendte til. Dette er decentralisering.

Ulempen ved denne tilgang er, at for at lave nye poster, skal du ringe til alle andre deltagere og informere hver af dem om de seneste ændringer. Men hvis disse deltagere er sjælløse maskiner, ophører det med at være noget problem overhovedet.

I et sådant system er der ikke et enkelt tillidspunkt, og dermed muligheden for bestikkelse og snyd. Alle deltagere i systemet handler efter en enkelt regel: ingen stoler på nogen. Alle tror kun på de oplysninger, de har til deres rådighed. Dette er hovedloven for ethvert decentraliseret netværk.

Transaktioner

Når du køber en gryde i en butik, indtaster du pinkoden fra dit kort, så butikken kan spørge banken, om du har 35 rubler på din konto. Med andre ord underskriver du en transaktion til 35 rubler med din pinkode, som banken bekræfter eller afviser.

Vores optegnelser af typen "Jeg lånte Vanya 500 rubler" er også transaktioner. Men vi har ikke en bank, der godkender ophavsmanden til transaktionerne. Hvordan kan vi kontrollere, at Ivan ikke stille har tilføjet posten "Max skylder Oleg 100.500 rubler"?

Blockchain bruger mekanismen med offentlige og private nøgler til dette; IT-specialister har længe brugt dem til godkendelse i samme SSH. Jeg forklarede det på mine fingre i indlægget "Sikkerhed, kryptering, cyberpunk" i afsnittet "Introduktion til kryptering".

Kort om, hvordan denne komplekse, men smukke matematik fungerer: du genererer et par lange primtal på din computer - en offentlig og en privat nøgle. Den private nøgle betragtes som superhemmelig, fordi den kan dekryptere det, der er krypteret i offentligheden.

Men det modsatte virker også. Hvis du deler den offentlige nøgle med alle dine venner, vil de være i stand til at kryptere enhver besked for dem, så kun du kan læse den, da du ejer den private.

Men udover dette har den offentlige nøgle en nyttig effekt - med den kan du kontrollere, at dataene er krypteret med din private nøgle, uden at dekryptere selve dataene. Alle disse egenskaber er godt beskrevet i "Chifferens Bog".

Vi er på et decentralt internet, hvor ingen kan stole på. Transaktionen signeres med en privat nøgle og sendes sammen med den offentlige nøgle til et særligt lager - en pulje af ubekræftede transaktioner. Så ethvert medlem af netværket kan bekræfte, at det var dig, der startede det, og ikke en anden ønsker at betale af med dine penge.

Dette sikrer netværkets åbenhed og sikkerhed. Hvis tidligere banker var ansvarlige for dette, så i blockchain, er matematikere ansvarlige for dette.

For almindelige brugere, der ikke ønsker at finde ud af, hvordan man udsteder og opbevarer private nøgler, vil online tegnebogstjenester hjælpe. For at kopiere lange offentlige nøgler laves der praktiske QR-koder. For eksempel Blockchain Wallet, fordi den har en praktisk mobilapplikation og understøtter de to vigtigste kryptovalutaer - BTC og ETH.

Mangel på begrebet "balance"

Ligesom vores bestyrelse består blockchain i det væsentlige kun af transaktionshistorik. Det gemmer ikke balancen i hver tegnebog, ellers ville vi være nødt til at opfinde yderligere beskyttelsesmetoder.

Kun den private nøgle bekræfter ejerskabet af tegnebogen. Men hvordan kan andre medlemmer af netværket sikre sig, at jeg har penge nok til at købe?

Da vi ikke har nogen balance, skal du bevise det. Derfor inkluderer en blockchain-transaktion ikke kun din signatur og hvor meget du vil bruge, men også links til tidligere transaktioner, hvor du har modtaget det nødvendige beløb.

Det vil sige, at hvis du vil bruge 400 rubler, gennemgår du hele din historie med indtægter og udgifter og tillægger din transaktion de indkomster, hvor du fik 100 + 250 + 50 rubler, og beviser derved, at du har disse 400 rubler.

Hvert medlem af netværket vil igen sørge for at tjekke, at du ikke har tilknyttet indkomst to gange. De 300 rubler, som Max gav i sidste uge, har du virkelig ikke brugt endnu.

Sådanne indkomster knyttet til en transaktion kaldes input i blockchain, og alle modtagere af penge kaldes output. Summen af alle input er sjældent helt den samme, som du ønsker at overføre ad gangen - derfor vil en af udgangene oftest være dig selv. Med andre ord ser transaktionen på blockchain ud som "Jeg fik 3 og 2 BTC, jeg vil overføre 4 BTC fra dem og returnere de resterende 1 BTC tilbage."

Det smukke ved blockchain er, at input ikke behøver at komme fra én tegnebog. Det er trods alt kun nøglen, der er tjekket. Hvis du kender den private nøgle til alle input, så kan du nemt vedhæfte dem til din transaktion og betale med disse penge. Som om du betaler i et supermarked med flere kort, hvorfra du kender pinkoden.

Men hvis du mister din private nøgle, din disk dør eller din bærbare computer bliver stjålet, vil dine bitcoins gå tabt for altid. Ingen kan bruge dem som input til nye transaktioner.

Dette beløb vil være utilgængeligt for hele verden for evigt – som om du brænder et bundt pengesedler. Der er ikke en enkelt bank, hvor du kan skrive en ansøgning med en kopi af dit pas, og han vil printe det. Dette kræver en yderligere frigivelse af nye bitcoins "ud af den blå luft".

Dobbelt forbrugsproblem

Ovenfor sagde jeg, at transaktioner føjes til en særlig "pulje af ubekræftede transaktioner". Hvorfor har vi brug for en form for mellemliggende enhed, hvis vi faktisk allerede har færdige underskrevne transaktioner? Hvorfor ikke skrive dem direkte til blockchain?

Fordi signalerne fra punkt A til punkt B altid går med en forsinkelse. To transaktioner kan gå helt forskellige veje. Og den transaktion, der blev iværksat først, kan nå frem til modtageren senere, fordi den tog en længere vej.

Dette resulterer i dobbeltforbrug, når de samme penge blev sendt til to adressater på én gang, som de ikke engang ville gætte på. Dette er ikke for at aflevere regninger fra hånd til hånd.

For et decentralt netværk, hvor ingen kan stole på, er dette problem særligt akut. Sådan sikrer du dig, at en transaktion bestemt var før en anden? Bed afsenderen om at sy forsendelsestiden ind i det, ikke? Men husk – du kan ikke stole på nogen, heller ikke afsenderen.

Tiden på alle computere vil nødvendigvis være forskellig, og der er ingen garanteret måde at synkronisere dem på. En kopi af blockchain er gemt på hver computer i netværket, og hver deltager stoler kun på den.

Hvordan kan du sikre dig, at en transaktion var tidligere end en anden?

Svaret er enkelt: det er umuligt. Der er ingen måde at bekræfte tidspunktet for en transaktion på et decentraliseret netværk. Og løsningen på dette problem er den tredje vigtige blockchain-idé, som Satoshi opfandt, og som mærkeligt nok er stavet lige i hans navn - blokke.

Blokke er rygraden i blockchain

Hver fungerende computer på netværket vælger enhver transaktion, som den kan lide fra den generelle pulje. Normalt kun for den højeste kommission, han kan tjene på det. Så han samler transaktioner for sig selv, indtil deres samlede størrelse når den forhandlede grænse. I Bitcoin er denne blokstørrelsesgrænse 1 MB (efter SegWit2x vil den være 2 MB), og i Bitcoin Cash - 8 MB.

Hele blockchain er i det væsentlige en liste over sådanne blokke, hvor hver enkelt refererer til den forrige. Den kan bruges til at spore enhver transaktion i hele historien og afvikle blockchain selv til den allerførste rekord.

Det er denne liste, der nu vejer hundredvis af gigabyte og skal downloades fuldt ud til alle computere, der ønsker at deltage i netværket (men det er ikke nødvendigt for blot at oprette transaktioner og overføre penge). Den downloades på samme måde fra alle de nærmeste computere på netværket, som hvis du downloader en serie fra torrents, udkommer der kun nye nye afsnit i den hvert 10. minut.

Efter at have skrevet transaktioner fra puljen for sig selv, begynder computeren at komponere den samme uforglemmelige liste ud fra dem, som vi gjorde i begyndelsen af indlægget på tavlen derhjemme.

Det er kun han, der laver det i form af et træ - hashes optegnelserne parvis, så er resultatet igen parvis, og så videre, indtil der kun er én hash tilbage - træets rod, som føjes til blokken. Hvorfor netop med et træ - jeg fandt ikke svaret, men jeg formoder, at det simpelthen er hurtigere på den måde. Læs mere på wikien: Merkle træ.

Da den nuværende blockchain allerede er downloadet, ved vores computer præcis, hvad den sidste blok er i den. Han skal bare tilføje et link til det i blokoverskriften, hash det hele og fortælle alle andre computere på netværket "se, jeg lavede en ny blok, lad os tilføje den til vores blockchain".

Resten skal tjekke, at blokken er bygget efter alle reglerne, og at vi ikke har tilføjet unødvendige transaktioner der, og så tilføje dem til vores kæder. Nu er alle transaktioner i den bekræftet, blockchain er øget med en blok og alt går godt, ikke?

Men nej. Tusindvis af computere arbejder på netværket samtidigt, og så snart de samler en ny blok, skynder de sig næsten samtidigt for at informere alle om, at deres blok blev oprettet først. Og fra det foregående afsnit ved vi allerede, at i et decentralt netværk er det umuligt at bevise, hvem der virkelig var den første.

Som i skolen, hvor alle løse en svær test, skete det sjældent, at selv fremragende elever tog svarene på samme tid.

Men hvis det for en person er en vanskelig opgave at planlægge en ferie, så han kommer på maj-ferien, og billetter til havet er billige, så er det for en computer at tilføje et sådant tal (ikke) til slutningen af blokere, så SHA-256-hashen for hele blokken som et resultat begynder, lad os sige 10 nuller. Dette er problemet, der skal løses for at tilføje en blok til Bitcoin-netværket. For andre netværk kan opgaverne være forskellige.

Så vi kommer til begrebet minedrift, som alle har været så besat af de seneste år.

Minedrift

Bitcoin-minedrift er ikke en slags helligt sakramente. Minedrift handler ikke om at finde nye bitcoins et sted i dybet af internettet. Minedrift er, når tusindvis af computere rundt om i verden summer i kældre, gennemgår millioner af tal i sekundet og forsøger at finde en hash, der starter med 10 nuller. De behøver ikke engang at være online for at gøre dette.

Videokort med hundredvis af parallelle kerner løser dette problem hurtigere end nogen CPU.

Hvorfor præcis 10 nuller? Og bare sådan giver det ingen mening. Så kom Satoshi med. Fordi dette er et af de problemer, som der altid er en løsning på, men det kan bestemt ikke findes hurtigere end en lang monoton opremsning af muligheder.

Kompleksiteten af minedrift afhænger direkte af netværkets størrelse, det vil sige dets samlede effekt. Hvis du opretter din egen blockchain og kører den selv derhjemme på to bærbare computere, så burde opgaven være enklere. For eksempel så hashen starter med kun ét nul, eller så summen af de lige cifre er lig med summen af de ulige.

Det vil tage flere årtier for én computer at finde en hash, der starter med 10 nuller. Men hvis du kombinerer tusindvis af computere i et enkelt netværk og søger parallelt, så er dette problem ifølge sandsynlighedsteorien løst i gennemsnit på 10 minutter. Dette er tidspunktet, hvor en ny blok dukker op i bitcoin blockchain.

Hvert 8.-12. minut finder nogen på jorden sådan en hash og får det privilegium at annoncere deres opdagelse til alle, og derved undgå problemet med, hvem der var den første.

For at finde et svar modtager computeren (fra og med 2017) 12,5 BTC - dette er mængden af belønning, der genereres af bitcoin-systemet "ud af den blå luft" og falder hvert fjerde år.

Teknisk betyder det, at hver minearbejder altid tilføjer en anden transaktion til sin blok - "opret 12,5 BTC og send dem til min tegnebog". Når du hører "antallet af bitcoins i verden er begrænset til 21 millioner, nu har de allerede ansat 16 millioner" - det er de belønninger, som netværket genererer.

Gå og se en rigtig live Bitcoin-blok på et af de dedikerede websteder. Der er også transaktioner med input og output, og hele 18 nuller i begyndelsen og alle de ovenfor beskrevne hashes.

Det er minearbejderne, der tilføjer de nye transaktioner til blockchain. Så hvis nogen fortæller dig, at han vil "lave en blockchain for ***", er det første spørgsmål, han skal svare på, hvem der vil mine på det og hvorfor. Oftest er det rigtige svar "det vil alle, for til minedrift giver vi vores mønter, som vil vokse, og det er rentabelt for minearbejdere". Men det gælder ikke alle projekter.

For eksempel opretter et eller andet sundhedsministerium i morgen sin egen lukkede blockchain for læger (og de vil have det), hvem vil mine det? Weekend terapeuter?

Men hvad vil være fordelen for minearbejdere senere, når belønningerne forsvinder eller bliver sparsomme?

Ifølge Skaberens idé vil folk på det tidspunkt skulle tro på virkeligheden af bitcoin, og minedrift vil begynde at betale sig med det beløb, der er inkluderet i hver transaktion. Det er her, alt går: tilbage i 2012 var alle provisioner nul, minearbejdere udgik kun for belønninger fra blokke. I dag kan en handel med nul kommission hænge i puljen i flere timer, fordi der er konkurrence, og folk er villige til at betale for fart.

Det vil sige, at essensen af minedrift er at løse meningsløse problemer. Kunne al denne kraft ikke bruges til noget mere nyttigt – søgen efter en kur mod kræft, for eksempel?

Essensen af minedrift er at løse ethvert beregningsproblem. Denne opgave bør være enkel nok til, at netværksdeltagere har en stabil sandsynlighed for at finde et svar - ellers vil transaktioner blive bekræftet for altid. Forestil dig, at du ved kassen i en butik skal vente en halv time hver gang på, at banken bekræfter din transaktion. Ingen vil bruge sådan en bank.

Men opgaven skal samtidig være svær, så alle netbrugere ikke finder svaret på én gang. For i dette tilfælde vil de annoncere mange blokke med de samme transaktioner til netværket, og der vil være mulighed for "dobbelt spild", som jeg nævnte. Eller endnu værre - at opdele en enkelt blockchain i flere grene, hvor ingen kan finde ud af, hvilken transaktion der er bekræftet, og hvilken der ikke er.

Hvis en belønning på 12,5 BTC kun uddeles én gang hvert 10. minut og kun én person, der fandt blokken, viser det sig, at jeg er nødt til at spilde videokort i flere år i håb om, at jeg en dag vil tabe 40.000 $ (ved kl. nuværende valutakurs)?

Dette er præcis tilfældet for bitcoin. Men sådan var det ikke altid. Tidligere var netværket mindre, kompleksiteten er lavere, hvilket betyder, at sandsynligheden for egenhændigt at finde en hash til en ny blok er højere. Men så var bitcoin ikke så dyrt.

Nu er der ingen, der udvinder bitcoins alene. Nu er deltagerne forenet i særlige grupper - minepuljer, hvor alle sammen forsøger at finde den rigtige hash.

Hvis mindst én fra gruppen finder, så deles hele belønningen mellem deltagerne, afhængig af deres bidrag til det fælles arbejde. Det viser sig, at du miner, og du får en krone af den samlede andel hver uge.

Men solo-mining er ganske muligt på andre netværk. Indtil for nylig var det nemt at mine Ethereum, hvor blokke findes hvert 10. sekund. Blokbelønningen er meget lavere der, men sandsynligheden for at tjene en pæn krone er højere.

Så vi kommer til at brænde tusindvis af videokort forgæves, og der er ingen vej ud?

Ja, men der er ideer. Minedriften, som jeg beskrev, er klassisk og hedder Proof-of-Work (bevis for arbejde). Det vil sige, at hver maskine beviser, at den virkede til gavn for netværket ved at løse meningsløse problemer med en given sandsynlighed.

Men nogle fyre begynder at lave blockchains med andre typer minedrift. Nu er det næstmest populære koncept Proof-of-Stake (proof of stake). I denne type minedrift, jo flere "mønter" en netværksdeltager har på sin konto, jo mere sandsynligt er det, at han indsætter sin blok i blockchain. Som den mest højrøstede fyr i landsbyen.

Du kan tænke på andre typer minedrift. Som allerede foreslået kan alle computere på netværket lede efter en kur mod kræft, kun du skal finde ud af, hvordan du i dette tilfælde kan registrere deres bidrag til systemet. Jeg kan jo erklære, at jeg også deltager, men sluk mit videokort og tæl ikke noget.

Hvordan kvantificerer man hver enkelt deltagers bidrag til at finde en kur mod kræft? Hvis du finder på det - vover du at skære din CancerCoin, er en hype i medierne garanteret for dig.

Blockchain

Forestil dig en situation, hvor to minearbejdere, trods al vores sandsynlighedsteori, stadig formåede at finde det rigtige svar på samme tid. De begynder at sende to helt rigtige blokke over netværket.

Disse blokke er garanteret forskellige, for selvom de på mirakuløs vis valgte de samme transaktioner fra puljen, lavede helt identiske træer og gættede det samme tilfældige tal (nonce), vil deres hashes stadig være forskellige, da hver enkelt vil skrive sit tegnebogsnummer i blokken for belønning.

Nu har vi to gyldige blokke, og igen opstår problemet med, hvem der skal overvejes først. Hvordan vil netværket opføre sig i dette tilfælde?

Blockchain-algoritmen siger, at netværksdeltagere blot accepterer det første rigtige svar, der når dem. Så lever de ud fra deres eget billede af verden.

Begge minearbejdere vil modtage deres belønning, og alle de andre begynder at mine, idet de stoler på den sidste blok, de personligt modtog, og kasserer alle resten er re-korrekte. To versioner af den korrekte blockchain vises på netværket. Sådan er paradokset.

Dette er en rutinesituation, hvor sandsynlighedsteori hjælper igen. Netværket fungerer i sådan en todelt tilstand, indtil en af minearbejderne finder den næste blok til en af disse kæder.

Så snart en sådan blok er fundet og indsat i kæden, bliver den længere, og en af aftalerne i blockchain-netværket er inkluderet: under alle betingelser accepteres den længste blockchain som den eneste sande for hele netværket.

Den korte kæde bliver, på trods af al dens korrekthed, afvist af alle deltagere i netværket. Transaktioner fra den returneres til puljen (hvis de ikke er blevet bekræftet i en anden), og deres behandling begynder på ny. Minearbejderen mister sin belønning, fordi hans blok ikke længere eksisterer.

Med netværkets vækst går sådanne tilfældigheder fra "meget usandsynligt" ind i kategorien "godt, nogle gange sker det." Oldtimere siger, at der var tilfælde, hvor en kæde på fire blokke blev tabt på én gang.

På grund af dette er der opfundet tre ende af kædens usikkerhedsregler:

1. Belønninger for minedrift kan kun bruges efter yderligere 20 bekræftede blokke efter modtagelse. For Bitcoin er det omkring tre timer.

2. Hvis bitcoins blev sendt til dig, kan du først bruge dem som input i nye transaktioner efter 1-5 blokke.

3. Regel 1 og 2 er blot stavet i indstillingerne for hver klient. Ingen overvåger deres overholdelse. Men den længste kædelov vil stadig udslette alle dine transaktioner, hvis du forsøger at narre systemet til ikke at håndhæve dem.

Forsøger at snyde blockchain

Nu hvor du ved alt om minedrift, blockchainens enhed og reglen om den længste kæde, har du måske et spørgsmål: er det muligt på en eller anden måde specifikt at overhale blockchainen ved selv at lave den længste kæde og derved bekræfte dine falske transaktioner.

Lad os sige, at du har den mest kraftfulde computer på jorden. Google og Amazon datacentre stiller til din rådighed, og du forsøger at beregne en sådan kæde, der bliver den længste blockchain i netværket.

Du kan ikke tage og straks beregne flere blokke af kæden, fordi hver næste blok afhænger af den forrige. Så beslutter du så hurtigt som muligt at tælle hver blok på dine enorme datacentre parallelt med, hvordan alle andre deltagere fortsætter med at øge den primære blockchain. Er det muligt at overhale dem? Sandsynligvis ja.

Hvis din computerkraft er mere end 50 % af kraften hos alle netværksdeltagere, så vil du med 50 % sandsynlighed være i stand til at opbygge en længere kæde hurtigere end alle de andre tilsammen. Dette er en teoretisk mulig måde at narre blockchain ved at beregne en længere kæde af transaktioner. Så vil alle transaktioner i det rigtige netværk blive betragtet som ugyldige, og du vil samle alle belønningerne og starte en ny milepæl i kryptovalutaens historie, som kaldes "blockchain division". Engang, på grund af en fejl i koden, var dette tilfældet med Ethereum.

Men i virkeligheden kan intet datacenter i kraft af strøm sammenlignes med alle computere i verden. Halvanden milliard kinesere med icics, yderligere halvanden milliard sultne indianere med minedrift og billig elektricitet – det er en enorm computerkraft. Ingen i verden kan endnu konkurrere med dem alene, ikke engang Google.

Det er som at gå ud på gaden og prøve at overbevise alle mennesker i verden om, at dollaren nu er 1 rubel værd og være i god tid, før medierne afslører dig. Og hvis det lykkes dig at overbevise alle, kan du kollapse verdensøkonomien. I teorien, er det ikke muligt? Men i praksis var der af en eller anden grund ingen, der lykkedes.

Blockchain hviler også på denne sandsynlighed. Jo flere deltagere-minearbejdere, jo mere sikkerhed og tillid til netværket. Derfor, når endnu en stor minedrift dækkes i Kina, kollapser raten. Alle er bange for, at der et sted i verden var et ondt geni, som allerede havde samlet en pulje af minearbejdere med en kapacitet på ~49%.

Konklusion

Blockchain er ikke et strengt defineret sæt algoritmer. Det er en struktur til at opbygge et falsk netværk mellem deltagere, hvor ingen kan stole på nogen. Mens du læste, har du sikkert haft den tanke mere end én gang, at "du kan gøre det sådan her, og det vil være endnu mere nyttigt". Det betyder, at du forstår blockchain, tillykke.

Nogle fyre i verden forstod det også og ønskede at forbedre eller tilpasse sig nogle specifikke opgaver. Kryptovalutaer er ikke det samme, selvom der også er mange af dem. Her er en kort liste over nogle af de ideer og projekter, der har vundet en vis popularitet takket være gentænkningen af blockchain-ideen.

Ethereum

"Ethers" er det næstmest populære ord, du hører i krypto-hype-nyheder, efter Bitcoin. For almindelige mennesker er dette en anden kryptovaluta og en måde at gøre det mest trendy kaldet ICO. Udviklerne på webstedet beskriver Ethereum som "en blockchain-bygger til dine behov." Det er også muligt, ja.

Men hvis du graver endnu dybere, er ether ikke bare et netværk af mønter. Dette er en enorm global computermaskine, hvor brugere udfører koden for andres programmer (smart kontrakter), og modtager en belønning for hver linje, der udføres. Og alt dette er decentraliseret, uforgængeligt og med alle garantier fra blockchain.

Vi kan tale om Ethereum og smarte kontrakter så længe, at det vil være nok til endnu et sådant indlæg. Derfor vil vi agere i stil med topbloggere: Hvis dette indlæg aktivt repostes og retweetes, og på fredag får det mindst 1.500 unikke visninger, vil jeg skrive en efterfølger om Ethereum og smarte kontrakter.

Anbefalede: