Hvordan SHA256 og minedrift beskytter Bitcoin-netværket PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Hvordan SHA256 og minedrift beskytter Bitcoin-netværket

Hvordan forsvares Bitcoin af energi? Og hvad er en nonce? Disse spørgsmål og flere er besvaret indeni!

Hvordan minedrift fungerer, er fascinerende. Når jeg forklarer det til folk, nyder jeg at se deres ansigt i det øjeblik, deres sind er blæst. Jeg vil forklare det her, men ved bare, jeg forestiller mig alle dine ansigter, mens dit sind blæser!

Jeg skal starte med hash-funktioner. Uden hash-funktioner ville Bitcoin ikke være muligt. Lad mig først forklare, hvad de er, ikke kun så du kan lyde cool til fester, men også fordi det er grundlæggende for at forstå, hvordan Bitcoin fungerer - især minedrift, men også transaktioner - under hætten.

Du behøver ikke at forstå, hvordan Bitcoin fungerer for at få gavn af det, ligesom du ikke behøver at forstå, hvordan TCP/IP fungerer for at bruge internettet. Men fortsæt, for det er ret interessant, og jeg vil gøre det let at forstå, det lover jeg.

Hash-funktioner

Lad os starte med et skema, som jeg vil forklare nedenfor...

Hvordan SHA256 og minedrift beskytter Bitcoin-netværket PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
(Grafik/@jirols_btc)

Til venstre er input, midten er funktionen, og til højre er output. Indgangen kan være enhver data, så længe den er digital. Det kan være af enhver størrelse, forudsat at din computer kan klare det. Dataene sendes til SHA256-funktionen. Funktionen tager dataene og beregner et tilfældigt udseende tal, men med særlige egenskaber (omtales senere).

Den første Secure Hash Algorithm (SHA) var oprindeligt udviklet af NSA og der er mange forskellige versioner nu (Bitcoin bruger SHA256). Det er et sæt instruktioner til, hvordan man blander dataene sammen på en meget kompliceret, men specificeret måde. Instruktionerne er ikke en hemmelighed, og det er endda muligt at gøre det i hånden, men det er meget kedeligt.

For SHA256 er outputtet et 256-bit tal (ikke en tilfældighed).

Et 256-bit tal betyder et binært tal på 256 cifre. Binær betyder, at værdien er repræsenteret med to symboler, enten 0 eller 1. Binære tal kan konverteres til et hvilket som helst andet format, for eksempel decimaltal, som vi kender til.

Selvom funktionen returnerer et 256-cifret binært tal, er værdien normalt udtrykt i hexadecimalt format, 64 cifre langt.

Hexadecimal betyder, at i stedet for 10 mulige symboler, som vi er vant til med decimal (0 til 9), har vi 16 symboler (de ti, vi er vant til, 0-9, plus bogstaverne a, b, c, d, e, og f, som har værdierne 11 til 15). Som et eksempel, for at repræsentere værdien af ​​decimal 15 i hexadecimal, skriver vi bare "f", og det er den samme værdi. Der er masser af information tilgængelig online med en hurtig Google-søgning, hvis du har brug for mere uddybning.

For at demonstrere SHA256 i aktion kan jeg tage tallet 1 og køre det igennem en online hash-beregner, og fik dette output (i hexadecimal):

Hvordan SHA256 og minedrift beskytter Bitcoin-netværket PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Den øverste boks er input, den nederste boks er det resulterende output.

Bemærk at alle computere i verden vil producere det samme output, forudsat at inputtet er det samme og SHA256-funktionen bruges.

Det hexadecimale tal output, hvis det konverteres til decimal, er (bemærk, at det kræver flere cifre at skrive):

48,635,463,943,209,834,798,109,814,161,294,753,926,839,975,257,569,795,305,637,098,542,720,658,922,315

Og konverteret til binær er det:

11010111000011010110010011100111111111100110100111111001110000110011101011010111000000001001110111111110101101000111111010101110100011110101101101001001110101010100010001011110001110101001001110000000001111001010010110111011011011110000111010110110100101111010111001101011100110101110011010111001101011100110101110011010111001101011100111

Bare af interesse, her er den samme værdi i base 64.

1w1k5/5p+cM61wCd/rR+ro9bSdVEXjqTgDylu28OtpY=

Bemærk, at den mindst mulige værdi, SHA256 kunne returnere, er nul, men LENGDEN er stadig 256 bit. Sådan er nul repræsenteret:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Og den størst mulige værdi er:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

I decimal er det:

115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,935

I hexadecimal er det:

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Bemærk, at der er præcis 64 F'er.

Nul i hexadecimal kan simpelthen skrives som et enkelt nul, men for hash-output er det 64 af dem for at overholde kravet om et output med fast størrelse:

0000000000000000000000000000000000000000000000000000000000000000

Her er en oversigt over nogle fakta om hash-funktionen, som er vigtige at værdsætte:

  • Indgangen kan ikke bestemmes ud fra outputtet
  • Indgangen kan være en hvilken som helst længde
  • Udgangen er altid den samme længde
  • Outputtet vil altid blive gengivet identisk, hvis du giver det samme input.
  • Enhver ændring af input, uanset hvor lille, vil forårsage et uforudsigeligt og vildt anderledes output
  • Outputtet er tilsyneladende tilfældigt, men er faktisk deterministisk (hvilket betyder, at det er beregnet og reproducerbart)
  • Udgangen kan ikke forudsiges. Det kan kun beregnes, og det kræver en målbar mængde arbejde af en computer (og timer med blyant og papir! Gør det ikke.)

Nu hvor du forstår det grundlæggende koncept for, hvad en hash er, kan du forstå forklaringen på, hvordan Bitcoin-minedrift fungerer.

Men inden du går videre, anbefaler jeg, at du går ind på en online hash-beregner og leger lidt med den og tester selv, hvad jeg har sagt om hash-funktioner. Jeg kan lide denne.

Mining

Jeg vil starte med at demonstrere et arbejdskoncept, som er derfra "proof-of-work" i Bitcoin kommer.

Gå til online hash-beregneren og skriv "Jeg opretter 50 bitcoins og betaler mig selv dette beløb."

Skriv det nøjagtigt, der skelnes mellem store og små bogstaver, inklusive punktum. Du bør få dette output:

Hvordan SHA256 og minedrift beskytter Bitcoin-netværket PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Lad os nu oprette en regel, der siger, at for at denne betalingsmeddelelse skal være gyldig, skal vi have hashen til at starte med et nul. For at gøre det skal vi på en eller anden måde ændre inputtet. Men som du har lært, er det ikke forudsigeligt, hvad outputtet ville være for et givet input. Hvilken ændring kan vi foretage for at sikre en hash, der starter med nul?

Vi er nødt til at tilføje data ved hjælp af trial-and-error. Men vi ønsker heller ikke at ændre betydningen af ​​inputmeddelelsen. Så lad os oprette et felt (en allokeret sektion) kaldet en "nonce", som vil indeholde en nonsensværdi.

Ordet "Nonce" formodes at være afledt af "nummer kun brugt én gang", men jeg kan ikke se det.

Bemærk nedenfor, hvordan bare tilføjelse af "Nonce:" som en ekstra feltoverskrift ændrer hash-outputtet.

Hvordan SHA256 og minedrift beskytter Bitcoin-netværket PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Outputtet starter stadig ikke med et "0", så lad os tilføje noget nonsens (jeg tilføjede et meningsløst "x"):

Hvordan SHA256 og minedrift beskytter Bitcoin-netværket PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Det starter stadig ikke med et nul. Jeg prøvede nogle flere tegn, indtil hashen startede med et nul:

Hvordan SHA256 og minedrift beskytter Bitcoin-netværket PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Sådan der. Nu, i henhold til de vilkårlige regler, jeg satte for denne foregivne version af Bitcoin, er teksten i inputvinduet en gyldig blok med en enkelt transaktion, der betaler mig 50 bitcoin.

Bemærk, at Bitcoin-blokke i det væsentlige er sider i en hovedbog. Hver blok er nummereret og skaber nye bitcoin sammen med en liste over transaktionerne mellem brugere. Denne rekord er, hvor bitcoin bor.

Nu en ny regel. For den næste blok skal hashen fra den forrige blok inkluderes. Jeg tilføjer lidt kompleksitet og tilføjer et par flere felter for at nærme mig, hvad en rigtig Bitcoin-blok har.

Hvordan SHA256 og minedrift beskytter Bitcoin-netværket PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Hashen starter med et "f" ikke "0", så jeg bliver nødt til at prøve nogle værdier i nonce-feltet:

Hvordan SHA256 og minedrift beskytter Bitcoin-netværket PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Denne gang var jeg heldigere og fandt en passende nonce efter kun fire forsøg. Husk, at for den første blok tog det 22 forsøg. Der er en vis tilfældighed her, men generelt er det ikke så svært at finde en gyldig hash, hvis alt, hvad vi prøver at få, er et nul. Der er 16 mulige værdier for det første hash-ciffer, så jeg har en 1 til 16-chance for, at enhver ændring, jeg foretager i inputfeltet, vil resultere i, at det første hash-ciffer er "0".

Bemærk, at Bitcoins felter er sådan her, men der er flere detaljer, som jeg ikke har tilføjet. Dette er blot for at illustrere en pointe, ikke nødvendigvis for at detaljere præcis, hvordan en Bitcoin-blok ser ud.

Jeg vil tilføje et tidsfelt til næste blok, da jeg har brug for det for at forklare "vanskelighedsjusteringen" næste:

Hvordan SHA256 og minedrift beskytter Bitcoin-netværket PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Ovenfor er blok nummer tre. Det inkluderer den forrige bloks hash, og nu er jeg også begyndt at inkludere tiden. Den nonce, jeg fandt, fik hashen til at starte med et nul (jeg blev bare ved med at skrive et "1", indtil hash-målet blev nået).

Der er nok her nu, til at jeg kan begynde at forklare et par interessante begreber om Bitcoin blockchain og minedrift.

At vinde en blok

Mineprocessen er konkurrencedygtig. Den, der først producerer en gyldig blok, skal betale sig selv en fast blok-belønning. En minearbejder, der producerer det samme bloknummer lidt senere, får intet - den blok bliver afvist. At forklare, hvorfor det er, vil forårsage for meget afledning nu, så jeg vil forklare det i appendiks.

Efter blok tre er fundet og udsendt til alle (alle Bitcoin-noder), holder alle minearbejdere op med at arbejde på, hvad der ville have været deres version af blok tre. De begynder at bygge oven på den vellykkede blok tre (ved at trække dens blokhash frem til en ny blok) og begynder at arbejde på at finde en passende nonce til blok fire. Vinderen offentliggør resultatet og så går alle i gang med blok fem osv.

Med hver blok bliver der skabt nye bitcoin, som tilsammen udgør det samlede udbud indtil videre. Hvis der er mange minearbejdere, så skal vi statistisk set forvente, at blokke bliver produceret hurtigere, og derfor vil bitcoin blive skabt hurtigere. Problem, ikke?

Da Satoshi Nakamoto søgte et begrænset udbud af bitcoin med en forudsigelig udstedelse over tid, tænkte han på dette problem og introducerede en negativ feedback-loop for at holde blokproduktionen med 10-minutters intervaller i gennemsnit. Hvordan? Se om du kan finde på en måde. Hold pause et øjeblik og tænk - se, om du kan finde på den samme geniale løsning, og læs videre, når du giver op.

NODER: Jeg nævner "gyldige" blokke. Og hvad så? Hvem tjekker? Bitcoin noderne er. En Bitcoin-node beholder en kopi af blockchain indtil videre og følger et sæt regler for at kontrollere, at nye blokke er inden for reglerne og afvise dem, der ikke er. Hvor er reglerne? I koden. En computer, der downloader Bitcoin-koden, er en node.

Vanskelighedsjusteringen

Den gennemsnitlige tid til at oprette nye Bitcoin-blokke beregnes af hver node for hver 2016-blokke (det er derfor, tidsfeltet er nødvendigt). Dette er en del af protokollen og reglerne, som noderne følger. En formel anvendes til at justere antallet af nuller, hver blokhash skal starte med for at være gyldig.

Strengt set er det ikke antallet af nuller, der justeres, men en målværdi, som hashen skal være under, men det er lettere at forklare, at tænke på indledende nuller.

Hvis blokke bliver produceret for hurtigt, så justeres hash-målet i henhold til foruddefinerede regler, som alle noder følger identisk (det er i deres kode).

For at holde det simpelt for mit eksempel, lad os sige, at andre mennesker konkurrerer med mig, blokke sker for hurtigt, og nu skal den fjerde blok bruge to nuller i stedet for én, ifølge en imaginær beregning.

Det kommer til at tage mig lidt længere tid at få to nuller, men vi forestiller os, at der er mange andre mennesker, der konkurrerer med mig, så den samlede tid, det tager for nogen at finde en blok, holdes til et mål.

Her er den næste blok:

Hvordan SHA256 og minedrift beskytter Bitcoin-netværket PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Læg mærke til tiden. Der gik mere end 10 minutter siden forrige blok (jeg har lige nået tiden op til at demonstrere). Målet på 10 minutter er sandsynligt; det vides aldrig præcis, hvornår den næste blok bliver fundet.

Jeg rodede rundt på tastaturet i et minut, indtil der dukkede to nuller op. Dette var eksponentielt sværere end at finde et enkelt nul. Chancen for at finde to nuller i træk er 1 ud af 162, eller en 1 til 256 chance.

Hvis flere mennesker skulle deltage i minedriften og konkurrencen om nye bitcoin, så vil der til sidst kræves tre nuller.

Jeg har lige slået den sidste rigtige Bitcoin-blok op, som indeholder hashen fra den forrige blok. Hashen var:

000000000000000000084d31772619ee08e21b232f755a506bc5d09f3f1a43a1

Det er 19 nuller! Der er 1 ud af 1619 chance for at finde en sådan blok ved hvert forsøg. Bitcoin minearbejdere gør mange, mange forsøg i sekundet, samlet over hele verden.

Antallet af forsøg pr. sekund er kendt som "hash rate". I øjeblikket er den anslåede hashrate i verden lige under 200 millioner terahashes i sekundet (én terahash er en billion hash). Med så mange forsøg i sekundet findes en blok med en hash, der starter med 19 nuller, omkring hvert 10. minut.

I fremtiden, efterhånden som flere minearbejdere slutter sig til, vil hash-raten stige, blokke vil blive fundet hurtigere, og Bitcoins sværhedsgrad vil tilpasse sig til at kræve 20 nuller, hvilket vil presse blokproduktionen tilbage til omkring 10 minutter.

Halveringen

Da Bitcoin først startede, blev der produceret 50 bitcoin med hver blok. Reglerne for Bitcoin blockchain specificerer, at belønningen efter hver 210,000 blokke vil blive halveret. Dette øjeblik er kendt som "halveringen" og sker omkring hvert fjerde år. Halveringen kombineret med sværhedsgraden ved at holde blokke med 10-minutters intervaller betyder, at omkring år 2140 vil blokbelønningen være 0.00000001, eller 1 satoshi, den mindste enhed af en bitcoin, og den kan ikke halveres længere. Minedrift stopper ikke, men blokbelønningen vil være nul. Fra det øjeblik vil der ikke blive oprettet nye bitcoin fremover, og antallet af bitcoin er matematisk beregneligt og tæt nok på 21 millioner mønter. Sådan kendes det samlede udbud - det er programmatisk indstillet.

Selv med blokbelønningen på nul, vil minearbejderne stadig blive tilskyndet til at fortsætte med at arbejde for at tjene transaktionsgebyrer.

Hvordan er blokbelønningen helt præcist halveret? Det er i koden, der holdes af noderne. De ved at afvise enhver ny blokering efter 210,000, hvor en minearbejder betaler sig selv over 25 bitcoin. Og så at afvise eventuelle blokeringer efter 420,000, hvor en minearbejder betaler sig selv over 12.5 bitcoin, og så videre.

transaktionsgebyrer

Indtil videre har jeg kun vist imaginære blokke med en enkelt transaktion - transaktionen, hvor minearbejderen får udbetalt en belønning. Dette kaldes "coinbase-transaktionen."

Det er ikke opkaldt efter firmaet Conbase, jeg mener Coinbase. Virksomheden opkaldte sig selv efter coinbase-transaktionen, ikke omvendt. Bliv ikke forvirret.

Ud over møntbase-transaktionen er der transaktioner med folk, der betaler hinanden. Her er et forestillet eksempel:

Hvordan SHA256 og minedrift beskytter Bitcoin-netværket PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Jeg gad ikke finde en rigtig hash denne gang (Det er faktisk den rigtige hash rapporteret i blok 200,001). Jeg har bare gjort op for sjov, men læg mærke til, at en besked kan indlejres der.

Satoshis inkluderede berømt ordene "Chancellor on Brink of Second Bailout for Banks" i den første Bitcoin-blok (The Genesis Block), efter dagens avisoverskrift.

Hvordan SHA256 og minedrift beskytter Bitcoin-netværket PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Pointen her er, at der er 132 transaktioner inkluderet (ikke alle vist). Se på transaktion #132 – 2.3 bitcoin fra en adresse betaler 2.1 bitcoin til en anden adresse og til en anden adresse er beløbet 0.1 bitcoin (jeg har brugt prikker til at forkorte adressens længde).

Så en kilde på 2.3 bitcoin betaler i alt 2.2 bitcoin (2.2 + 0.1 = 2.2). Mangler der 0.1 bitcoin? Nej, forskellen hævdes af minearbejderen, som jeg vil forklare.

Minearbejderen får lov til at betale sig selv 25 bitcoin som blokbelønning (fordi der er gået 210,000 blokke, så belønningen er blevet halveret fra 50 til 25). Men hvis du ser efter, er møntbasetransaktionen 27.33880022. De ekstra 2.33880022 bitcoin kommer fra de andre 132 transaktioner i blokken - inputs vil alle være lidt større end summen af ​​output. Så minearbejderen kan kræve denne "forladte" bitcoin som betaling til sig selv. Disse betragtes som transaktionsgebyrer betalt til minearbejderen.

Blokpladsen er begrænset. Da Bitcoin var nyt, kunne brugerne sende transaktioner uden gebyr, og minearbejderne ville inkludere transaktionen i blokken. Men nu er der flere brugere, og da det er konkurrencedygtigt at komme på næste blok, inkluderer brugere et gebyr i transaktionen for at lokke minearbejderen til at vælge deres transaktion frem for andres.

Så når blokbelønningen støt falder, halveres hvert fjerde år og til sidst til nul, bliver minearbejdere stadig betalt på denne måde.

Nogle har foreslået, at belønningen til minearbejdere en dag ikke vil være nok og vil få Bitcoin til at mislykkes. Denne bekymring er blevet grundigt afkræftet, og jeg vil ikke gentage den her.

Kan en blok omskrives?

Dette er ekstremt usandsynligt, og det er værd at forstå hvorfor. Du vil derefter forstå, hvorfor Bitcoin-transaktioner er uforanderlige (uforanderlige).

Jeg forklarede tidligere, at hashen fra den forrige blok er inkluderet i den aktuelle blok. Det betyder, at enhver redigering af transaktioner i en gammel blok ændrer hashen for den redigerede blok. Men den hash registreres i den næste blok, så det betyder, at den næste blok også skal opdateres. Men hvis du ændrer hashen, der er registreret i den næste blok, skal dens hash ændres, og så videre.

Bemærk, at hver gang en hash ændres, mister du alle disse dejlige nuller og vil bare stå tilbage med en tilfældigt udseende hash - og skal gøre alt arbejdet igen for at få nullerne tilbage. Hvis du gør det for den blok, du forsøgte at redigere, skal du gentage arbejdet for den næste blok, og den næste helt til den seneste blok. Du kan ikke bare stoppe ved den gamle blok, for reglerne for Bitcoin er sådan, at den længste kæde af blokke er den rigtige Bitcoin-rekord. Hvis du går tilbage og redigerer en blok for 10 blokke siden, har du ikke længere den længste kæde. Du skal tilføje 10 blokke mere og så lidt mere, fordi da du lavede de 10 blokke, blev den rigtige kæde sandsynligvis en smule længere. Du skal race for at overhale den rigtige kæde. Hvis det lykkes, bliver den nye version den rigtige version.

At gentage hele verdens kollektive hashing-indsats fra den redigerede blok til den seneste blok er barrieren for at redigere Bitcoin. Energien blev brugt på at skabe disse hashes med alle de usandsynlige nuller, og det energiforbrug skal gentages for at redigere Bitcoin. Dette er grunden til, at energi, der bruges til at udvinde Bitcoin, ikke "spildes"; det er der for at forsvare Bitcoin mod redigeringer, for at gøre hovedbogen uforanderlig uden at skulle stole på en central myndighed.

Hvad sker der, hvis to minearbejdere finder en blok på samme tid?

Dette sker faktisk nu og da, og det ordner sig altid som følger:

Hver knude vil modtage en af ​​de nye næsten samtidige blokke først og vil acceptere den og afvise den, der ankommer blot få øjeblikke senere. Dette resulterer i en opdeling af netværket, men det er midlertidigt.

For at illustrere, lad os kalde en af ​​blokkene blå og den anden rød (de har ingen farve, bare bær over med mig).

Minearbejdere arbejder derefter på den næste blok, men der vil være en opdeling om, hvilken blok de forlænger kæden fra.

Lad os sige, at den vindende minearbejder fandt en blok ved hjælp af den blå kæde. De vil sende den nye blok til alle noderne, og den længste kæde vil være synlig. De noder, der havde accepteret den røde kæde, vil så droppe den og adoptere den blå kæde.

Alle minearbejdere, der arbejdede på den røde kæde, stopper og vil nu arbejde på den længere kæde, som er den blå kæde. Den røde kæde er død.

Tillæg

Hvorfor en Runner Up Miner's Block er ugyldig

Antag, at blok 700,000 lige er blevet udvundet af MINER-A. Tredive sekunder senere oprettede MINER-B også en anden version af blok 700,000. Når MINER-B udsender dette alternativ, vil hver node afvise det, fordi de allerede har set og accepteret blokeringen af ​​MINER-A. Hvad mere er, lad os på de 30 sekunder sige, at MINER-C fandt blok 700,001. Da MINER-B's konkurrerende 700,000. blok ikke forlænger den nuværende kæde (som er op til 700,001), bliver den også afvist af den grund.

Endnu mere interessant er det, at hvis MINER-B havde arbejdet på blok 700,001 i stedet for en konkurrerende version på 700,000, ville de have haft lige så stor chance for at udvinde en gyldig blok 700,001, som de endelig skulle finde en alternativ blok 700,000. Så så snart en minearbejder ser en ny blok, bør de sætte deres indsats på den næste blok.

Men hvis Miner-B fandt blok 700,000 et sekund efter MINER-A gjorde det, så er det muligt, at nogle noder ser MINER-A's blok først, mens andre ser MINER-B's blok først, afhængigt af geografiske placeringer og internethastigheder. I så fald er der en midlertidig gaffel, og nogle minearbejdere vil arbejde på at udvide den ene version, mens andre minearbejdere vil arbejde på at forlænge den anden. Som forklaret tidligere ved at bruge deskriptorerne "blå kæde" og "rød kæde", vil en af ​​versionerne i sidste ende strække sig længere før den anden og blive den gyldige version enstemmigt.

Dette er et gæsteindlæg af Arman The Parman. Udtalte meninger er helt deres egne og afspejler ikke nødvendigvis dem fra BTC Inc Bitcoin Magazine.

Tidsstempel:

Mere fra Bitcoin Magazine