tBTC teknisk systemoversigt
Lunafox#3353tBTC indeholder nye designfunktioner, der har vigtige konsekvenser for brugerne. Dette stykke forklarer fire af disse: TDT-kvitteringer, flere partistørrelser, Keeps tilfældige fyr og tærskelunderskrifter.
TBTC Deposit Token (TDT)
TBTC Deposit Token (TDT) er et ikke-fungibelt token, der præges, når en bruger anmoder om et depositum. En TDT er et ikke-svampeligt ERC-721-token, der fungerer som en modstykke til TBTC. Det repræsenterer et krav på et indskuds underliggende UTXO på Bitcoin blockchain.
TBTC-indskud kan låses eller låses op. Et låst depositum kan kun indløses af depositumsejeren med den tilsvarende TDT. Hver TDT er unik for det depositum, der præges, og har eneretten i op til 6 måneders periode til at indløse depositumet.
Når et depositum er fuldt kvalificeret gennem et bevis på finansieringen af Bitcoin-transaktionen (kaldet SPV Relay), kan indehaveren anmode om indfrielse, og efter at have betalt eventuelle udestående signeringsgebyrer garanteres den samme UTXO, som finansierede depositum på Bitcoin-netværket.
TDT og TBTC kan udskiftes gennem en kontrakt kaldet salgsautomaten, der administrerer udvekslingen af TDT til TBTC og omvendt.
- Givet en TDT, vil den prikke TBTC.
- I betragtning af TBTC brænder den og returnerer en bestemt TDT.
TDT er forpligtet til at indløse en låst BTC-indbetaling. Tænk på det som billetten fra en streng frakkecheck: uden den kan du ikke få din BTC tilbage.
TDT'er kan overføres. Indehavere kan f.eks. Vælge at handle med dem eller bruge dem som sikkerhed andetsteds.
I tilfælde af svig eller sikkerhedsstillelse garanteres indehaveren af en TDT kompensation i TBTC via signeringsgruppens obligatoriske sikkerhed. Hvis indbetalingen indløses af en anden konto, efter at den er nået, er TDT-indehaveren garanteret kompensation i TBTC (minus underskriftsgebyrer). Bemærk, at en TDT-indehaver stadig kan indløse deres indbetaling for BTC, selv når 6 måneders løbetid er udløbet, hvis ingen andre brugere har indløst det.
Da der er mere værdi i at stjæle en 1 BTC-indbetaling end en 0,001 BTC-indbetaling, er førstnævnte sandsynligvis mere modtagelige for angreb som omorganiseringer. Som NFT tillader TDT'er at prisfastsætte denne risiko, hvilket er meget relevant for applikationer, der bruger BTC som sikkerhed. Enhver modtager af en TDT skal selv vurdere risikoprofilen for et givet token. TDT'er er designet til at give en nettofordel ved at isolere risiko, da angreb mod depositum, der understøtter en TDT, kun skal påvirke TDT-indehaveren i stedet for hele den forsyningsbundne valuta.
Masser af partier
Indskud på tBTC styres i partier. For at gøre systemet rationelt og håndterbart er partier et af et sæt faste størrelser, der administreres af systemet. Hvis en indskyder ønsker at deponere en større mængde BTC end understøttet af eksisterende partistørrelser, skal de oprette flere indbetalingsanmodninger og finansiere flere indskud. Dette giver mulighed for, at hver indbetaling bakkes op af en anden signeringsgruppe, hvilket både forenkler bindingen af signeringsgrupper og isolerer det bredere system mod isolerede signaturgruppefejl, ondsindet eller på anden måde.
Dette design har vigtige konsekvenser, som brugerne skal være fortrolige med.
Hver indbetaling skal matche en af standardpartistørrelserne
Systemet håndterer alle tilfælde af overbetaling og underbetaling - hvor en bruger indbetaler et beløb, der enten er større eller mindre end standardindbetalingsstørrelsen - som defekt brugeradfærd. Den primære effekt af over- eller underbetaling på systemet er at fordreje underskrivernes sikkerhed. Systemet er designet til at overføre omkostningerne til dette til brugeren.
I tilfælde af underbetaling - hvor en bruger deponerer et beløb, der er mindre end den valgte BTC-partistørrelse - opretter systemet ikke et bevis, der kan indløses til TBTC. Brugeren mister BTC låst i depositum, som kan deles mellem underskrivere.
Brugere skal være opmærksomme på dette. I en situation, hvor den eneste tilgængelige partistørrelse f.eks. Er 1 BTC, er det let at forestille sig en bruger, der forsøger at kræve 1 TBTC ved at foretage to indbetalinger på 0,5 BTC hver. En bruger, der gør det, mister alle deres BTC, da systemet simpelthen genkender to forskellige tilfælde af underbetaling. Kort sagt, lotstørrelsen på et depositum er fast, når depositumet oprettes, og depositumet skal finansieres med dette beløb.
I tilfælde af overbetaling - hvor en bruger deponerer mere end den valgte BTC-partistørrelse - genererer systemet et bevis, men kun for standardpartistørrelsen, der kan indløses i bytte for dette beløb i TBTC. På et effektivt marked forventer vi, at dette straks indløses, da indløseren forventer at tage det overfinansierede beløb låst i depositum som arbitrage. Medmindre depositummet indløses af den oprindelige indskyder, fortabes overbetaling.
I et eksempel på 1 BTC-lotstørrelse vil en bruger, der deponerer 1,4 BTC, modtage et bevis, der giver dem mulighed for at prikke nøjagtigt 1 TBTC (det beløb, der svarer til partistørrelsen). Der er nu et stort depositum i systemet, som man kan forvente at blive indløst hurtigt givet mulighed for at veksle 1 TBTC til 1,4 BTC. Brugeren, der har deponeret den ekstra BTC, vil som alle andre brugere kunne indløse deres 1 TBTC til 1 BTC, men den ekstra 0,4 BTC går tabt (medmindre brugeren indser deres fejl og hurtigt indløser deres TBTC til den oprindelige 1,4 BTC-indbetaling ).
Systemet accepterer kun den første UTXO, der er større end indbetalingspartiets størrelse. Alle andre BTC sendt til signeringsgruppen fortabes. Derfor er det bydende nødvendigt, at indskydere kun sender en enkelt UTXO. Accept af flere UTXO'er fra indskydere ville pålægge betydelige kompleksitets- og gasafgifter på kæden, da hver UTXO skulle bevises via SPV, og en underskrift på det udtrykkeligt godkendt. Underskrivere skal tilskyndes til at underskrive hver transaktion på trods af at den samlede værdi af UTXO'erne ikke er kendt.
Random Beacon til valg af underskriver
Keep-netværket kræver en betroet kilde til tilfældighed for at vælge tBTC-underskrivere. Dette tager form af et BLS-tærskelrelæ.
Når der kommer en anmodning om at oprette en signeringsgruppe, bruger tBTC-systemet et tilfældigt frø fra et sikkert decentralt tilfældigt fyr til tilfældigt at vælge signeringsgruppemedlemmer fra den kvalificerede pulje af underskrivere. Disse underskrivere koordinerer en distribueret nøglegenereringsprotokol, der resulterer i en offentlig ECDSA-nøgle for gruppen, som bruges til at producere en tegnebogadresse, der derefter offentliggøres til værtskæden. Dette afslutter underskrivervalgsfasen.
Tærskelunderskrifter
tBTC bruger tærskelsignaturer til generering af nøgler. Tærskelunderskrifter tillader en gruppe underskrivere at generere en enkelt offentlig nøgle ud fra et sæt private nøgle "delinger". Denne metode gør det muligt for en delmængde af underskrivere at oprette underskrifter på vegne af den større gruppe. Brugere kan verificere grupper af underskrivere gennem en enkelt offentlig nøgle svarende til flere private nøgler. Dette giver sikkerhed uden arbejdskravene til standard multisig-design.
Tærskelunderskrifter giver en række fordele:
- Relativt lidt koordination er nødvendig for at oprette en gruppe
- Intet enkelt medlem af gruppen har tillid til
- De er modstandsdygtige over for så meget som halvdelen af gruppen er ondsindet eller ikke genererer
For tBTC v1 er underskriftsgrupper 3-af-3, hvilket betyder, at de er grupper på 3 underskrivere, der kræver, at alle 3 underskrivere samarbejder om at oprette underskrifter på vegne af gruppen.
Du kan finde yderligere oplysninger om tærskelsignaturer her.
Besøg vores GitHub for mere information, værktøjer og dokumentation. Deltag i tBTC-mailinglisten for opdateringer, herunder oplysninger om tBTCs kommende lancering på Ethereum mainnet. For at lære mere om tBTCs tekniske design, læs den tekniske specifikation. Deltag i Keep #tbtc-kanalen på Discord for tekniske spørgsmål om tBTC og tbtc.js, og følg med på Twitter-nyheder og muligheder for at deltage.