Citat:
Ursprungligen postat av
Leaston
Satte igång och svarade men inser att jag nu killgissar för mycket. Det är utanför mitt kunskapsområde, och vad som händer på andra sidan om den kunskapsgränsen överlåter jag till er cypherpunks. Jag litar på att ni får till det.
Jag är mer intresserad av vilka världsliga problem man kan tillämpa det på.
Jag har en ambition att fördjupa mig när jag får tid, men då är det The Bitcoin Standard, Mastering Bitcoin och eventuellt en motsvarande Ethereum bok som står först i kön.
OK, för all del. Trodde du kanske tyckte det var lite kul att klura lite på det. Men låt mig besvara min egna frågor då, så får vi se om det väcker lite intresse för ämnet här i tråden.
Återigen, vi antar att den felaktiga regeln gäller (som artikeln sa) att längsta kedjan vinner. Att attackera de senaste blocken tvingar oss fortfarande att respektera gällande svårighetsgrad och skapa bevis av den kalibern, vilket är kämpigt minst sagt i nuläget.
Men svårighetsgraden justeras ju över tid enligt en strikt regel som alla noder följer. Denna går i enkelhet ut på att man var 2016:e block tittar på tidsstämplar för just dessa (de 2016 senaste) block och mäter snittiden mellan dem. Avviker denna tid från de önskade 10 minuterna, så justeras svårighetsgraden så att framtida block förväntas komma närmare den önskade tiden. Justeringsregeln är inte perfekt utan ger ibland lite eftersläpningar, om total hashrate förändras kraftigt, men efter ett antal justeringar når den ändå målet.
Om man tar en kedja från genesis (det hårdlödda första blocket) så kommer varje fullnod, som sätts på jobbet att verifiera hela kedjan, att kräva att den här svårighetsgradsregeln stämmer. Dvs, var 2016:e block så justerar noden svårigheten om tidsstämplarna kräver det, när den nu går igenom hela kedjan, och kommer underkänna PoW-bevis på vägen som inte uppfyller den justerade svårighet som noden kommer fram till.
Vid just genesisblocket var svårighetsgraden mycket låg, men kom ju att stiga rätt fort i takt med att fler intresserade sig för mining i början. Hashraten steg, tiderna sjönk, regeln slog till vid varje intervall där detta krävdes och svårighetsgraden gick upp.
Om man nu vill skapa en alternativ kedja så ser man ju att de lättaste PoW-bevis som behöver göras om på denna kedja är de som var först i kedjan. Om man nu vill nyttja den (hypotetiska, men felaktiga) regeln att längsta kedjan gäller, så kan man ju börja attackera där det är som enklast, dvs skapa en alternativ kedja från start. PoW-bevis blir löjligt enkla att skapa, blocken kan var tomma men alla block rewards skickar man till egna adresser. Tidstämplar fejkas, så att de ser riktiga ut.
Eftersom (antagandet att) längsta kedjan gäller är det ju nu frestande att fejka tidstämplar rejält då man då hinner få in fler block rätt så enkelt fram tills dagens datum. Men, här får man se upp lite. Svårighetsjusteringen gäller fortfarande, så fejkar man tidstämplar med för korta intervall så stiger svårigheten och noderna kommer underkänna PoW-bevis som inte håller måttet.
Så knepet här är då att för tidstämplarna hålla sig precis på gränsen till vad som är tillåtet, för att inte svårigheten skall tvingas upp. Då blir det trivialt att skapa en kedja nästan hela vägen till nutid som är giltig. Sen måste man dock börja minska intervallet på tidstämplarna mot slutet för att hinna få med fler block än vad originalkedjan har. Men här kan man utnyttja trögheten i regeln och driva på mängden block rejält utan att svårighetsgraden hinner med i samma takt avslutningsvis. Det kommer bli jobbigare att förfalska de sista blocken, men det blir en enorm skillnad mot det jobb som lagts ned i originalkedjan och går sannolikt att klara av med rätt modesta resurser.
Så fort denna alternativa kedja postas i nätverket så uppfyller den alla reglerna och kommer godkännas som giltig av alla noder. Tack vare den felaktiga regeln, att längsta kedjan är bäst, så kommer den väljas av alla över originalet. Alla transaktioner som gjorts är borta och ersatta av block-rewards till nya adresser enbart. Samtliga tillgångar har bytt ägare och alla noder är nöjda med att detta är korrekt.
Så, regeln att längsta kedjan gäller är uppenbarligen inte särskilt bra. Tur för Bitcoin att regeln inte är definierad så.