Hvordan virker Bitcoin?

Ca. et år siden, da Bitcointoget lige begyndte at samle damp, vendte en ven til mig og spurgte: Så hvorfor kan du ikke bare kopiere en Bitcoin?

Ca. et år siden, da Bitcointoget lige begyndte at samle damp, vendte en ven til mig og spurgte: Så hvorfor kan du ikke bare kopiere en Bitcoin?
Reklame

For et år siden, da Bitcointoget lige begyndte at samle damp, vendte en ven til mig og spurgte: "Så hvorfor kan du ikke bare kopiere en Bitcoin?"

Dette er en forvirring, som mange mennesker har, og en retfærdig: ideen om en digital enhed, der ikke let kan kopieres, er helt uhensigtsmæssig. Faktisk er Bitcoin-netværket en af ​​de fedeste og mindst forstået teknologier i den populære bevidsthed lige nu. Det er en skam, fordi Bitcoins underliggende mekanik er rigtig ret ligetil. Du behøver ikke engang nogen særlig hård matematik, hvis du er villig til at tage et par ting på tro.

Vi har tidligere dækket, hvad Bitcoin er Sådan forklarer Bitcoin til nogen Sådan forklarer Bitcoin til nogen Begrebet kryptokurrency er ikke let at forstå. Hvordan kan man bruge deres computer til at "minde" mønter? Hvor kommer pengene fra? Hvem styrer det? Læs mere, hvordan du bruger det sikkert Sådan bruger du og gemmer bitcoins sikkert, nemt og gratis Sådan bruger du og gemmer bitcoins sikkert, nemt og gratis Læs mere, og endda skrevet en manual om emnet, men vi har har aldrig rigtig forstået hvordan det virker . I dag vil vi dvæle ind i det "hvordan" og taler om de værktøjer, der er nødvendige for at holde "magiske internet penge" kørende bag kulisserne.

Bitcoin til poker

Så hvorfor kan du ikke kopiere en Bitcoin? Svaret, for at lave en lang historie kort, er, at en Bitcoin ikke rigtig er en streng data, der skal kopieres: det er en post i en distribueret hovedbog, der fortæller dig, hvor mange penge hver person har. Årsagen til, at du ikke kan ændre storlegen skyldes Bitcoin-netværkets kloge struktur - der er mange kopier af storlegen, og selve storlegen er designet på en sådan måde, at det er svært at manipulere med.

For at forstå problemet bedre, forestil dig at du skulle forsøge at implementere en pen og papir- bitcoin ( WritCoin ) til et spil poker med dine venner. Du er alt for billig til at købe chips, men du vil stadig holde øje med, hvor mange spille penge alle har, og lad folk flytte det indbyrdes.

dogsplayingbitcoinpoker

En løsning er at vælge nogen, der er troværdige at være record keeper for spillet: de noterer sig hver transaktion som det sker, fortæl dig, om transaktionen lykkedes (dvs. ikke taget nogen til en negativ saldo) og kan tilføje op alle de succesrige transaktioner for at finde ud af, hvor mange penge alle har på et givent tidspunkt. Dette ligner hvordan PayPal og andre centraliserede betalingssystemer fungerer. Som du kan se, er ideen om at kopiere en valutaenhed ikke rigtig fornuftig i dette system - rekordmanden ville ikke tillade det. Bemærk at rekordmageren er i magtposition i dette scenario og kan vælge at give sig selv mange penge, stjæle en lille del af alle brugte penge eller på anden måde misbruge sin position.

Forestil dig nu, at i stedet for at spille poker med dine venner, er du fanget i et high-puck mob-pokerspil, hvor ingen ved bordet stoler på, at andre er optagere (men du er stadig alt for billig til at købe chips).

Dette er en metafor for internettet.

Nu har du et problem: fordi der ikke er tillid, fungerer den centraliserede myndighed ikke længere. Så du kommer med den kloge ide om at lade nogen ved bordet blive en uafhængig rekordholder, hvis de vil. Hver af dem vil notere alle transaktioner. På den måde, når det kommer tid til at finde ud af, hvor meget penge nogen har, hvis en mindretalsgruppe beslutter sig for at lyve om deres optegnelser, vil flertallet fange dem ud. For at holde tingene retfærdige, er alle enige om at udbetale en lille belønning til rekordindehavere i bytte for deres tjenester. Dette devaluerer alle dine penge lidt, men opfordrer folk til at blive rekordhavere og forhindre svig - og i modsætning til en enkelt rekordholder kan pengedevalueringen styres til et overkommeligt niveau. Dette er i en nøddeskal kernen i Bitcoin-netværket. Et netværk af uafhængige computere, der kører speciel software (Bitcoin miners 5 måder du kan lave og mine bitcoin valuta 5 måder du kan lave og mine Bitcoin Valuta Den revolutionerende og kontroversielle betalingsmetode har lavet overskrifter. Der er mange grunde til, at du måske vil have at begynde at udføre transaktioner ved hjælp af Bitcoins. Men først skal du tjene nogle for dig selv. Læs mere) Hold dig selvstændig i stand til at følge med på enhver transaktion, der nogensinde er sket i netværket. Til gengæld har de en chance for at blive belønnet hver gang de bekræfter en gruppe af transaktioner. For at bruge penge, skal du bare tale med netværket og informere dem om ønsket om at gøre det. De noterer transaktionen i deres logfiler (hvis du har nok penge til at klare det), og fortsæt.

Bitcoin og kryptografi

Det er selvfølgelig ikke så simpelt i praksis. Forestil dig problemerne med at forsøge at flytte WritCoin til internettet. Nu har du pludselig brug for en måde at bevise, at det virkelig er dig, der foretager en transaktion (i virkeligheden kan du se, hvem der foretager transaktionsanmodninger - ikke så på internettet). Også på internettet, med et stort netværk, er det svært at konsultere hver enkelt Bitcoin miner i eksistens for at finde ud af, hvor mange penge alle har. Det ville være rart, hvis du bare kunne tale med et par af dem og stadig kunne fortælle, hvem af dem var ærlige. Der er to kryptografiske værktøjer, der gør disse ting mulige online: digitale signaturer og dokumentation for arbejde .

Signerede Transaktioner

En kryptografisk signatur er en smart anvendelse af asymmetrisk kryptering, og det virker således: fra et enkelt hemmeligt stykke information kan du lave et sæt matematiske operationer, der producerer to subsidiære informationsstykker (kaldet en offentlig og en privat nøgle) at alt, hvad der krypteres (krypteret i gibberish) med den private nøgle, kan kun dekrypteres (unscrambled) af den offentlige nøgle. Når disse nøgler er produceret korrekt, er det heller ikke muligt at finde ud af, hvad den private nøgle er, selvom du kender den offentlige nøgle. Forklaring på hvordan disse rent faktisk virker, kræver matematisk abstrakt algebra og ligger langt ud over denne artikels anvendelsesområde. Hvis du vil vide mere, kan du se Wikipedia artiklen om elliptisk kurve kryptografi, kryptosystemet, der bruges af Bitcoin.

Forestil dig et øjeblik at du har en privat nøgle og en offentlig nøgle, som du regelmæssigt bruger. Du kan offentliggøre den offentlige nøgle (som ligner en tilfældig streng af gibberish), og forbinde den med din identitet. Så når du har indsendt noget online, kan du tage din besked, kryptere den med din hemmelige private nøgle og offentliggøre både den krypterede version og den originale besked side om side. Så hvis nogen ville se, om du faktisk skrev det, kunne de bare bruge din offentlige nøgle til at dekryptere den krypterede version og sammenligne den med meddelelsen. Hvis de ikke matchede, ville læseren vide, at din besked var blevet manipuleret. Med andre ord, hvis en ondsindet part ønskede at erstatte din besked med sig selv, ville de ikke have mulighed for at generere en matchende krypteret version af teksten, fordi de ikke kender din private nøgle. Den krypterede version af meddelelsen (eller mere typisk en krypteret hash af meddelelsen, som vi diskuterer om et øjeblik), der er knyttet til selve meddelelsen, kaldes en digital signatur .

asyymetricencryption

Digitale signaturer er, hvordan transaktioner er verificeret i Bitcoin. Du har måske hørt om en "Bitcoin-tegnebog." En Bitcoin-tegnebog er simpelthen et bestemt offentligt / privat nøglepar. Hvis du vil have en Bitcoin-tegnebog, vælger du bare et hemmeligt stykke information (du kan bruge en adgangskode eller få computeren til at udgøre en streng nonsens) og derefter bruge den til at generere din offentlige og private nøgle. Dit offentlige / private nøglepar er din tegnebog - hvis folk ønsker at sende dig penge, giver de dem din offentlige nøgle, og de fortæller netværket, at de gerne vil sende penge til tegnebogen svarende til den offentlige nøgle. Hvis du vil sende penge fra din tegnebog, fortæller du netværket det - og underskriver det med din tilsvarende private nøgle. Således, medmindre nogen får ahold af enten din private nøgle eller din oprindelige hemmelighed, er der ingen måde for dem at forfalske transaktioner fra dig.

Proof-of-Work

I kryptografi er der også et værktøj kaldet hash-funktion. En hash-funktion tager ganske enkelt en stor mængde information som input, og scrambles det ned til en kort streng nonsens (længden af ​​output er altid den samme og afhænger af den funktion, du bruger). Hash-funktioner er følsomme, idet enhver mindre ændring i de oprindelige data fuldstændigt og uigenkaldeligt ændrer strengen af ​​nonsens ("hash"). Som et resultat af dette har hash-funktioner den unikke egenskab at være envejs - givet et stykke information, kan du let hash det, men givet en bestemt hash, er der ingen måde at arbejde baglæns for at finde ud af, hvilken information der var hashed til at skabe det, undtagen ved at gætte tilfældigt. For at lære mere, tjek Wikipedia artiklen om hash funktioner.

hash_function

Hash funktioner er meget nyttige! Den applikation, der er mest relevant for Bitcoin kaldes "proof of work", som er en måde at bevise for en anden, at en vis mængde beregningsarbejde blev udnyttet. Hvis nogen vælger et ord tilfældigt (siger "doppelganger"), og du svarer med et stykke information, hvis hash tilfældigvis er "doppelganger" (eller en streng der ligner det), så ved de, at du brugte en masse tid gætte, før du endelig fandt et stykke information, der fungerede. Således har de bevis for, at du har udført en vis mængde beregningsarbejde. Dette kan bruges til at forhindre e-mail-spam ved at tvinge alle, der forsøger at sende dig en e-mail, for at udfylde et lille bevis på arbejde baseret på deres e-mail-adresse, din e-mail-adresse og tiden. Dette proof-of-work kan være meget nemt, så det er slet ikke ulempe for almindelige mennesker at sende et par e-mails om dagen, men bliver upraktisk dyre for bulkmailere.

I Bitcoin bruges proof-of-work til at forhindre folk i at lyve. Det virker som dette: Når en minearbejder ønsker at tilføje en blok af transaktioner til deres hovedbog, tager de hele blokkæden (en liste over alle de transaktioner, der har fundet sted til dato, som minearbejderen kunne verificere var gyldig), og tilføj det nyeste gruppe af transaktioner til det. De har så hash det hele sammen, og begynder at gøre bevis for arbejdet for den værdi - gætte værdier for hash for at prøve at finde en ny værdi, der er tilstrækkeligt tæt på målværdien. Mens de gør det, gør minearbejdere over hele verden præcis det samme, idet de konkurrerer om at være den første til at finde et bevis for arbejde, der er "godt nok" (en standard, der øges automatisk for at holde øje med Moores lov og den netværkets vækst). Den første der kommer derhen, får en stormfald (i øjeblikket 25 Bitcoins eller omkring $ 15, 600 ved skrivning) i bytte for deres service, og deres succesfulde blok er distribueret til alle de andre minearbejdere og bliver et permanent supplement til blokkæden.

Konsekvensen af ​​dette er, at hvis du vil generere en falsk Blockchain, skal du reproducere alle de proofs of work, der udføres af netværket, hvilket er dyrt. Jo længere tilbage du ønsker at redigere noget, jo mere proofs-of-work baseret på de oplysninger, du skal genoprette. Det er meget usandsynligt, at alle kan producere bedre og hurtigere beviser for arbejde end hele det legitime Bitcoin-minedrift, hvilket betyder, at den blokkæde, der har haft det mest beviser for arbejdet, generelt er den legitime. En anden måde at sige dette på er at ligge i Bitcoin-netværket er svært, fordi det kræver en masse computerkraft at generere en korrekt struktureret løgn. Det betyder, at hvis du vil have et nøjagtigt blockchain, behøver du ikke tale med hver Bitcoin miner og lade dem stemme - du kan bare tale med et par tilfældige minearbejdere, få deres blokker, og hvis der er en konflikt, accepter version med de mest kraftfulde beviser for arbejde, og der er en meget god chance for, at det bliver den rigtige.

Bitcoin i et nøddeskal

Sammenfattende: Bitcoin tegnebøger er offentlige / private nøglepar. Enhver offentlig nøgle kan sende penge til enhver anden offentlig nøgle ved at afgive en erklæring til netværket, der er underskrevet med den tilsvarende private nøgle. Denne erklæring udsendes peer to peer blandt alle minearbejderne, som alle forsøger at generere proofs of-work for alle de transaktioner, de har registreret til dato. Hver gang en af ​​dem genererer et tilstrækkeligt godt bevis for arbejde, bliver de tildelt med nogle Bitcoins, og deres blok bliver en del af den officielle, distribuerede hovedbog. Ved at tilføje transaktionerne i alle blokke kan du finde ud af, hvor mange penge du har - eller nogen anden. Posten er svært at manipulere på grund af vanskeligheden ved at producere proof-of-work hurtigere end resten af ​​netværket.

Det er (temmelig meget) det. Når du først forstår de kryptografiske primitiver i spil, er ideen faktisk ret ligetil. Det skal dog ikke betragtes som at det ikke er bemærkelsesværdigt. Konstruktion af en protokol, der tvinger tusindvis af mennesker over hele verden til at håndtere hinanden ærligt, på trods af deres bedste indsats mod det modsatte, er en enorm sejr for kryptografi og et af de mest kraftfulde ideer fra de sidste par år.

Billedkreditter: Waterloo Hunde Spille Poker, Asymmetrisk Kryptografi, Hash Funktion, Med venlig hilsen Wikimedia, Reservoir Dogs, fra EW.com

In this article