December 22, 2020

Översikt av det tekniska systemet för tBTC

tBTC innehåller nya designfunktioner som har viktiga konsekvenser för användarna. Denna bit förklarar fyra av dessa: DTT-kvitton, flera batchstorlekar, Random Beacon Keep och tröskelunderskrifter.

TBTC Deposit Token (DTT)

TBTC Deposit Token (DTT) är en icke-fungibel token som slås när en användare begär en insättning. En DTT är en icke-fungibel ERC-721-token som fungerar som en motsvarighet till TBTC. Representerar ett krav på grundläggande UTXO för en insättning på Bitcoin-blocket.

TBTC-insättningar kan låsas eller låses upp. Ett låst lager kan endast lösas in av lagerägaren med motsvarande DTT. Varje DTT är unik för den insättning som upprätthåller den och har ensamrätt på upp till 6 månader att lösa in insättningen.

När insättningen är fullständigt kvalificerad genom ett bevis på finansiering av Bitcoin-transaktioner (kallad SPV Relay) kan innehavaren begära inlösning och, efter att ha betalat utestående signeringsavgifter, garanteras samma UTXO som finansierade insättning i Bitcoin-nätverket.

DTT och TBTC är utbytbara genom ett kontrakt som kallas automatiskt, som hanterar DTT-börsen för TBTC och vice versa.

- Med tanke på en DTT kommer det att ligga TBTC.

- Med tanke på TBTC kommer den att bränna den och returnera en specifik DTT.

DTT är skyldig att lösa in en blockerad BTC-insättning. Tänk på det som biljetten till en strikt kontroll av dina kläder: utan den kan du inte få tillbaka din BTC.

DTT: er är överförbara. Innehavare kan till exempel välja att handla med dem eller använda dem som säkerhet någon annanstans.

I händelse av bedrägeri eller säkerhetsproblem garanteras innehavaren av en DTT kompensation i TBTC genom garantin för underteckningsgruppen. Om insättningen löses in av ett annat konto efter att den har löpt ut garanteras DTT-innehavaren kompensation i TBTC (minus signaturavgifter). Observera att en DTT-innehavare kan lösa in sin insättning för BTC även efter utgången av sexmånadersperioden, om ingen annan användare har löst in den.

Eftersom det finns mer värde i att stjäla en 1 BTC-insättning än en 0,001 BTC-insättning, är den förmodligen mer mottaglig för attacker som omorganisationer. Precis som NFT tillåter DTT: er denna risk att bedömas, vilket är mycket relevant för applikationer som använder BTC som säkerhet. Varje mottagare av en DTT måste bedöma riskprofilen för en given token. DTT: er är utformade för att ge en nettofördel genom att isolera risker, eftersom attacker mot insättningen som kräver en DTT endast bör påverka en DTT-innehavare snarare än leveransrapporterad valuta.

Massor och partistorlekar


Insättningar vid tBTC hanteras i satser. För att göra systemet rationellt och hanterbart är satser en av en uppsättning fasta dimensioner som hanteras av systemet. Om en insättare vill sätta in en större mängd BTC än den som accepteras av storleken på befintliga partier, måste han skapa fler insättningsförfrågningar och finansiera fler insättningar. Detta gör att varje arkiv kan stödjas av en annan signeringsgrupp, vilket förenklar både bindningen av signeringsgrupperna och isolerar det bredare systemet mot fel i den isolerade, skadliga eller på annat sätt signerade gruppen.

Denna design har viktiga konsekvenser som användarna bör vara medvetna om.

Varje lager måste motsvara en av partiets standarddimensioner

Systemet hanterar alla fall av över- och underbetalning - där en användare sätter in ett belopp som antingen är större eller mindre än standardinsättningsstorleken - som felaktigt beteende hos användaren. Huvudeffekten av över- eller underbetalningen på systemet är att snedvrida undertecknarnas säkerhet. Systemet är utformat för att överföra användarkostnader.

Vid otillräcklig betalning - där en användare sätter in ett belopp som är mindre än storleken på det valda BTC-partiet - skapar systemet inte ett bevis som kan lösas in för TBTC. Användaren förlorar BTC låst i förvaret, vilket kan delas mellan undertecknarna.

Användare bör vara medvetna om detta. I en situation där till exempel den enda tillgängliga batchstorleken är 1 BTC är det lätt att föreställa sig att en användare försöker göra anspråk på 1 TBTC genom att göra två insättningar på 0,5 BTC vardera. En användare som gör detta kommer att förlora alla sina BTC: er eftersom systemet helt enkelt känner igen två separata betalningsinstanser. Kort sagt, storleken på en insättning är fast vid insättningen och insättningen måste finansieras med detta belopp.

Vid överbetalning - om en användare sätter in mer än storleken på det valda BTC-partiet - genererar systemet ett bevis, men endast för standardpartistorleken, återbetalas i utbyte mot detta belopp i TBTC. På en effektiv marknad skulle vi förvänta oss att detta löses in omedelbart, eftersom Återlösaren förväntar sig att det överbelastade beloppet låst i insättningen som arbitrage. Om inte insättningen löses in av den ursprungliga insättaren sparas överbetalningen.

I ett exempel på lot 1 BTC-storlek får en användare som skickar in 1.4 BTC ett bevis som gör att de kan skriva exakt 1 TBTC (det belopp som motsvarar lotstorleken). Det finns nu en överdimensionerad insättning i systemet, som förväntas lösas in snabbt, med tanke på möjligheten att byta 1 TBTC mot 1,4 BTC. Användaren som dessutom har deponerat BTC kommer, som alla andra användare, att kunna lösa in 1 TBTC för 1 BTC, men dessutom går 0,4 BTC förlorad (såvida inte användaren inser sitt misstag och snabbt löser in deras TBTC för den ursprungliga 1,4 BTC-insättningen).

Systemet accepterar endast den första UTXO som är större än storleken på lagringsbatchen. Alla andra BTC: er som skickas till signeringsgruppen går förlorade. Därför är det absolut nödvändigt att insättare bara skickar en UTXO. Att acceptera flera UTXO: er från insättare skulle medföra betydande komplexitet och avgifter på gaskedjan, eftersom varje UTXO skulle bevisas genom SPV och en uttryckligen auktoriserad signatur. Undertecknarna bör uppmuntras att underteckna varje transaktion trots att UTXO: s totala värde inte är känt.

Slumpmässigt fyr för undertecknarval

Keep Network kräver en slumpmässig pålitlig källa för att välja tBTC-signatärer. Detta har formen av ett BLS tröskelrelä.

När en begäran kommer att skapa en signaturgrupp använder tBTC-systemet ett slumpmässigt utsäde från en säker decentraliserad slumpmässig fyr för att slumpmässigt välja medlemmar i signeringsgruppen från den kvalificerade gruppen av undertecknare. Dessa undertecknare samordnar ett distribuerat nyckelgenereringsprotokoll som resulterar i en offentlig ECDSA-nyckel för gruppen, som används för att producera en plånbokadress som sedan publiceras i värdkedjan. Detta avslutar urvalsfasen för undertecknaren.

Tröskelns signaturer
tBTC använder tröskelsignaturer för att generera nycklar. Tröskelns signaturer tillåter en grupp undertecknare att generera en enda offentlig nyckel från en uppsättning "privata nyckel" -åtgärder. "Denna metod gör det möjligt för en delmängd av undertecknare att skapa signaturer på den större gruppens vägnar. Användare kan verifiera grupper av undertecknare genom att en enda offentlig nyckel som motsvarar flera privata nycklar, vilket ger säkerhet utan arbetskraven för vanliga multisig-modeller.

Tröskelunderskrifter erbjuder ett antal fördelar:

Relativt liten samordning behövs för att skapa en grupp
Ingen medlem i gruppen ska lita på
De är lika resistenta som hälften av gruppen är skadlig eller inte genererar
För tBTC v1 är signaturgrupperna 3-av-3, vilket innebär att de är grupper om 3 signatärer som kräver att alla 3 signatärerna arbetar tillsammans för att skapa signaturer på gruppens vägnar.

Du hittar mer information om tröskelsignaturer här.

Besök GitHub för mer information, verktyg och dokumentation. Gå med i tBTC-e-postlistan för uppdateringar, inklusive information om den kommande utgåvan av tBTC på Ethereum mainnet. Läs de tekniska specifikationerna för att lära dig mer om den tekniska designen av tBTC. Gå med i #tbtc-kanalen på Discordia för tekniska frågor om tBTC och tbtc.js, och följ med på Twitter för nyheter och möjligheter att delta.