Bitcoin.nl

Laatste nieuws

Bitcoin Unlimited?

hardork

We hebben al meer geschreven over waarom we fees betalen en de drukte op het bitcoinnetwerk, deze artikelen gingen in essentie over de transactiecapaciteit van Bitcoin. De vraag hoe we Bitcoin gaan schalen naar grote transactiehoeveelheden staat al lange tijd centraal binnen de Bitcoincommunity. We hebben eerder geschreven over deze kwestie. In dit artikel gaan we dieper in op één van de voorgestelde oplossingen: Bitcoin Unlimited. De oplossing van Bitcoin Unlimited die ook een hardfork vereist.

De oplossing die is voorgesteld door Bitcoin Unlimited (BU) brengt veel risico’s met zich mee. Naast een hardfork vormt ook het consensus-mechanisme dat BU voorstelt een groot risico.

Als er wordt gesproken over de problemen van de schaalbaarheid met betrekking tot Bitcoin dan is het goed om te beseffen dat het spanningsveld zich afspeelt op het gebied van decentraliteit, veiligheid en toegankelijkheid.

De huidige situatie

Een fork van Bitcoin is niet nieuw. Veel altcoins zijn een fork van Bitcoin: de software is opensource en daardoor kan je een kopie van deze software maken. Wanneer bij deze kopie een aantal factoren in het protocol worden aangepast dan wordt gesproken over een alternatieve Bitcoin, vandaar een altcoin. BU stelt een oplossing voor waarbij een hardfork vereist is. In dit artikel hebben we eerder een uitleg gegeven over soft- en hardforks. Dit betekent dat er regels in het protocol worden gewijzigd die zorgen voor een andere methode waarop het Bitcoin-netwerk werkt. In het kort komt dit erop neer dat BU de huidige bloklimiet van 1 MB (1024 KB) verwijdert en daardoor meer transacties in een block geplaatst kunnen worden. In dit artikel van Bitcoin Magazine is een uitstekende beschrijving te vinden over de wijze waarop Bitcoin Unlimited werkt.

De consequenties van een hardfork

Zoals gezegd vereist de oplossing van Bitcoin Unlimited een hardfork en dit betekent dat er twee verschillende soorten Bitcoin zullen komen na de hardfork. We hebben dit eerder gezien bij Ethereum, waar twee verschillende Ethereum-netwerken zijn: Ethereum ETH en Ethereum Classic ETC. Deze vertegenwoordigen dan ook verschillende waardes. De situatie bij de BU hardfork verschilt op een belangrijk punt met de hardfork van Ethereum omdat in het laatste geval de hardfork gepland was en daardoor onomkeerbaar. De regel dat de langste* blockchain de geldige blockchain is (Nakamoto Consensus) was bij Ethereum en Ethereum Classic niet van toepassing.

*In de praktijk komt dit neer op de chain met de meeste proof-of-work

Mede hierdoor is een soortgelijke situatie voor Bitcoin zeer onwenselijk om een aantal redenen:

  • Reorgs: Een reorg is een onderdeel van het Nakamoto concensusmechanisme die bepaalt dat de langste* blockchain de "echte" chain is. Omdat er geen "checkpoint" is die aangeeft vanaf wanneer de ene chain op zichzelf blijft staan, is er een reeële mogelijkheid dan de Bitcoin Unlimited (BTU) chain wordt ingehaald door de chain. Wat op dat moment betekent dat alle transacties die gedaan zijn vanaf het punt dat BU en de originele chain geforked zijn tot het punt dat de originele blockchain weer de langste chain is, allemaal ongedaan gemaakt worden. Aangezien er op dit moment vanuit een groot deel van de gebruikers, developers, services en exchanges een voorkeur bestaat voor de originele blockchain (Bitcoin Core) en vanuit de miners een minderheid BU ondersteunt is het aannemelijk dat de originele blockchain zich niet zal aanpassen aan Bitcoin Unlimited.
  • Replay attacks: Transacties die uitgegeven worden op de originele Blockchain (BTC) kunnen ook uitgegeven worden op de andere Blockchain (BTU). Dit komt omdat de ondertekening en saldo's (de UTXO-set) in eerste instantie hetzelfde zijn. In deze situatie is het mogelijk om je saldo op drie manieren uit te geven:
    • Alleen de originele coins (BTC).
    • Alleen Bitcoin Unlimited coins (BTU).
    • Beide Blockchains (pre-fork BTC: coins kunnen op beide chains worden uitgegeven als de transactie op beide chains wordt gepubliceerd).

replayattackbitcoin

  • Gebruiksvriendelijkheid: er ontstaan 2 bitcoins en dit is vanzelfsprekend een probleem voor gebruikers.
  • Veiligheid: hashpower van miners verdeelt zich over de netwerken. De hoeveelheid rekenkracht die het netwerk beschermt neemt dus in grote mate af.

Alle bovenstaande consequenties hebben dan ook verstrekkende gevolgen voor handelsplatformen (exchanges), wisseldiensten, merchants, wallets en gebruikers. Alle stakeholders in het ecosysteem dus. Reorgs kunnen er voor zorgen dat bepaalde transacties na weken/maanden opeens niet meer geldig blijken te zijn. Een merchant heeft dan een dienst of product geleverd en opeens zijn de ontvangen BTC ongeldig.

Naast de bovenstaande risico’s van een Hardfork zijn er ook centralisatierisico’s verbonden aan het voorstel van BU:

  • Centralisatie van invloed: het effect van het Bitcoin Unlimited voorstel is dat de invloed op het consensusmechanisme bij de miners komt te liggen.
  • Centralisatie door afname nodes: meer transacties in een block betekent een stuk hogere eisen bij het draaien van een Full Node.

Decentraliteit, veiligheid en toegankelijkheid

We praten er over dat Bitcoin decentraal is ‘by design’  —  maar in de realiteit is dit niet zo. De hoeveelheid decentralisatie wordt niet afgedwongen door het protocol:

  • Elke 10 minuten een block, wordt wel afgedwongen door het protocol;
  • Maximaal 21 miljoen bitcoins, wordt wel afgedwongen door het protocol;
  • Miners worden verhinderd om bitcoins te stelen in transacties, wordt wel afgedwongen door het protocol.

Decentralisatie van Bitcoin wordt dus niet afgedwongen door het protocol, maar door het aantal nodes in het P2P-netwerk.

Er is niks in de broncode dat Bitcoin beschermt tegen het wegvallen van bitcoin-nodes uit het netwerk. Bitcoin zal dan gewoon draaien met één enkele node voor het afhandelen van transacties. Dus Bitcoin is alleen decentraal door de mensen die bereid zijn om deze bitcoin-nodes te draaien. Het is belangrijk dat het runnen van een bitcoin-node niet te duur is. Het probleem is dat het runnen van een node duurder wordt door een te grote Blockchain, daarom is de blocksize limiet van 1 MB geïntroduceerd.

De essentie van decentraliteit

De mate van veiligheid van het netwerk wordt afgedwongen door de mate van decentraliteit. Decentraal betekent dat er controle van de regels plaatsvindt door Full Nodes. Als het runnen van een Full Node te duur wordt dan kan verwacht worden dat het aantal nodes zal afnemen. Het controleren van de regels zal dan door veel minder nodes gebeuren. Het zal dusdanig zwaar worden om een node te draaien dat dit alleen nog maar in datacenters zal plaatsvinden beheerd door instanties en personen die een incentive hebben hierin te investeren. En dit is een groot veiligheidsgevaar voor Bitcoin. Wanneer er centralisatie van nodes plaatsvindt is het eenvoudiger de regels te manipuleren. Een overheid zou bijvoorbeeld invloed kunnen uitoefenen op transacties of kwaadwillenden kunnen het netwerk kapot maken.

fullnodesbitcoin

De drempel om bij te dragen wordt daarom verhoogd en dit heeft centralisatie tot gevolg. Uiteraard blijft de capaciteit van opslag, snelheid van computers, snelheid van internet en aanverwante ontwikkelingen groeien. Daarom is er ruimte is om de Blockchain te laten groeien, in relatie met de groei van deze capaciteiten. Het probleem van veel van de voorstellen is dat deze pogen een voorspelling te doen hoe snel computerhardware en netwerkcapaciteiten gaan groeien in de komende jaren. Je kan je daardoor afvragen hoe goed de toekomst is te voorspellen en welke risico’s dit met zich meebrengt.

Stabiliteit en controleerbaarheid van de Bitcoin Software

Op dit moment zijn er meerdere implementaties van Bitcoin (Bitcoin Core (C++)/BCoin (NodeJs) /BTCd suite (Golang)/Nbitcoin (.NET)). Bitcoin Unlimited komt daar nu bij, maar waarbij de development van Bitcoin Core transparant is, heeft Bitcoin Unlimited helaas besloten om eerst bugs te repareren in een private repository, en zal dus binaries uitbrengen waarbij niet te controlleren is wat de wijzigingen zijn, bron: Reddit. Ook was de "hotfix" binary niet ondertekend, wat het onmogelijk maakt om de validiteit/uitgever ervan te controleren.

Een hardfork?

Zoals eerder benoemd brengt een hardfork grote risico’s met zich mee, maar is het niet ondenkbaar dat het (een keer) zal voorkomen. Een vereiste bij een hardfork is dat 51% van de rekenkracht (mining) besluit een ander incompatible protocol te ondersteunen.

Het is afwachten of deze hardfork er daadwerkelijk ook komt. Mocht de hardfork komen dan zullen alle handelsplatformen, wisseldiensten, merchants, wallets en gebruikers maatregelen moeten nemen om alles netjes te laten verlopen. Bijvoorbeeld maatregelen tegen replay-attacks, listing van BTC (Bitcoin Core) en BTU (Bitcoin Unlimited) ter bescherming van saldo's, reorg-protectie en primair het informeren van gebruikers.

Een aantal exchanges hebben gezamenlijk een statement uitgebracht waarin zij duidelijkheid geven over hun visie en plan van aanpak in het geval een hardfork met Bitcoin Unlimited plaatsvindt. Het statement is hier te vinden: Hardfork Statement

Lees meer toelichting over standpunt van Bitonic en de voorzorgsmaatregelen van BL3P.