Wikisage, de vrije encyclopedie van de tweede generatie, is digitaal erfgoed

Wikisage is op 1 na de grootste internet-encyclopedie in het Nederlands. Iedereen kan de hier verzamelde kennis gratis gebruiken, zonder storende advertenties. De Koninklijke Bibliotheek van Nederland heeft Wikisage in 2018 aangemerkt als digitaal erfgoed.

  • Wilt u meehelpen om Wikisage te laten groeien? Maak dan een account aan. U bent van harte welkom. Zie: Portaal:Gebruikers.
  • Bent u blij met Wikisage, of wilt u juist meer? Dan stellen we een bescheiden donatie om de kosten te bestrijden zeer op prijs. Zie: Portaal:Donaties.
rel=nofollow

SegWit: verschil tussen versies

Uit Wikisage
Naar navigatie springen Naar zoeken springen
(https://nl.wikipedia.org/w/index.php?title=SegWit&diff=cur&oldid=50689068 -e- WritersBlok 3 jan 2018)
 
(https://nl.wikipedia.org/w/index.php?title=SegWit&oldid=50727055 7 jan 2018)
 
(Een tussenliggende versie door dezelfde gebruiker niet weergegeven)
Regel 1: Regel 1:
'''Segregated Witness''', of '''SegWit''', is een wijziging in de indeling van transacties binnen een [[bitcoin]] transactieblok. De officiële naam is "Segregated Witness (Consensus layer)" en heeft bitcoinverbetervoorstelnummer 141 (Bitcoin Improvement Proposal of wel BIP in het Engels), notatie: BIP141.<ref>[https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki BIP141] Segregated Witness (Consensus layer) – activated on August 24, 2017</ref>
'''Segregated Witness''', of '''SegWit''', is een verbetering in de indeling van [[Overeenkomst_(contract)|transacties]] binnen een [[bitcoin]] transactieblok. SegWit verhoogt de transactieverwerkingssnelheid van bitcoin door ''transactie-informatie'' te scheiden (segregatie) van de [[digitale handtekening|digitale ondertekening]]. Fraude uitgevoerd door modificatie van transacties wordt ook door Segwit voorkomen.<ref>{{en}}[https://www.coindesk.com/bitcoin-bug-guide-transaction-malleability/ What the 'Bitcoin Bug' Means: A Guide to Transaction Malleability]</ref>. De ondertekening is de getuigenis van de transactie, vandaar de naam "witness".<ref>{{en}}[http://www.investopedia.com/terms/s/segwit-segregated-witness.asp Investopedia: SegWit (Segregated Witness)]</ref>


SegWit verbetert de transactiesnelheid van bitcoin door transactie informatie te scheiden van [[scripttaal]] en [[digitale handtekening|digitale ondertekening]]. De ondertekening is de getuigenis van de transactie, vandaar de naam "witness".<ref>[http://www.investopedia.com/terms/s/segwit-segregated-witness.asp Investopedia: SegWit (Segregated Witness)]</ref> Daarnaast heeft Segwit als doel om [[malleability (cryptography)]] op te lossen.<ref>[https://www.coindesk.com/bitcoin-bug-guide-transaction-malleability/ What the 'Bitcoin Bug' Means: A Guide to Transaction Malleability]</ref>. .
Deze verbetering is ook [[Implementatie#Implementatie_van_software|geïmplementeerd]] in ander [[cryptogeld]] zoals [[litecoin]], [[digibyte]], [[vertcoin]] en [[groestlcoin]].<ref>{{en}}{{cite news|title=SegWit, Explained|url=https://cointelegraph.com/explained/segwit-explained|accessdate=20 december 2017|agency=Cointelegraph|date=20 april 2017}}</ref> De beschrijving van de wijziging is gecategoriseerd onder [https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki BIP141]
 
Deze wijziging is ook geïmplementeerd in ander [[cryptogeld]] zoals [[litecoin]], [[digibyte]], [[vertcoin]] en [[groestlcoin]].<ref>{{cite news|title=SegWit, Explained|url=https://cointelegraph.com/explained/segwit-explained|accessdate=20 December 2017|agency=Cointelegraph|date=20 April 2017}}</ref>


=== Blokchain ===
=== Blokchain ===
Bitcointransacties zijn door middel van cryptografie veilig. Een groep transacties vormt samen een blok. Elk blok wordt doormidden van een [[hashfunctie|cryptografische hash]] gebaseerd op het vorige blok. Op die manier ontstaat een ketting van op een volgende blokken, of wel [[blockchain]].<ref>[http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-actually-works/ How the Bitcoin protocol actually works]</ref>
Bitcointransacties worden beveiligd door gebruik te maken van [[cryptografie]]. Een groep transacties vormt samen een blok. Elk blok wordt door middel van een [[hashfunctie|cryptografische hash]] gebaseerd op het vorige blok. Op die manier ontstaat een ketting van opeenvolgende blokken, de [[blockchain]].


=== Transacties ===
=== Transacties ===
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.  
Een bitcoin bestaat uit 100.000.000 [[bitcoin|satoshi]]. Satoshi is de kleinste rekeneenheid in bitcoin, zoals bijvoorbeeld de [[Cent_(munteenheid)|eurocent]] de kleinste rekeneenheid is van de [[euro]]. Elke transactie in een blok in bitcoin bevat informatie over wie hoeveel satoshi verzendt en wie het ontvangt. Ook bevat een blok informatie over welke transacties door wie zijn ondertekend.  


=== SegWit als oplossing ===
=== SegWit in meer detail ===
SegWit verbergt de grote van een blok door de limiet te wijzigen van 1 megabyte naar 1 mega "units", waardoor dit een [[soft fork]] is; het werkt goed samen met het bestaande bitcoinnetwerk. De "witness" informatie, of wel de ondertekening van een transactie, wordt gescheiden van de [[Hash-boom]] 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 bitcoinnetwerk worden verwerkt.<ref>[https://bitcoinmagazine.com/articles/segregated-witness-part-how-a-clever-hack-could-significantly-increase-bitcoin-s-potential-1450553618/ Segregated Witness, Part 1: How a Clever Hack Could Significantly Increase Bitcoin's Potential]</ref>
SegWit verbergt de blokgrootte door de limiet te wijzigen van 1 [[megabyte]] naar 1 [[Mega_(voorvoegsel)|mega]] "eenheden" waardoor dit een [[soft fork]] is; het werkt goed samen met het bestaande bitcoinnetwerk. De "witness" informatie, of wel de ondertekening van een transactie, wordt gescheiden van de [[hash-boom]] met informatie over wie hoeveel satoshi verzendt en wie ze ontvangt. De "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 grootte van een blok is opgerekt naar ongeveer 1.8 [[megabyte|MB]] in plaats van 1 MB zonder dat het bestaande bitcoinprotocol aangepast hoefde te worden. Zo kunnen de transacties met het bestaande bitcoinnetwerk worden verwerkt.<ref>{{en}}[https://bitcoinmagazine.com/articles/segregated-witness-part-how-a-clever-hack-could-significantly-increase-bitcoin-s-potential-1450553618/ Segregated Witness, Part 1: How a Clever Hack Could Significantly Increase Bitcoin's Potential]</ref>


Door de ondertekening uit de hash-boom te halen is ook het signaturen malleability probleem opgelost, omdat ze hiermee onwijzigbaar zijn.<ref>[https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki Segregated Witness proposal BIP 141]</ref> 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.<ref>[https://www.cryptocompare.com/coins/guides/what-is-segwit/ What is SegWit?]</ref>
Door de ondertekening uit de hash-boom te halen is ook het ondertekenfraude probleem opgelost omdat ze door segregatie buiten de hash-boom niet meer wijzigbaar zijn.<ref>{{en}}[https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki Segregated Witness proposal BIP 141]</ref> Hiermee zijn transactie-IDs ook niet meer gevoelig voor fraude en 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.<ref>{{en}}[https://web.archive.org/web/20171009014843/https://www.cryptocompare.com/coins/guides/what-is-segwit/ What is SegWit?]</ref>


== Geschiedenis ==
== Geschiedenis ==
=== Een aanval op bitcoin ===
=== Een DoS aanval op bitcoin ===
In het begin zat er geen limiet op de grote van een blok. Er zijn mensen geweest die het bitcoinnetwerk hebben proberen te vertragen door het maken van hele grote nep transacties. Door de cryptografie in bitcoin, kost het herkennen van die hele grote nep transactie 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|Denial of Service (DoS)]] aanval, en wordt ook buiten bitcoin gebruikt voor bijvoorbeeld het aanvallen van websites.
In het begin zat er geen limiet op de grootte van een blok. Er zijn mensen geweest die het bitcoinnetwerk hebben proberen te vertragen door het maken van hele grote neptransacties. Door de cryptografie in bitcoin, kost het herkennen van die hele grote neptransactie veel rekentijd. En doordat transacties op volgorde worden verwerkt, vertraagt daarmee de verwerking van legitieme transacties. Het concept van nepverwerkingsverzoeken sturen die de verwerking van legitieme verzoeken vertraagt noemt men in de computer wereld [[Denial-of-service|Denial of Service (DoS)]] aanval, en wordt ook buiten bitcoin gebruikt voor bijvoorbeeld het aanvallen van websites.


=== Blokgrotebeperking ===
=== Blokgroottebeperking ===
Om dit soort aanvallen sneller de baas te worden, besloot [[Satoshi Nakamoto|Satoshi]] de blokgrote te beperken tot 1&nbsp;[[Megabyte|MB]]. Hierdoor werden grote nep blokken direct geïdentificeerd en werd het netwerk nauwelijks vertraagt.<ref>[https://www.cryptocompare.com/coins/guides/what-is-the-block-size-limit/ What is the Block Size Limit]</ref>
Om dit soort aanvallen sneller de baas te worden, besloot [[Satoshi Nakamoto|Satoshi]] in 2010 de blokgrootte te beperken tot 1&nbsp;MB.<ref>[https://github.com/bitcoin/bitcoin/commit/a30b56ebe76ffff9f9cc8a6667186179413c6349#diff-118fcbaaba162ba17933c7893247df3a MAX_BLOCK_SIZE] invoering, door Satoshi Nakamoto op 15 juli 2010.</ref> Hierdoor werden grote nepblokken direct geïdentificeerd en werd het netwerk nauwelijks vertraagd.


=== Schaalbaarheid ===
=== Schaalbaarheid ===
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.
Door de limiet van 1 MB en doordat bitcoin steeds populairder wordt, werd bitcoin ook steeds trager. Dit komt door het ontwerp van bitcoin; elke 10 minuten komt er slechts 1 blok bij. Dus ook maar 1 MB aan opslag waarin alle transacties, [[Scripttaal|scripts]] en ondertekeningen die wereldwijd gedaan zijn in moeten komen. Met de limiet van 1 MB per blok was bitcoin dus niet meer [[schaalbaar]].
Dus maximaal 1 MB aan transactie gegevens, scripts en ondertekening 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 [https://http2.github.io/http2-spec/compression.html#static.table.definition HPACK] waardoor transacties kleiner worden, maar niet verwerkt kunnen worden door het bestaande bitcoinnetwerk (vereist een [[Bitcoin#Hard_forks|hard fork]]) .<ref>[https://zander.github.io/posts/Flexible_Transactions/ Tom's Blog: Flexible Transactions]</ref>


=== Malleability ===
Er kwamen daarom verschillende verbetervoorstellen. Veel daarvan adviseerden om alles weg te gooien en opnieuw te beginnen. Een voorbeeld daarvan was FlexTrans<ref>{{en}} [https://zander.github.io/posts/Flexible_Transactions/ Flexibele transacties]</ref> waarmee je via een model vergelijkbaar met HPACK<ref>[https://http2.github.io/http2-spec/compression.html#static.table.definition HPACK]</ref> transacties kleiner werden. Dit werkt echter niet samen met het bestaande bitcoinnetwerk, en zou dus, in vaktermen, een [[Bitcoin#Hard_forks|hard fork]] vereisen. Dat betekent zo veel als; helemaal opnieuw beginnen, ook met het opbouwen van een gebruikersgemeenschap.
Een ander probleem dat bitcoin had is "transaction malleability".<ref>[https://www.coindesk.com/bitcoin-bug-guide-transaction-malleability/ What the 'Bitcoin Bug' Means: A Guide to Transaction Malleability]</ref> 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.<ref>[https://en.bitcoin.it/wiki/Transaction_Malleability Bitcoin Wiki: Transaction Malleability]</ref>


== Activatie van SegWit ==
Een gemeenschap van de grond af opnieuw opbouwen is heel lastig, daarom is er gezocht naar mogelijkheden om verder te bouwen op het bestaande netwerk. Segwit is een uitkomst daarvan en onderdeel van de oplossing.
Segregated Witness is activeert op 24 augustus 2017.<ref>[https://xbt.eu/ Segregated Witness activation monitor on xbt.eu]</ref>


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.
=== Transactiefraude ===
Een ander probleem dat bitcoin had was transactie[[fraude]]. Ondanks dat de transactie is ondertekend was de transactie zelf niet versleuteld in de digitale handtekening. Ook werd er niet gecontroleerd of de handtekening bij de transactie hoort. Dit gaf diverse mogelijkheden om satoshi te ontvreemden of te verliezen. Er draaide wel al software op het bitcoinnetwerk die een succesvolle aanval onwaarschijnlijk maakte maar het onderliggende probleem was nog niet opgelost.<ref>{{en}}[https://en.bitcoin.it/wiki/Transaction_Malleability Bitcoin Wiki: Transaction Malleability]</ref>


Op 21 juli 2016 werd BIP91 onomkeerbaar, dat betekend dat Segregated Witness geactiveerd is op blok 477.120.<ref name="BIP91locks">Hertig, Alyssa<span id="cxmwlQ" tabindex="0">,</span>&#x20;[http://www.coindesk.com/bip-91-locks-means-bitcoin-not-scaled-yet/ BIP 91 Locks In: What This Means for Bitcoin and Why It's Not Scaled Yet]<span id="cxmwlQ" tabindex="0">.</span>&#x20;''CoinDesk''&#x20;<span id="cxmwlQ" tabindex="0">(21 July 2017).</span>&#x20;<span id="cxmwlQ" tabindex="0">Geraadpleegd op 21 July 2017</span></ref> 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.<ref>Hertig, Alyssa<span id="cxmwnQ" tabindex="0">,</span>&#x20;[https://www.coindesk.com/its-official-segregated-witness-will-activate-on-bitcoin/ It's Official: Segregated Witness Will Activate on Bitcoin]<span id="cxmwnQ" tabindex="0">.</span>&#x20;[[CoinDesk]]&#x20;<span id="cxmwnQ" tabindex="0">(8 August 2017).</span>&#x20;<span id="cxmwnQ" tabindex="0">Geraadpleegd op 9 August 2017</span></ref>  
==Tijdlijn==
Tijdlijn<ref>{{en}}[https://coinvedi.com/nl/countdown-to-segwit-these-are-the-dates-to-keep-an-eye-on/ Countdown to SegWit: These Are the Dates to Keep an Eye On]</ref>:
* 21 juli 2017 werd [https://github.com/bitcoin/bips/blob/master/bip-0091.mediawiki BIP91] onomkeerbaar, dat betekent dat Segregated Witness werkt vanaf bitcoinblok nummer 477.120.
* 8 augustus 2017 ondersteunen alle bitcoin mininers SegWit.
* 21 augustus 2017 mogen nieuwe transacties die geen gebruik maken van SegWit worden geweigerd.
* 24 augustus 2017: Segregated Witness is geactiveerd.<ref>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 voorstel niet is uitgevoerd.</ref>


== Externe links ==
== Externe links ==
* Een van de bedenkers van SegWit is Pieter Wuille, hier is een video uit 2015 waarin hij SegWit uitlegt: https://www.youtube.com/watch?v=NOYNZB5BCHM
* Een van de bedenkers van SegWit is [https://github.com/sipa Pieter Wuille], in een [https://www.youtube.com/watch?v=NOYNZB5BCHM videopresentatie uit 2015] legt hij uit wat Segregated witness is en wat dit betekent voor de schaalbaarheid van bitcoin. Bij de video zit ook een [https://prezi.com/lyghixkrguao/segregated-witness-and-deploying-it-for-bitcoin/ presentatie].


=== Gerelateerde bitcoin verbetervoorstellen (BIP) ===
=== Gerelateerde bitcoin verbetervoorstellen (BIP) ===
'''opmerking:''' Deze links zijn relevant - namelijk de bron waar dit over gaat, ze moeten alleen nog op de juiste plekken van de tekst gekoppeld worden. Er is geen Nederlandstalig bron materiaal.
* {{en}}[https://github.com/bitcoin/bips/blob/master/bip-0091.mediawiki BIP91] Een stemmachine die telt of gebruikers voor Segwit zijn - status: inactief, heeft zijn werk gedaan tot 24 augustus 2017
* [https://github.com/bitcoin/bips/blob/master/bip-0091.mediawiki BIP91] to activate the existing BIP9 segwit deployment with a majority hashpower less than 95%.
* {{en}}[https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki BIP141] Segregated Witness basislaag status: actief sinds  24 augustus 2017
* [https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki BIP141] Segregated Witness (Consensus layer) activated on August 24, 2017
* {{en}}[https://github.com/bitcoin/bips/blob/master/bip-0142.mediawiki BIP142] Een beschrijving van de transactie-indeling voor Segregated Witness, status: ingetrokken en vervangen door [https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki BIP173]
* [https://github.com/bitcoin/bips/blob/master/bip-0142.mediawiki BIP142] Address Format for Segregated Witness – withdrawn, superseded by [https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki BIP173]
* {{en}}[https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki BIP143] Een beschrijving hoe de transactie-ondertekening moet worden gecontroleerd, onderdeel van versie 0 van het Witness Program[https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki] – status: actief sinds 24 augustus 2017
* [https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki BIP143] Transaction Signature Verification for Version 0 Witness Program[https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki] – activated on August 24, 2017
* {{en}}[https://github.com/bitcoin/bips/blob/master/bip-0144.mediawiki BIP144] Segregated Witness (Peer Services) – status: actief sinds 24 augustus 2017
* [https://github.com/bitcoin/bips/blob/master/bip-0144.mediawiki BIP144] Segregated Witness (Peer Services) – activated on August 24, 2017
* {{en}}[https://github.com/bitcoin/bips/blob/master/bip-0148.mediawiki BIP148] Dit is het mandaat om [https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki BIP141], [https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki 143], [https://github.com/bitcoin/bips/blob/master/bip-0144.mediawiki 144] te activeren.
* [https://github.com/bitcoin/bips/blob/master/bip-0148.mediawiki BIP148] Mandatory activation of segwit deployment – activated (mandated the activation of BIP141, 143, 144)
* {{en}}[https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki BIP173] Een gebruikersvriendelijke manier om rekeningnummers op te schrijven: [[Bech32]] status: actief
* [https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki BIP173] Bech32 addresses activated, not yet in wide usage


== Referenties ==
== Referenties ==
{{reflist|refs=<ref name="Scaling Solution">[https://www.crypto-news.net/a-better-scaling-solution-than-segwit/ Is there a better Scaling Solution than SegWit?]</ref>}}
{{Bronvermelding anderstalige Wikipedia|taal=en|titel=SegWit|oldid=818306379|datum=20180103}}
 
{{References}}
{{authority control|TYPE=|Wikidata=Q30327698 }}
[[Categorie:Bitcoin]]
[[Categorie:Bitcoin]]
[[Categorie:Cryptografie]]
[[Categorie:Cryptografie]]

Huidige versie van 17 jan 2018 om 23:59

Segregated Witness, of SegWit, is een verbetering in de indeling van transacties binnen een bitcoin transactieblok. SegWit verhoogt de transactieverwerkingssnelheid van bitcoin door transactie-informatie te scheiden (segregatie) van de digitale ondertekening. Fraude uitgevoerd door modificatie van transacties wordt ook door Segwit voorkomen.[1]. De ondertekening is de getuigenis van de transactie, vandaar de naam "witness".[2]

Deze verbetering is ook geïmplementeerd in ander cryptogeld zoals litecoin, digibyte, vertcoin en groestlcoin.[3] De beschrijving van de wijziging is gecategoriseerd onder BIP141

Blokchain

Bitcointransacties worden beveiligd door gebruik te maken van cryptografie. Een groep transacties vormt samen een blok. Elk blok wordt door middel van een cryptografische hash gebaseerd op het vorige blok. Op die manier ontstaat een ketting van opeenvolgende blokken, de blockchain.

Transacties

Een bitcoin bestaat uit 100.000.000 satoshi. Satoshi is de kleinste rekeneenheid in bitcoin, zoals bijvoorbeeld de eurocent de kleinste rekeneenheid is van de euro. Elke transactie in een blok in bitcoin bevat informatie over wie hoeveel satoshi verzendt en wie het ontvangt. Ook bevat een blok informatie over welke transacties door wie zijn ondertekend.

SegWit in meer detail

SegWit verbergt de blokgrootte door de limiet te wijzigen van 1 megabyte naar 1 mega "eenheden" waardoor dit een soft fork is; het werkt goed samen met het bestaande bitcoinnetwerk. De "witness" informatie, of wel de ondertekening van een transactie, wordt gescheiden van de hash-boom met informatie over wie hoeveel satoshi verzendt en wie ze ontvangt. De "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 grootte van een blok is opgerekt naar ongeveer 1.8 MB in plaats van 1 MB zonder dat het bestaande bitcoinprotocol aangepast hoefde te worden. Zo kunnen de transacties met het bestaande bitcoinnetwerk worden verwerkt.[4]

Door de ondertekening uit de hash-boom te halen is ook het ondertekenfraude probleem opgelost omdat ze door segregatie buiten de hash-boom niet meer wijzigbaar zijn.[5] Hiermee zijn transactie-IDs ook niet meer gevoelig voor fraude en 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.[6]

Geschiedenis

Een DoS aanval op bitcoin

In het begin zat er geen limiet op de grootte van een blok. Er zijn mensen geweest die het bitcoinnetwerk hebben proberen te vertragen door het maken van hele grote neptransacties. Door de cryptografie in bitcoin, kost het herkennen van die hele grote neptransactie veel rekentijd. En doordat transacties op volgorde worden verwerkt, vertraagt daarmee de verwerking van legitieme transacties. Het concept van nepverwerkingsverzoeken 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.

Blokgroottebeperking

Om dit soort aanvallen sneller de baas te worden, besloot Satoshi in 2010 de blokgrootte te beperken tot 1 MB.[7] Hierdoor werden grote nepblokken direct geïdentificeerd en werd het netwerk nauwelijks vertraagd.

Schaalbaarheid

Door de limiet van 1 MB en doordat bitcoin steeds populairder wordt, werd bitcoin ook steeds trager. Dit komt door het ontwerp van bitcoin; elke 10 minuten komt er slechts 1 blok bij. Dus ook maar 1 MB aan opslag waarin alle transacties, scripts en ondertekeningen die wereldwijd gedaan zijn in moeten komen. Met de limiet van 1 MB per blok was bitcoin dus niet meer schaalbaar.

Er kwamen daarom verschillende verbetervoorstellen. Veel daarvan adviseerden om alles weg te gooien en opnieuw te beginnen. Een voorbeeld daarvan was FlexTrans[8] waarmee je via een model vergelijkbaar met HPACK[9] transacties kleiner werden. Dit werkt echter niet samen met het bestaande bitcoinnetwerk, en zou dus, in vaktermen, een hard fork vereisen. Dat betekent zo veel als; helemaal opnieuw beginnen, ook met het opbouwen van een gebruikersgemeenschap.

Een gemeenschap van de grond af opnieuw opbouwen is heel lastig, daarom is er gezocht naar mogelijkheden om verder te bouwen op het bestaande netwerk. Segwit is een uitkomst daarvan en onderdeel van de oplossing.

Transactiefraude

Een ander probleem dat bitcoin had was transactiefraude. Ondanks dat de transactie is ondertekend was de transactie zelf niet versleuteld in de digitale handtekening. Ook werd er niet gecontroleerd of de handtekening bij de transactie hoort. Dit gaf diverse mogelijkheden om satoshi te ontvreemden of te verliezen. Er draaide wel al software op het bitcoinnetwerk die een succesvolle aanval onwaarschijnlijk maakte maar het onderliggende probleem was nog niet opgelost.[10]

Tijdlijn

Tijdlijn[11]:

  • 21 juli 2017 werd BIP91 onomkeerbaar, dat betekent dat Segregated Witness werkt vanaf bitcoinblok nummer 477.120.
  • 8 augustus 2017 ondersteunen alle bitcoin mininers SegWit.
  • 21 augustus 2017 mogen nieuwe transacties die geen gebruik maken van SegWit worden geweigerd.
  • 24 augustus 2017: Segregated Witness is geactiveerd.[12]

Externe links

Gerelateerde bitcoin verbetervoorstellen (BIP)

  • (en) BIP91 Een stemmachine die telt of gebruikers voor Segwit zijn - status: inactief, heeft zijn werk gedaan tot 24 augustus 2017
  • (en) BIP141 Segregated Witness basislaag – status: actief sinds 24 augustus 2017
  • (en) BIP142 Een beschrijving van de transactie-indeling voor Segregated Witness, status: ingetrokken en vervangen door BIP173
  • (en) BIP143 Een beschrijving hoe de transactie-ondertekening moet worden gecontroleerd, onderdeel van versie 0 van het Witness Program[1] – status: actief sinds 24 augustus 2017
  • (en) BIP144 Segregated Witness (Peer Services) – status: actief sinds 24 augustus 2017
  • (en) BIP148 Dit is het mandaat om BIP141, 143, 144 te activeren.
  • (en) BIP173 Een gebruikersvriendelijke manier om rekeningnummers op te schrijven: Bech32 – status: actief

Referenties

  1. º (en) What the 'Bitcoin Bug' Means: A Guide to Transaction Malleability
  2. º (en) Investopedia: SegWit (Segregated Witness)
  3. º (en) "SegWit, Explained", 20 april 2017. Geraadpleegd op 20 december 2017.
  4. º (en) Segregated Witness, Part 1: How a Clever Hack Could Significantly Increase Bitcoin's Potential
  5. º (en) Segregated Witness proposal BIP 141
  6. º (en) What is SegWit?
  7. º MAX_BLOCK_SIZE invoering, door Satoshi Nakamoto op 15 juli 2010.
  8. º (en) Flexibele transacties
  9. º HPACK
  10. º (en) Bitcoin Wiki: Transaction Malleability
  11. º (en) Countdown to SegWit: These Are the Dates to Keep an Eye On
  12. º 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 voorstel niet is uitgevoerd.
rel=nofollow
rel=nofollow