SegWit

Dit is een oude versie van deze pagina, bewerkt door WritersBlok (overleg | bijdragen) op 3 jan 2018 om 21:12. (Gemaakt door het vertalen van de pagina "SegWit")
Deze versie kan sterk verschillen van de huidige versie van deze pagina.
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)

Segregated Witness, or SegWit, is de naam van de soft fork die het transactie formaat van Bitcoin wijzigde. Deze wijziging is ook geïmplementeerd in Litecoin, DigiByte, Vertcoin en Groestlcoin.[1]

De officiële naam "Segregated Witness (Consensus layer)" heeft Bitcoin verbetervoorstel (Bitcoin Improvement Proposal of wel BIP in het Engels) nummer 141 gekregen (BIP141).[2] Het doel van dit voorstel is om malleability (cryptography) op te lossen.[3] Daarnaast wil deze wijziging de grote van de blockchain beperken, om de Bitcoin transactiesnelheid te vergroten. SegWit verbeterd de transactiesnelheid door transactie data te scheiden van scripts en ondertekeningen. De ondertekeningen zijn de getuigenis van de transactie vandaar de naam "witness".[4] Door deze scheiding is de grote van het ondertekengedeelte 4x kleiner als voorheen. Waardoor er meer transacties in de zelfde tijd verwerkt kunnen worden.

Geschiedenis

Blok grote beperking

Bitcoin transacties zijn door middel van cryptografie veilig.[5] Een groep transacties samen vormen een  blok. Elk blok wordt doormidden van een cryptografische hash gebaseerd op het vorige blok. Op die manier ontstaat een ketting van op een volgende blokken, of wel blockchain.[6]

Een bitcoin bestaat uit 100.000.000 satoshi. Elke transactie in een blok in bitcoin bevat informatie over wie hoeveel satoshi verzend en wie het ontvangt. Ook bevat een blok informatie over welke transacties door wie zijn ondertekend. In het begin zat er geen limiet op de grote van een blok.

Sommige mensen hebben het bitcoin netwerk proberen te vertragen door het maken van hele grote nep transacties. Door de cryptografie in bitcoin, kost het herkennen van die hele grote nep transacties veel rekentijd. En doordat transacties op volgorde worden verwerkt, vertraagt daarmee de verwerking van legitieme transacties. Het concept van nep verwerkingsverzoeken sturen die de verwerking van legitieme verzoeken vertraagt noemt men in de computer wereld Denial of Service (DoS) aanval, en wordt ook buiten bitcoin gebruikt voor bijvoorbeeld het aanvallen van websites.[7]

Om dit soort aanvallen sneller de baas te worden, besloot Satoshi de blokgrote te beperken tot 1 MB. Hierdoor werden grote nep blokken direct geïdentificeerd en werd het netwerk nauwelijks vertraagt.

Schaalbaarheid en malleability

Bitcoin wordt steeds populairder, en door die limiet van 1 MB werd het ook steeds trager. Dit komt omdat bitcoin zo is ontworpen dat,  elk 10 minuten er, gemiddeld, slechts 1 blok bij komt. Dus maximaal 1 MB aan transactie gegevens, scripts en ondertekeningen per 10 minuten. Door de limiet van 1 MB per blok was Bitcoin was dus niet meer schaalbaar.

Er ontstonden websites die transacties buiten bitcoin om gingen doen, accepteerde transacties al voordat ze bevestigd waren in bitcoin.

Er kwamen voorstellen om bitcoin opnieuw te ontwerpen, waarmee de nieuwe transacties niet meer samen werkte met de oude. Een voorbeeld daarvan FlexTrans (Flexible Transactions) waarbij je via een model vergelijkbaar aan HPACK waardoor transacties kleiner worden, maar niet verwerkt kunnen worden door het bestaande bitcoin netwerk (vereist een hard fork) .[8]


Een ander probleem dat bitcoin had is "transaction malleability".[9] Terwijl de transactie wel is ondertekend, bevat de ondertekening geen data over de transactie zelf. En het controleren of de ondertekening klopt bij de transactie was niet eens vereist. Dit gaf diverse mogelijkheden om bitcoin te verliezen of te ontvreemden. Gelukkig waren er wel al diverse stukken code in de bitcoin nodes aanwezig om een succesvolle aanval onwaarschijnlijk te maken, het probleem was nog niet opgelost.[10]

SegWit als oplossing

SegWit werkt goed samen met het bestaande bitcoin netwerk. Het verbergt de grote van een blok door de limiet te wijzigen van 1 megabyte naar 1 mega "units".

De "witness" informatie, of wel de ondertekening van een transactie, wordt gescheiden van de Merkle tree met informatie over wie hoeveel satoshi verzend en wie ze ontvangt. The "witness" informatie wordt verplaatst naar het einde, en elke byte van deze informatie wordt als een kwart unit gerekend. Dit heeft als effect dat de gemiddelde grote van een blok is opgerekt naar ongeveer 1.8 MB in plaats van 1 MB, zonder dat het bestaande bitcoin protocol aangepast hoefde te worden. En zo kunnen de transacties met het bestaande bitcoin netwerk worden verwerkt.[11]

Door de ondertekening uit de merkel tree te halen is ook het signaturen malleability probleem opgelost, omdat ze hiermee onwijzigbaar zijn.[12] En hiermee zijn de transacties ID ook niet meer malleable. Dit maakt het gebruik van het Lightning Network in combinatie met Bitcoin een stuk veiliger. Het Lightning Network is bedoeld om microtransacties buiten bitcoin om snel uit te kunnen voeren, waarbij alleen de transactie ID en de begin en eindtijd van de transactie in bitcoin wordt vastgelegd.[13]

Activatie van SegWit

Segregated Witness is activeert op 24 augustus 2017.[14] 

SegWit (BIP141) is iets anders dan SegWit2x (SegWit2Mb). SegWit2Mb is een voorstel na activatie van Segregated Witness een 2 MB hard fork te activeren binnen 6 maanden na 23 mei 2017. Inmiddels kan worden geconcludeerd dat dit niet is gelukt.

Op 21 juli 2016 werd BIP91 onomkeerbaar, dat betekend dat Segregated Witness geactiveerd is op blok 477.120.[15] Sinds 8 august 2016 ondersteunen alle bitcoin mininers SegWit, vanaf 21 august 2016 mogen nieuwe transacties die die geen gebruik maken van SegWit worden geweigerd.[16] 

Gerelateerde Bitcoin verbetervoorstellen (BIP)

  • BIP91 to activate the existing BIP9 segwit deployment with a majority hashpower less than 95%.
  • BIP141 Segregated Witness (Consensus layer) – activated on August 24, 2017
  • BIP142 Address Format for Segregated Witness – withdrawn, superseded by BIP173
  • BIP143 Transaction Signature Verification for Version 0 Witness Program[1] – activated on August 24, 2017
  • BIP144 Segregated Witness (Peer Services) – activated on August 24, 2017
  • BIP148 Mandatory activation of segwit deployment – activated (mandated the activation of BIP141, 143, 144)
  • BIP173 Bech32 addresses – activated, not yet in wide usage

Referenties

Externe links