Hvordan fungerer bitcoin -transaksjoner?
I dag er det vanskelig å finne en person som ikke har hørt om Bitcoin. Forståelsesnivået for dets prinsipper og mekanismer varierer imidlertid sterkt. Mange mennesker er fornøyd med kunnskapen om at det er nok å få en lommebok, motta, sende kryptovaluta til en annen person eller selge den. For noen brukere er denne informasjonen tilstrekkelig. Likevel for kryptovaluta investorer en dypere forståelse av BitcoinNaturen er obligatorisk, siden den kan løse mange spørsmål og unngå problemer med bruk av kryptovaluta.
Når vi allerede har oversikt over hva Bitcoin er, men gikk ikke inn på detaljer. I denne artikkelen vil vi prøve å beskrive hvordan Bitcoin fungerer på en tilgjengelig og detaljert måte.
Nettverk
Som mange kilder forteller oss, er Bitcoin en peer-to-peer betalingssystem / nettverk, er kryptovalutaen med samme navn oppgjørsenheten for operasjoner i dette nettverket.
Et peer-to-peer-nettverk er et datanettverk som prinsippet er like rettigheter for alle deltakere. Hver peer eller node, som de også kalles, utfører funksjonene til både klienten og serveren. En slik organisasjon lar deg opprettholde nettverksdriften for et hvilket som helst nummer og en hvilken som helst kombinasjon av tilgjengelige noder, summen endres ikke fra å omorganisere vilkårene. Nettverksdeltakere er alle jevnaldrende, så hovedfunksjonen i systemet er fullstendig desentralisering: det er ingen sentral administrator eller server. I stedet for begrepet “peer-to-peer”, kan du bruke definisjoner som: et desentralisert eller p2p-nettverk.
Blockchain
Grunnlaget for bitcoin, og underveis er “registeret” for transaksjonskontroll en ordnet sekvens (kjede) av et datasett (blokker), eller bare en blokkjede. Hver blokk i bitcoin -nettverket rommer opptil 1 MB data, den dannes i gjennomsnitt 10 minutter, og den inneholder informasjon om alle transaksjoner som er plassert i den og informasjon som kobler den til den forrige blokken.
Hver blokk i kjeden er kryptografisk sammenkoblet med den forrige og den neste. Dette forholdet beskytter nettverket mot å erstatte eller endre eksisterende blokker i fremtiden, noe som gjør blockchain uforanderlig og transaksjoner irreversible.
Driftsprinsipp
For en klarere forståelse av det grunnleggende i Bitcoin -nettverket, tenk deg en hypotetisk kryptoentusiast, la oss kalle ham Tony, som har en bitcoin -lommebok med 2 BTC på saldo.
La oss anta at Tony ønsker å gi 1 BTC til vennen Cindy, og for dette trenger han hennes unike bitcoin -lommebokadresse – en analog av kontonummeret i en tradisjonell bank. Tony setter denne adressen til det riktige inndatafeltet i lommeboken, og i det andre feltet angir han overføringsbeløpet – 1 BTC. Deretter fortsetter Tony med å angi størrelsen på transaksjonsgebyret, og her skal vi dvele litt mer.
Transaksjoner og nettverksbelastning
Som i alle andre betalingssystemer skjer transaksjoner i bitcoin, det vil si at eiendeler overføres fra en klient til en annen. For bitcoin -transaksjoner belastes en provisjon som sendes som en belønning til gruvearbeiderne som bekrefter disse transaksjonene. Jo høyere provisjon og lavere nettverksbelastning, desto raskere bekreftes transaksjoner.
Nettverksbelastning betyr det totale antallet deltakere som sender oversettelsen samtidig.
I hovedsak er en transaksjon et sett med informasjon som indikerer for nettverksdeltakere hvilken verdi avsenderens saldo har redusert og hvilken verdi mottakerens saldo har økt.
Gruvearbeidere
For at en transaksjon skal bli fullført, må gruvearbeidere bekrefte eller validere den. I dag er dette for det meste spesialiserte gårder som bruker kraftig datautstyr, ASIC, for å verifisere transaksjoner for “korrekthet”, de samler disse transaksjonene i blokker, og blokkene er sekvensielt koblet til hverandre. Nettverksalgoritmen tar 10 minutter å danne en blokk, hvor gruvearbeiderne utfører samme type beregningsarbeid på jakt etter en unik løsning hvert sekund. Dette er ikke vanskelig, det er ikke et matematisk problem, men det er en veldig stor mengde arbeid, som er vanskelig å gjøre med liten datakraft raskt og effektivt.
Gruvearbeidere mottar en belønning i form av BTC for arbeidet som er utført. Denne belønningen består av provisjonene som brukerne betalte for transaksjoner og nye bitcoins som nettverket selv genererte da en ny blokk ble fullført og bekreftet fra transaksjonene. Vi vil snakke mer om gruvearbeidere og generere nye bitcoins i en egen artikkel.
Kommisjoner
La oss komme tilbake til vår kryptoentusiast. Tony angir størrelsen på transaksjonsgebyret og styres av det faktum at han for hver byte av informasjon må betale en viss mengde Satoshi – en brøkdel av bitcoin. Siden Tony ikke vet hvor mye data transaksjonen hans vil ta, bestemmer han seg for å lagre og sette prisen til 1 Satoshi per byte.
For dere, lesere, vil vi fortelle hvordan vekten og kostnaden for en Tony -transaksjon vil dannes.
De 2 BTCene, som han har i balansen, dukket opp i lommeboken av en grunn. Tony tjente dem – 1 BTC i 2017, 1 BTC i 2018. Nå vil han sende halvparten til kjæresten sin. I transaksjonen hans, i tillegg til informasjon om antall mynter, vil informasjon om adressene som myntene kom til ham (de kalles innganger) bli inkludert, informasjon om adressene til mottakerne (de kalles utdata) og informasjon om hans egen adresse vil også bli inkludert.
- Hver input som det ble mottatt mynter fra veier 148 byte
- Hver utgang myntene går til er 34 byte
- Selve transaksjonen veier 10 byte, uavhengig av antall adresser eller mengden overføring.
Vi vurderer: 148*2 + 34*2 + 10 = 374 byte. Nå vet vi at vår “grådige” Tony vil betale 374 Satoshi for transaksjonen.
Endring
Du spør, hvorfor multipliserer vi 34 (vekten av mottakerens adresse) med 2, når mottakeren bare er en? Faktum er at når du sender en del av saldoen din til noen, så ikke deler, men hele beløpet, forlater saldoen din, og etter validering, dvs. inkludering av transaksjonen i blokken, blir saldoen minus nettverkskommisjonen returnert tilbake til din lommebok. Derfor, i tillegg til informasjon om mottakerens adresse, er informasjon om adressen til avsenderen, det vil si adressen din, også inkludert i transaksjonen. Denne returen kalles endring.
Mempool
Etter å ha satt en liten kommisjon på 374 satoshi, bekrefter Tony at 1 BTC er sendt og venter på at gruvearbeiderne bekrefter denne transaksjonen.
Det er bare at gruvearbeiderne ikke har det travelt med å bekrefte det, transaksjonen faller inn i mempoolen – køen for bekreftelse. Hvorfor? Fordi gruvearbeiderne ønsker å tjene penger, og ikke bare bruke utstyret sitt, fordi de vil motta 374 satoshi for bekreftelsen av Tonys transaksjon. Spesielt for slike veldig billige transaksjoner er det en mempool med sitt sorteringssystem.
Først av alt “tar” gruvearbeidere lettere transaksjoner med en høyere provisjon fra mempoolen, fordi bekreftelse av dem er mer lønnsom og mye mer er plassert i blokken deres.
Forresten, hvis avsenderen bruker SegWit -teknologi, veier hans utgående transaksjoner mindre enn vanlig, noe som også tiltrekker gruvearbeidere.
Men du skal ikke tro at transaksjonen en gang i mempoolen er tilordnet et slags sekvensnummer. Nei. Denne køen er dynamisk. Hvert sekund kommer det inn mange transaksjoner med forskjellige avgifter og vekter, så vår Tonys transaksjon kan vente lenge på bekreftelse. Og viktigst av alt, mens det er i mempool, vil Tony ikke kunne avhende endringen.
Faktisk er avsenderens saldo i en slik situasjon “frosset”. Det er denne mekanismen som beskytter nettverket mot spamtransaksjoner – situasjoner der en spammer oppretter mange billige transaksjoner, og derved overbelaster nettverket.
Selv om Tonys transaksjon er i mempool, anses den ikke som bekreftet og regnes ikke som suspendert. Samtidig kan den stå i køen ganske lenge – til den er bekreftet, eller til den blir fjernet ved å validere noder fra mempoolen. Ifølge statistikk er den maksimale ventetiden for en kø ca 3 dager, men i perioder med høy nettverksaktivitet kan denne perioden forlenges med en uke eller lenger.
Enig i at overføringshastigheten i vår tid er en av de prioriterte egenskapene i spørsmålet om bruk av betalingssystemer, og slike køer er ikke særlig hyggelige, for å si det mildt.
Det er mange måter å skyve en transaksjon gjennom mempoolen. Alle er ganske vanskelige å forstå og implementere for den gjennomsnittlige brukeren, og noen av dem grenser til en så uredelig måte som "dobbel utgift", eller gjentatte utgifter. Likevel er det en flott funksjon som alle kan bruke, og vi snakker om det. Det kalles “Replacement Commission” (Replace-by-Fee eller RBF).
Erstatt etter gebyr (RBF)
I dag har ikke hver bitcoin -lommebok lignende avansert funksjonalitet. RBF redigerer en eksisterende transaksjon som er i mempoolen.
Redigering betyr at de nye inngangene vil bruke de samme inngangene som de gamle, men kommisjonen vil bli endret. En slik redigert transaksjon vil ikke bli betraktet som dobbeltforbruk, siden bruk av alternativet Erstatt etter gebyr vil unngå dette. Nodene til bitcoin -nettverket oppfatter den redigerte transaksjonen som gammel, og den overføres i køen til mempoolen til mer attraktive posisjoner for gruvearbeidere.
Så hvis provisjonen er for liten, er det vanlig praksis å øke hvis du trenger å fremskynde operasjonen. Ikke forsøm RBF -funksjonen og aktiver den før du foretar transaksjoner, dette lar deg spille det trygt i tilfelle overføringen blir forsinket i køen.
Bekreftelsen
Tony innså med tiden at på grunn av grådigheten hans, kan det hende at Cindy ikke mottar en gave i det hele tatt, så han brukte betimelig RBF -funksjonen og økte provisjonen. Transaksjonen ble som forventet mer attraktiv for gruvearbeidere, og de inkluderte den i neste blokk – transaksjonen mottok 1 bekreftelse. Med hver påfølgende blokk funnet, vil denne transaksjonen motta 1 ekstra bekreftelse. Når det er 6 eller flere slike bekreftelser, anses transaksjonen som bekreftet.
Transaksjonsrate
Når vi snakker om overføringshastigheten, bør det forstås at det ikke er noen bestemt verdi. Men la oss beregne det basert på Tonys transaksjon og dataene vi har.
Betingelse:
- størrelsen på en blokk er 1 Mb (1048576 byte);
- hver blokk fylt med transaksjoner dannes en gang i 10 minutter (600 sekunder);
- vår Tonys transaksjon har en vekt på 374 byte.
Beslutning:
- 1048576 byte: 374 byte = 2803,6 transaksjoner i en 10 minutter blokk.
- 2803,6 transaksjoner: 600 sekunder = 4,6 transaksjoner per sekund.
Svar: Hvert sekund bekrefter gruvearbeidere 5 transaksjoner, tilsvarende Tonys transaksjon.
Selvfølgelig er alle disse omtrentlige verdier, siden behandlingshastigheten endres hvert sekund og avhenger av mange faktorer. Det viktigste er at transaksjonen din blir tatt fra mempoolen så snart som mulig, og hvis dette skjer, vil overføringen nå mottakeren innen 1-600 sekunder.
Faktisk, etter at transaksjonen er inkludert i blokken, kan mottakeren ikke bare se midlene på balansen, men også, under en viss betingelse, administrere den. Rask, ikke sant? Ja, men hva med regelen om 6 bekreftelser? 6 blokker, 10 minutter hver, totalt – 1 time …
Bitcoin -klienter
Det handler om programvaren som kryptokurrencyholdere bruker. Klassiske Bitcoin -lommebøker vil vise transaksjonen som “ubekreftet” til den mottar seks bekreftelser (blokker).
Tjenester som godtar BTC som betaling kan sette sine grenser for antall blokker som trengs for bekreftelse (7, 10, 45, 214).
BTC, som genereres av nettverket som en belønning for å finne en blokk, kan bare brukes etter 100 bekreftelser, men klassiske bitcoin -lommebøker vil ikke vise mynter mottatt for å finne en blokk før 120 bekreftelser er samlet.
Nummeret "6" ble ikke valgt ved en tilfeldighet. For hver nye blokk blir transaksjonen mindre sårbar for spoofing eller endring. For å gjøre noe med en allerede bekreftet transaksjon i en blokk, må du “omskrive” alle påfølgende blokker, og dette krever veldig stor datakraft og millioner av investeringer. Og jo flere bekreftelser en transaksjon mottar, desto sikrere blir den.
Men i en så kraftig og stabil blockchain som Bitcoin, er det mer sannsynlig kravet til mottakeren av transaksjonen, og ikke en regel i protokollen.
Derfor bruker ikke vår Cindy og Tony en klassiker, men en veldig avansert og funksjonell Bitcoin -lommebok. Takket være funksjonen til å bruke ubekreftede transaksjoner aktivert i den, vil Tonys utgående transaksjon, etter å ha blitt inkludert i blokken, umiddelbart vises på Cindys lommebok. I dette tilfellet vil Tony umiddelbart kunne avhende endringen, og Cindy kan motta gaven.
Koblingen “SegWit + RBF + bruk av ubekreftede transaksjoner” lar deg presse maksimal hastighet ut av BTC-blokkeringen, noe som er viktig for tjenester som ikke er depotmottakere.
Konklusjon
Bitcoin er veldig komplekst og veldig teknologisk avansert. I en artikkel er det umulig å beskrive alle finesser og nyanser i arbeidet, men vi fortalte deg fortsatt om det grunnleggende. Nå vet du hvilke vanskelige reiser myntene dine gjør i løpet av bare en enkelt transaksjon mellom to lommebøker og med hvilken hastighet. Hvordan og på hvilken måte nettverket beskytter seg mot hacking, spamangrep, svindel eller utslettshandlinger fra nybegynnere.
Den stabile driften av bitcoin er like avhengig av både gruvearbeidere og vanlige brukere, og jo flere deltakere det er på nettverket, desto sikrere og desentralisert blir det.