Er du en Bitcoin- eller blockchain-utvikler? Du ser sannsynligvis på skalerbarhet, nettverksforsinkelse, transaksjonsgebyrer og lignende problemer, og prøver å forbedre offentlige blokkeringer. Implementeringen av Bitcoin SegWit har viktige leksjoner, og jeg vil forklare dette prosjektet i denne artikkelen. Imidlertid vil jeg først forklare hva Segregated Witness (SegWit) er.
Contents
Adopsjon av Bitcoin og utfordringer som brukere møter
Bitcoin har lagt strøm i hendene på mennesker med deres uformidlede og sikre nettverk og nyter høy popularitet. Imidlertid kjøper du fremdeles ikke morgenkappa med den?
Til tross for popularitet er daglige transaksjoner fremdeles ikke i Bitcoin på grunn av følgende utfordringer:
- Hver node i Bitcoin-nettverket må lagre alle blokker og transaksjoner og delta i transaksjonsvalidering. Et Bitcoin-nettverk kan bare være like raskt som den tregeste noden. Bitcoin bruker ‘Proof of Work’ (POW) konsensusalgoritmen som krever deltagelse av hver node. Les mer om POW-algoritmen i “PoW Vs. PoS: En sammenligning mellom to Blockchain Consensus Algorithms “.
- POW-algoritme krever at Bitcoin-gruvearbeidere løser et stadig mer komplekst kryptografisk puslespill, derfor bruker de tung datakraft. Dette øker nettverksbelastningen, i tillegg til at den er svært energikrevende. Effekten er nettverksforsinkelse.
- Bitcoin-brukere vil at transaksjonene deres skal gå raskt. Imidlertid reduserer nettverksforsinkelse og mangel på skalerbarhet dem. Bitcoin-blokker kan bare håndtere et begrenset antall transaksjoner, og for å prioritere transaksjonene sine, betaler brukerne høye mineravgifter. Disse avgiftene økte stadig.
Bitcoin SegWit løste problemet med transaksjonsgebyrer i betydelig grad, men det stammer fra et annet problem, som jeg vil forklare nå.
Opprinnelsen til Bitcoin SegWit: Bitcoin formbarhet
Bitcoin hadde også et annet potensielt alvorlig problem. Bitcoin bruker datakryptering, som først konverterer en ren tekst til en kryptert ‘ciphertext’. Bare personen med den private nøkkelen kan dekryptere krypteringsteksten til den opprinnelige ren tekst ved hjelp av den private nøkkelen.
Smidbarhet er en feil i en krypteringsteknologi som lar nettangripere konvertere krypteringstekst til en annen krypteringstekst. Hackere kan da dekryptere den modifiserte krypteringsteksten til en helt annen, men relatert, klar tekst. For eksempel kan de endre mottakeradresse og betalingsbeløp i en betalingstransaksjon! Bitcoin-kryptering hadde denne smidighetsfeilen.
“Segregated Witness (Consensus Layer)”, dvs. SegWit ‘Bitcoin Improvement Proposal’ (BIP) 141 handlet om å løse denne smidighetsfeilen.
Hvordan Bitcoin SegWit-implementering løste problemet med smidighet
Bitcoin-utvikler Peter Wiulle kom med SegWit-forslaget i desember 2015. Løsningen fungerte som følger:
- Det skapte en annen struktur kalt “Vitnet”. Dette har data for å autentisere en transaksjon, men har ikke transaksjonsdetaljene.
- Den nye vitnestrukturen er forpliktet til Bitcoin-blokken separat fra resten av transaksjonsdataene, derav navnet “Segregated Witness”.
- Anta at hackere får tak i transaksjonsdataene og prøver å utnytte smidighetsfeilen. De har ikke tilgang til den digitale signaturen lenger med SegWit.
- Selv om de klarer å endre krypteringsteksten til noe annet, er deres innsats ikke nyttig uten den digitale signaturen.
Slik planla Bitcoin SegWit-forslaget å løse smittbarhetsfeilen. Forslaget inkluderte imidlertid flere endringer, og disse bidro til en effektiv økning av Bitcoin-blokkstørrelsen. Les videre for å finne ut hvordan.
Bitcoin SegWit øker effektivt Bitcoin-blokkstørrelsen
Bitcoin-blokkstørrelse er 1 Megabyte (MB). Signaturinformasjonen utgjorde også en god del av transaksjonsdataene, og derfor kunne en blokk bare omfatte noen få transaksjoner.
SegWit-forslaget opprettet en annen parameter kalt “Weight Unit” (WU). Hver byte i transaksjonsdatadelen av blokken tilsvarer 4 WUer. Hver byte i “Vitne” -strukturen tilsvarer imidlertid 1 WU.
Forslaget definerte også maksimumsvekten til en Bitcoin-blokk som 4 millioner WUer. Gjør din enkle matte, og du kan se hvordan de nye blokkene med SegWit har mer enn 1 MB størrelse effektivt! Dette tillot gruvearbeidere å inkludere flere transaksjoner i en blokk.
Siden hver blokk nå har mer effektiv plass, reduseres den sterke konkurransen om å inkludere en transaksjon i en blokk. Dette reduserer i sin tur transaksjonsgebyrene!
Hadde Bitcoin-samfunnet bestemt seg for å overstyre 1 MB blokkstørrelsesgrense eksplisitt, trengte de å implementere en hard gaffel. Imidlertid foretrekker kryptosamfunn ofte ikke harde gafler på grunn av ustabiliteten de gir til det generelle nettverket og økosystemet.
I tilfelle Bitcoin SegWit-implementeringen forble regelen om 1 MB blokkstørrelsesgrense på plass, men den nye WU-parameteren gikk utenom den. Derfor var det ingen hard gaffel for å implementere SegWit.
Bitcoin SegWit fordeler og ulemper, og adopsjon
Du så nettopp hvordan SegWit løste smidighetsfeilen og reduserte Bitcoin-transaksjonsgebyrer. Imidlertid er det lagt fordeler. Tenk på eksemplet med “Lightning Network”.
The Lightning Network er en off-chain løsning for å muliggjøre små, hyppige betalingstransaksjoner. Dette kjører på toppen av Bitcoin blockchain og registrerer ikke hver transaksjon der. Denne løsningen registrerer bare et periodisk sammendrag av transaksjoner i Bitcoin blockchain.
Siden systemet ikke begår alle mellomtransaksjoner i Bitcoin-blockchain, trengte brukerne tillit til at deres mellomtransaksjoner var sikre. Den smidige feilen tillot ikke den tilliten. Bitcoin SegWit-implementeringen hjalp også Lightning Network-utviklingen.
Til tross for de mange fordelene med SegWit, bør du ikke betrakte det som en avansert Bitcoin-skaleringsløsning. Dette er ikke et automatisert skalerbarhetsmål, det var en engangs omgåelse av Bitcoin-blokkstørrelsesgrensen. Dessuten kan en effektiv økning i blokkstørrelse gjøre at langsommere noder tar lengre tid å laste Bitcoin-blokker i fremtiden.
Bitcoin SegWit ble implementert i august 2017, etter mange debatter i Bitcoin-samfunnet om dets fordeler og ulemper. Adopsjonen er imidlertid langt fra fullført, og du kan se statistikken her.
Som utvikler av Bitcoin eller blockchain kan du finne viktige leksjoner fra implementeringen av Bitcoin SegWit. Tenk på langsiktige aspekter for skalerbarhet, sikkerhet og desentralisering når du utvikler forbedringsforslagene dine.