En introduktion till konfidentiella transaktioner
Hem
Artiklar
En introduktion till konfidentiella transaktioner

En introduktion till konfidentiella transaktioner

MedelnivÄ
Publicerad Feb 10, 2020Uppdaterad Dec 28, 2022
6m

Introduktion

Det anses ofta vara avgörande för blockkedjans funktion att systemet Àr transparent. Detta innebÀr att varje nod i nÀtverket kan lagra en kopia och verifiera att inga regler bryts. För mÄnga distribuerade bokföringar kan vem som helst ladda upp en block-utforskare online som lÄter dem söka igenom block, transaktioner och adresser.

NÀr det gÀller sekretess Àr detta inte idealiskt. I ett system som Bitcoin kan varje transaktion kopplas tillbaka till en tidigare. Coin Àr inte tekniskt utbytbara, vilket innebÀr att varje coin kan kopplas till specifika transaktioner. Ingen kan hindra dig frÄn att skicka bitcoin, men vem som helst kan vÀgra att acceptera din transaktion om dessa coin tidigare har passerat via en svartlistad adress.

I vÀrsta fall kan en brist pÄ utbytbarhet pÄverka sjÀlva grunden för systemet ordentligt. Rena coin skulle kunna bli vÀrda mer och Àldre coin skulle kunna bli vÀrda mindre pÄ grund av dess bakgrund.

Sekretessen i Bitcoin Àr ofta överskattad. BÄde coin och anvÀndare kan spÄras. De har visserligen pseudonymitet (offentliga adresser Àr synliga istÀllet för namn), men detta har sina brister. Sofistikerade analystekniker kan med ökad noggrannhet klustra ihop adresser i ett försök att deanonymisera nÀtverksenheter.

Konfidentiella transaktioner Àr en uppgradering som har föreslagits för att göra transaktionerna helt privata.


Vad Àr konfidentiella transaktioner?

Konfidentiella transaktioner (Confidential Transactions/CT) diskuterades först av Blockstreams VD Adam Back under 2013 och expanderades senare av Bitcoin-utvecklaren Gregory Maxwell. Maxwell beskrev problemen som nĂ€mndes i det första avsnittet (utbytbarhet och svag pseudonymitet) och föreslog en lösning. Överförda belopp skulle kunna skĂ€rmas av frĂ„n det bredare nĂ€tverket, sĂ„ att endast transaktionsparterna skulle kunna veta hur mycket som skickats.



Under normala omstÀndigheter (med offentligt synliga transaktioner) Àr det lÀtt för en nod att verifiera att det mottagna beloppet inte överstiger det skickade beloppet. Om Alice vill skicka 0,3 BTC till Bob, tar hon en outnyttjad utgÄngsdata (lÄt oss kalla det 1 BTC) och delar upp den i tvÄ delar: 0,3 som ska skickas till Bob och 0,69 som ska skickas tillbaka till henne (resten betalas i utvinningsavgift).
Detta Àr enkel algebra för andra noder: 1 överstiger 0,3 + 0,69, signaturerna Àr alla korrekta och Alices ingÄngsdata har inte redan anvÀnts nÄgon annanstans, sÄ transaktionen mÄste vara giltig. Om mÀngderna döljs blir saker och ting dock inte sÄ enkla. Hur pÄbörjas ens en utvÀrdering om ett okÀnt belopp Àr lika med eller överstiger summan av tvÄ andra okÀnda belopp?


En översikt över kryptografin som anvÀnds

För att dölja data krÀvs kryptering. Men traditionella metoder fungerar ungefÀr som att lÀgga dokument i ett kassaskÄp: nÀr det vÀl Àr lÄst inuti skÄpet blir det oanvÀndbart tills det tas bort. Det vi behöver för att konfidentiella transaktioner ska fungera Àr ett digitalt kassaskÄp vars innehÄll inte avslöjas, men vars egenskaper kan verifieras av en utomstÄende.

Svaret ligger specifikt i homomorfisk kryptering, i ett schema som kallas ett Pedersen-Ätagande. Denna typ av kryptering tillÄter en utomstÄende att utföra operationer pÄ krypterade data (som de inte kan se) för ett antal ÀndamÄl. 

En vanlig hash kan anvÀndas för att komma Ät data som du vill avslöja senare. Anta att du vill starta en tÀvling pÄ sociala medier, dÀr den som gissar din favoritbörs vinner ett pris pÄ 0,01 BTC. Deltagarna kanske skulle bli skeptiska till detta, eftersom du bara skulle kunna titta pÄ svaren efter tÀvlingens slut och vÀlja en börs som inte har nÀmnts.

Vad du kan göra Àr att förse dina följare med en hash: en strÀng av till synes slumpmÀssiga siffror och tecken som mappas till specifika ingÄngsdata. Du skickar din valda börs genom en funktion för att fÄ vissa utgÄngsdata. Vi illustrerar det med SHA256-algoritmen:


f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191


NĂ€r du tittar pĂ„ detta har du ingen aning om vilka dess ingĂ„ngsdata var. Du kan inte heller omvĂ€nda funktionen för att se den. Om du vet att dess ingĂ„ngsdata var "Binance" kan du dock enkelt kontrollera att dess hash matchar den som anges ovan. PĂ„ sĂ„ sĂ€tt har dina följare en viss försĂ€kran om att du inte kommer att Ă€ndra ditt svar i slutet av tĂ€vlingen – om du gör det skulle du fĂ„ helt andra utgĂ„ngsdata.

Realistiskt sett Ă€r detta dock inte sĂ€rskilt sĂ€kert. Även om dina följare inte kan omvĂ€nda algoritmen kan de bygga en lista över möjliga börser och hasha varenda en tills de fĂ„r en matchning. Vi kan minska sannolikheten för detta genom att lĂ€gga till nĂ„gra slumpmĂ€ssiga data som kallas en blĂ€ndande faktor till den data vi ska hasha. 

Om vÄr ingÄngsdata Àr "Binance Àr min favoritbörs som jag Àlskar mer Àn nÄgon annan börs 2#43Wr", blir det betydligt svÄrare för en motstÄndare att gissa detta (och för 0,01 BTC Àr det verkligen osannolikt att nÄgon ens skulle försöka gissa).

Ett Pedersen-Ätagande gör att vi kan lÀgga till ingÄngsdata bakom Ätagandena. Maxwell illustrerar detta:



C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)

DÀr BF Àr den blÀndande faktorn och D Àr data


Det finns nÄgra fler steg hÀrifrÄn som involverar elliptisk kurvkryptografi och intervallbevis, men grundidén Àr att en anvÀndare har ett Pedersen-Ätagande för sin adress. NÀr du skickar tillgÄngar skapas ytterligare tvÄ Ätaganden (en för Àndringsadressen som ska returneras till anvÀndaren och en för destinationsadressen). 

Ingen vet hur mycket som skickas, men man kan kontrollera att Àndrings- och destinationsÄtagandena (vÀnster sida av Maxwells ekvation) Àr lika med ursprungsadressen (höger sida av ekvationen). Om detta utvÀrderas korrekt Àr anvÀndarens transaktion giltig, eftersom det kan bevisas att ingÄngsdata Àr lika med utgÄngsdata.


Vad kan konfidentiella transaktioner Ă„stadkomma?

Om konfidentiella transaktioner skulle implementeras i bitcoin skulle vi ha ett mycket mer privat system. BÄde ingÄngsdata och utgÄngsdata skulle döljas frÄn majoriteten av nÀtverket och uppgifterna i bokföringen skulle ocksÄ döljas - men noderna skulle fortfarande kunna verifiera deras Àkthet. Med denna massiva integritetshöjning skulle bitcoin kunna bli utbytbara, eftersom kedjeanalys i sÄ fall inte lÀngre avslöjar en given enhets historia. 

Att konfidentiella transaktioner kommer att integreras i protokollet verkar inte troligt just nu. Med denna extra funktionalitet blir transaktionerna mycket större Àn de normala och med ett begrÀnsat blockutrymme skulle detta bara öka efterfrÄgan. Det skulle ocksÄ krÀva att majoriteten av deltagarna gick med pÄ att Àndra koden, vilket Àr en uppgift som traditionellt sett har visat sig vara svÄr.


Sammanfattningsvis

Konfidentiella transaktioner har sett nÄgra iterationer i andra kryptovalutor och bitcoin-sidokedjor. Monero anvÀnder dem till exempel i kombination med konstruktioner som kallas ringsignaturer för att uppnÄ anonymitet och utbytbarhet. Liquid-sidokedjan implementerar dem för större integritet och MimbleWimble utökar dem pÄ samma sÀtt.

Fördelarna med konfidentiella transaktioner innebÀr dock Àven flera stora förÀndringar. Kryptovalutor kÀmpar ofta med skalbarhet och genomströmning i basskiktet och större transaktionsstorlekar tilltalar inte alla. SekretessföresprÄkarna anser som sagt att det Àr viktigt att dölja transaktionsbelopp och deltagarna för att verkligen tillÄta kryptovaluta att fungera som utbytbara pengar.