Litecoin heeft een beveiligingsupdate openbaar gemaakt die eerder alleen bij miningpools terechtkwam. Core-versie 0.21.5.8 bevat nieuwe MWEB-controles en wijzigingen die moeten voorkomen dat miners blokken maken die strengere nodes weigeren.
De
officiële release van Litecoin Core 0.21.5.8 verscheen op 12 september. Ontwikkelaars raden vooral miners, pools, exchanges en partijen met MWEB-diensten aan om snel over te stappen.
Beveiligingsfix bleef eerst buiten het publiek
Opvallend is vooral wat er vóór 0.21.5.8 gebeurde.
Litecoin had eerst Core-versie 0.21.5.7 voorbereid vanwege wat de ontwikkelaars een belangrijke beveiligingsfix noemen. Die software werd niet als normale publieke release aangeboden.
In plaats daarvan werd 0.21.5.7 alleen onder miningpools verspreid.
De wijzigingen uit die versie zitten nu ook in 0.21.5.8. Daarmee krijgt de rest van het netwerk toegang tot de aanpassingen zonder dat gebruikers eerst de besloten versie hoeven te installeren.
Litecoin omschrijft de kwestie niet als een kritieke kwetsbaarheid. De release notes geven ook geen uitgebreide uitleg over het oorspronkelijke beveiligingsprobleem.
Die terughoudendheid is niet vreemd bij netwerksoftware. Te vroege technische details over een fout kunnen misbruik eenvoudiger maken voordat partijen met veel invloed op het netwerk zijn bijgewerkt.
Nieuwe MWEB-regel is al geactiveerd
Een van de grootste wijzigingen raakt MimbleWimble Extension Blocks, oftewel MWEB.
MWEB is een uitbreiding van Litecoin waarmee transactiegegevens gedeeltelijk kunnen worden afgeschermd. De techniek draait naast de normale
blockchain van Litecoin.
Versie 0.21.5.7 introduceerde een nieuwe consensusregel op blockhoogte 3.172.640. Die hoogte werd al op 5 september bereikt.
De regel zorgt ervoor dat een MWEB-block wordt geweigerd wanneer een bepaalde kernel aangeeft dat extra data aanwezig is, terwijl die extra data feitelijk leeg is.
Dat klinkt technisch, maar het gevolg is simpel.
Nodes met de nieuwe regels accepteren zo'n block niet. Een miner die software gebruikt waarmee zo'n ongeldig block kan worden geproduceerd, loopt daardoor het risico dat zijn block door bijgewerkte nodes wordt afgewezen.
Litecoin stelt wel dat normale wallets en miners deze foutieve constructie niet aanmaken.
Timing van de release valt op
De timing maakt de aanpak van Litecoin interessant.
Blockhoogte 3.172.640 werd bereikt voordat 0.21.5.8 publiek verscheen. Miningpools konden eerder al beschikken over 0.21.5.7 en daarmee vóór de activatie overstappen.
Voor het bredere publiek kwam de gecombineerde release daarna.
Dat verklaart ook waarom in de release notes staat dat miners en pools vóór de activatie moesten upgraden. Die waarschuwing hoorde oorspronkelijk bij de wijzigingen die al besloten onder pools waren verspreid.
Voor gebruikers die nu nog een oudere publieke versie draaien, is 0.21.5.8 de versie waar Litecoin naartoe wijst.
Litecoin scherpt controle van MWEB-blocks aan
De
update gaat verder dan één nieuwe regel.
Litecoin laat een volledig MWEB extension block opnieuw controleren vlak voordat het aan de actieve chainstate wordt toegevoegd. Daarbij worden onder meer cryptografische handtekeningen, proofs en andere gegevens opnieuw geverifieerd.
Dat speelt ook wanneer een block opnieuw vanaf schijf wordt geladen na bijvoorbeeld een reorganisatie of herstel na een storing.
Verder is aangepast hoe de software omgaat met verschillende versies van ongeldige MWEB-data. Een foutieve variant mag niet verhinderen dat een geldige variant van hetzelfde block later alsnog wordt verwerkt.
Ook snelle verspreiding van MWEB-blocks naar andere nodes gebeurt pas nadat het block daadwerkelijk succesvol aan de chainstate is gekoppeld.
De rode draad is duidelijk: eerst controleren, daarna pas vertrouwen en verder verspreiden.
Ook mining en mempool worden aangepast
Versie 0.21.5.8 verandert daarnaast de manier waarop miners MWEB-transacties samenvoegen tijdens het bouwen van een block.
De software controleert zulke transacties stapsgewijs. Dubbele kernels en combinaties die niet met elkaar overeenkomen kunnen daardoor eerder worden geweigerd.
Ook de mempool krijgt aangepaste logica.
De mempool is de tijdelijke wachtruimte voor transacties voordat een miner ze in een block verwerkt. Wanneer een nieuw block conflicteert met MWEB-transacties in die wachtrij, kan Litecoin Core de conflicterende transacties en getroffen vervolgtransacties verwijderen.
Dat moet voorkomen dat verouderde of ongeldige data onnodig blijft circuleren.
Minder ruimte voor uitputting van systeembronnen
Een andere groep fixes raakt het gebruik van systeembronnen.
Tijdelijke cryptografische werkruimte wordt nu vrijgegeven wanneer de controle van een ongeldige range proof mislukt. Ook lost de release problemen op met het sluiten van file descriptors tijdens bepaalde bestandskopieën voor MWEB.
Zulke wijzigingen zijn nauwelijks zichtbaar voor gewone
LTC-gebruikers.
Voor nodes, miningpools en exchanges die voortdurend verbindingen en transacties verwerken, kunnen problemen met geheugen, bestanden of cryptografische controles wel oplopen.
Dat verklaart waarom Litecoin niet alleen miners noemt in zijn upgradeadvies.
Geen nieuwe functie voor gewone Litecoin-gebruiker
Voor iemand die alleen LTC verstuurt of bewaart, verandert de gebruikerservaring door deze release nauwelijks.
0.21.5.8 is vooral onderhoud onder de motorkap. De update verandert hoe nodes MWEB-data controleren, doorsturen en verwerken.
Voor miners ligt het gewicht hoger.
Consensusregels bepalen welke blocks andere deelnemers accepteren. Zodra nodes strengere voorwaarden afdwingen, wil een miner voorkomen dat zijn eigen software data produceert die daar niet meer doorheen komt.
De opvallendste boodschap zit daarom niet in een nieuwe Litecoin-functie. Het zit in de volgorde van de uitrol: eerst kregen miningpools een besloten beveiligingsrelease, daarna volgde de publieke versie voor de rest van het netwerk.