Taproot är för närvarande den mest troliga nästa uppgraderingen för Bitcoin. Det är en av några uppgraderingar som för närvarande jobbar med som användare och utvecklare hoppas att så småningom ska vara aktiverade i nätverket.
Alla dessa uppgraderingar delar ett allmänt tema som sannolikt kommer att vara temat för många framtida uppgraderingar också. Detta tema är att göra kontrakt unicast, eller enklare sagt, flytta kontraktlogik utanför kedjan och lämna det upp till användaren istället för nätverket att validera och genomdriva sitt kontrakt. Att flytta till ett mer unicast-system kommer att göra Bitcoin mycket mer privat och skalbart och samtidigt behålla Bitcoins viktigare egenskaper intakt.
Dessa typer av uppgraderingar och system är perfekta för Bitcoin. Bitcoin är helt enkelt ett monetärt nätverk, inte ett beräkningsnätverk. Att vara ett monetärt nätverk bör dess primära funktion vara att verifiera att dess monetära system tillämpas korrekt. I Bitcoin-termer bör det vara den primära funktionen för systemet att kontrollera att användare korrekt undertecknade transaktionen och att de inte bryter mot penningpolitiken, och allt mer bör flyttas till högre lager och endast göras mellan de användare som använder Bitcoin för mer än ekonomisk avveckling.
MuSig och Unicast-kontrakt
MuSig är en av de mest förstådda tillämpningarna av att flytta kontraktlogik för att vara unicast. MuSig tillåter användare att få en multisig-utgång att se ut som en standardanvändares single sig-utdata. Detta görs genom att användare konstruerar nycklar och signaturer utanför kedjan och låter dem göra några kryptografiska operationer som resulterar i en enda offentlig nyckel och signatur. Detta är en enorm förbättring jämfört med en vanlig multisig, där användarna behöver sända alla sina offentliga nycklar och signaturer. Genom att göra en vanlig multisig laddar användarna sin kontraktsvalidering till nätverket och kräver att den valideras och lagras på obestämd tid. Istället, med en MuSig, gör användarna själva verkställigheten genom att konstruera signaturer inbördes vilket resulterar i en enda slutlig signatur som bara kan vara giltig om rätt antal parter var ärliga, vilket endast kräver att nätverket validerar och lagrar en enda signatur.
Att flytta avtalslogik som ska göras på ett unicast-sätt gör Bitcoin mer privat. Idag har de flesta kontrakten sin utgiftslogik uttryckligen i transaktionens utskriftsskript. Det betyder att en extern observatör kan se vilka användares exakta utgiftsvillkor är. Att låta användaren avslöja sina exakta utgiftsvillkor skadar inte bara den enskilda användaren utan påverkar också resten av användarna i nätverket. Genom att avslöja alla tillgängliga utgiftsvägar lägger en användare inte bara ut sig själva för att använda dem utan avslöjar också att de inte använder andra utgiftsvillkor. Detta verkar uppenbart men har viktiga konsekvenser. Eftersom en användare avslöjar att de inte har vissa utgiftsvillkor utesluter det dem från att dela en anonymitetsuppsättning från användare som använder de andra utgiftsvillkoren. Detta innebär att de andra användarna inte kommer att ha vår användare i sin anonymitet, vilket ger dem en mindre publik att gömma sig bland. Om användaren flyttade sin upprätthållande av kontraktsförsörjningen, kunde användaren få sina transaktioner och utdata att se likadana ut som en standardanvändare och därmed dela en anonymitetsuppsättning med en större uppsättning användare och hjälpa sig själva som de andra användarna.
Att inte bara göra kontraktutförande unicast gör Bitcoin mer privat, det gör det också mer skalbart. Att flytta validerings- och exekveringslogik utanför kedjan, som ska göras av de enskilda användarna i kontraktet, säkerställer att de inte längre behöver sända hela sitt kontrakt till hela nätverket. Genom att göra detta behöver nätverket inte längre göra den faktiska verifieringen av vad som kan vara ett komplext kontrakt och istället bara göra den minimala verifieringen, sannolikt bara en enda signaturkontroll. Eftersom kontraktet inte längre sänds till nätverket kommer inte heller nätverket att lagra nödvändiga data för detta kontrakt. På grund av Bitcoins blockviktsgräns är det en välsignelse för nätverket att minska den data som behövs för alla transaktioner eftersom det direkt kommer att öka transaktionsgenomströmningen, vilket gör att mer kan göras med samma mängd resurser.
Avvägningar
Att ta bort behovet av att verifiera och lagra kontraktsdata kan ha betydande effekter på hur användare använder Bitcoin. För alla Bitcoin-transaktioner måste användaren betala en gruvavgift för att ingå i ett block. Denna gruvavgift är direkt korrelerad med de resurser som behövs för att verifiera och lagra transaktionen. Genom att veta detta kan vi dra slutsatsen att användarna är ointresserade att använda komplexa skript och utgiftsvillkor. Detta kan ha dåliga konsekvenser – till exempel, en användare som försöker förbättra sin säkerhet genom att använda något som multisig för att distribuera sina nycklar straffas nu av nätverket för att göra det genom att få dem att betala högre avgifter. Eventuella förbättringar som kan göras av detta bör vara förutbestämda för Bitcoin-användare och utvecklare.
Att använda unicast-liknande kontrakt inkluderar också några andra avvägningar. Eftersom användaren inte längre laddar ner kontraktsvalideringen och körningen till nätverket kommer de istället att behöva göra detta själva, eller snarare kommer programvaran de använder att vara. Detta innebär i allmänhet att användaren kommer att behöva skicka och lagra mer data mellan sina motparter. För att göra det krävs mer komplex programvara och protokoll för användaren. Det kan göra säkerhetskopior mer kritiska och svårare att göra; om användaren tappar dessa uppgifter kan deras motpart kunna bryta mot sitt kontrakt eller åtminstone kanske inte användaren kan genomföra sitt kontrakt utan sin motparts samarbete. Dessa är dock väl förstådda problem och smarta lösningar föreslås för att göra förlust av data säkrare och till och med skapa sätt att dölja för en motpart att det fanns en förlust av data.
Sammanfattningsvis existerar i dag Bitcoin-kontrakt främst som ett sändningssystem, vilket kräver att nätverket validerar och lagrar allas logik för utförande av kontrakt. Uppgraderingar som sannolikt kommer till Bitcoin kan ge oss en syn som flyttar kontrakt för att istället verkställas mellan enskilda användare, eftersom Bitcoin är ett monetärt nätverk först och bör främst tillämpa sina monetära egenskaper. Saker som Taproot, Lightning, DLCs och PTLCs exemplifierar alla detta perfekt och visar att Bitcoiners bygger ekosystemet för att förbättra Bitcoins integritet och skalbarhet.