Autors: Omērs Šlomovics (Omer Shlomovits), ZenGo.
Sliekšņa parakstu shēma (TSS) ir kriptogrāfisks primitīvs decentralizētai atslēgu ģenerēšanai un parakstīšanai. TSS izmantošana blokķēdes klientos ir jauna paradigma, kas var sniegt daudzas priekšrocības, jo īpaši drošības jomā. Plašākā nozīmē TSS var ietekmēt atslēgu pārvaldības sistēmu (piemēram, kriptovalūtu maku) dizainu un palīdzēt nodrošināt pamata atbalstu DeFi risinājumos. Tomēr TSS ir salīdzinoši jauna tehnoloģija, tāpēc ir jāņem vērā arī dažādi riski un ierobežojumi.
Šajā rakstā mēs apskatīsim, kas ir TSS, kādas ir tā sniegtās potenciālās priekšrocības blokķēdes pasaulē, ieviešanas iespējas blokķēdes klientā, salīdzināsim to ar Šamira slepeno informācijas kopīgošanu un vairākparakstu (Multisig) risinājumiem, noskaidrosim TSS izmantošanas iespējas decentralizētā atslēgu pārvaldībā un, visbeidzot, apskatīsim ar to saistītos riskus un ierobežojumus.
Kriptogrāfijas spēks
Lai saprastu TSS, ir nepieciešamas pamatzināšanas par kriptogrāfiju. Kopš 20. gs. 70. gadiem arvien vairāk interneta sistēmu (piemēram, TLS un PGP) ir izmantojušas asimetrisko kriptogrāfiju jeb t. s. publiskās atslēgas kriptogrāfiju (PKC). PKC izmanto divu veidu atslēgas: publisko un privāto. Publiskā atslēga nav jāglabā noslēpumā, un to var publicēt un izmantot ikviens, bet privātā atslēga ir slepena informācija, kas aizsargā sistēmu.
Šifrēšana un digitālie paraksti ir divi populārākie PKC izmantošanas veidi. Gan šifrēšana, gan digitālo parakstu shēmas balstās uz trim algoritmu kopām. Pirmā ietver privātās un publiskās atslēgas pāra izveidi, otrā – šifrēta teksta / paraksta ģenerēšanu, bet trešā – atšifrēšanas/verifikācijas procesu. Attiecībā uz digitālajiem parakstiem parakstīšanas algoritms pieprasa privāto atslēgu, kas ir zināma tikai tās īpašniekam un ļauj izveidot unikālu parakstu. Paraksts tiek pievienots ziņojumam tā, ka ikviens, kam ir pieejama publiskā atslēga, var pārbaudīt tā autentiskumu un pareizību.
Blokķēde
Blokķēde, bez šaubām, ir ļoti jaudīga tehnoloģija. Tā nodrošina konsensa slāni, kas organizē un reģistrē notikumus. Šādā infrastruktūrā lietotājiem ir iespēja veidot decentralizētas ekonomikas un pat valdības. Pārsteidzoši, bet kriptogrāfija, kas nepieciešama, lai darbinātu pamata blokķēdi, var būt balstīta tikai uz digitālajiem parakstiem. Blokķēdes kontekstā privātās atslēgas atspoguļo identitātes, bet paraksts ir publisks paziņojums vai prasība, ko izsaka identitāte. Blokķēde sakārto šos paziņojumus un validē tos saskaņā ar noteikumu kopumu, kas nodrošina, ka paraksti ir autentiski un pareizi.
Atšķirībā no klasiskās kriptogrāfijas, ko izmanto blokķēdē, mūsdienu kriptogrāfiskie rīki ietver tādus maģiskus rīkus kā nulles zināšanu apliecinājumi, homomorfā šifrēšana un daudzpusējā skaitļošana. Kā novērojām pēdējā desmitgadē, blokķēdes pētījumi ir radījuši ievērojamu progresu praktiskajā kriptogrāfijā, ieskaitot atklājumus jau minētajās jomās.
Šajā rakstā mēs pievērsīsimies vienam no šiem atklājumiem – efektīviem un drošiem sliekšņa parakstiem (TSS).
MPC un sliekšņa parakstu shēma (TSS)
Daudzpusējā skaitļošana (MPC) ir kriptogrāfijas joma, kuras pirmsākumi saistāmi ar Endrjū Či-Jao fundamentālo darbu pirms gandrīz 40 gadiem. MPC gadījumā personu grupa, kas savstarpēji neuzticas, mēģina kopīgi aprēķināt funkciju, izmantojot savus ievades datus, kas citiem netiek atklāti.
Piemēram, pieņemsim, ka kāda uzņēmuma n darbinieki vēlas uzzināt, kurš saņem vislielāko algu, bet neviens nevēlas citiem atklāt savu faktisko algu. Šajā gadījumā privātie ievades dati būs algas, bet rezultāts būs darbinieka ar lielāko algu vārds. Ja veicam šo aprēķinu, izmantojot MPC, mēs nodrošinām, ka aprēķinu veikšanas gaitā netiek atklāta neviena darbinieka alga.
MPC divas galvenās iezīmes ir precizitāte un privātums:
Precizitāte: algoritma radītais rezultāts ir precīzs (atbilstoši gaidītajam).
Privātums: konfidenciālie ievades dati, kas pieder kādai no iesaistītajām pusēm, netiek atklāti citām pusēm.
Mēs izmantosim MPC, lai decentralizētā veidā aprēķinātu digitālo parakstu. Apskatīsim, kā minētās īpašības var izmantot parakstiem. Atgādināsim, ka parakstu izveide sastāv no trim soļiem:
Atslēgu ģenerēšana: pirmais solis ir arī vissarežģītākais. Ir jāizveido atslēga, kas būs publiska un tiks izmantota turpmāko parakstu verificēšanai. Taču katrai pusei ir jāģenerē arī individuāla slepenā informācija, ko nosauksim par slepeno daļu. No precizitātes un privātuma viedokļa šī funkcija visām pusēm ģenerēs to pašu publisko atslēgu, bet atšķirīgu slepeno daļu, kas nozīmē: 1) privātumu: informācija par slepenajām daļām netiek atklāta citām pusēm; un 2) precizitāti: publiskā atslēga ir slepeno daļu funkcija.
Parakstīšana: šis solis ietver paraksta ģenerēšanas funkciju. Katras puses ievadītie dati būs attiecīgās puses noslēpuma daļa, kas tiks iegūta iepriekšējā soļa (decentralizētas atslēgu ģenerēšanas) rezultātā. Tāpat ir arī publiski ievades dati, kas ir zināmi visiem, proti, parakstāmais ziņojums. Izvades dati būs digitāls paraksts, un privātuma īpašība nodrošinās, ka aprēķina laikā netiek izpausti noslēpuma daļu dati.
Verifikācija: verifikācijas algoritms ir tāds pats kā klasiskajā izpildījumā. Lai nodrošinātu saderību ar vienas atslēgas parakstiem, ikvienam, kam ir zināma publiskā atslēga, jābūt iespējai verificēt un validēt parakstus. Tieši to dara blokķēdes validējošie mezgli.
Sliekšņa parakstu shēma (TSS) ir nosaukums, ar ko apzīmē šo decentralizētas atslēgu ģenerēšanas (DKG) un decentralizētas parakstīšanas apvienojumu.
TSS apvienošana ar blokķēdēm
Ierastais TSS izmantošanas veids blokķēdē ietver blokķēdes klienta pielāgošanu, lai tas ģenerētu atslēgas un parakstus, izmantojot TSS. Šajā gadījumā ar terminu "blokķēdes klients" apzīmējam komandu kopumu, ko izpilda pilnais mezgls. Praksē TSS tehnoloģija ļauj aizstāt visas ar privātajām atslēgām saistītās komandas ar decentralizētu skaitļošanu.
Lai to paskaidrotu, īsumā aprakstīsim, kā klasiskā blokķēdes sistēmā tiek veidotas jaunas adreses. Vienkārši izsakoties, mēs varam izveidot jaunu adresi, ģenerējot privāto atslēgu un pēc tam no tās aprēķinot publisko atslēgu. Visbeidzot, blokķēdes adrese tiek iegūta, izmantojot publisko atslēgu.
Izmantojot TSS, n dalībnieki, kuriem katram ir slepena privātās atslēgas daļa (atsevišķās daļas netiek atklātas citām pusēm), kopīgi aprēķinātu publisko atslēgu. No publiskās atslēgas iespējams iegūt adresi tāpat kā tradicionālajā sistēmā, tāpēc adreses ģenerēšana nav atkarīga no konkrētas blokķēdes. Priekšrocība ir tāda, ka privātā atslēga vairs nav kritiskais punkts, jo katra puse glabā tikai vienu tās daļu.
To pašu var izdarīt, parakstot darījumus. Šajā gadījumā tā vietā, lai darījumu parakstītu viena puse ar savu privāto atslēgu, tiek veikta decentralizēta parakstu ģenerēšana starp vairākām pusēm. Tādējādi katra puse var ģenerēt derīgu parakstu, ja vien pietiekami daudzas no tām rīkojas godīgi. Mēs atkal pārgājām no lokālas skaitļošanas (viens kritiskais punkts) uz interaktīvu skaitļošanu.
Jāpiemin, ka decentralizētu atslēgu ģenerēšanu iespējams veikt dažādu veidu piekļuves sistēmās – vispārīga "t no n" sistēma var izturēt līdz pat t patvaļīgām kļūdām ar privāto atslēgu saistītās darbībās, neapdraudot drošību.
TSS un vairākparakstu risinājumu salīdzinājums
Dažas blokķēdes piedāvā TSS funkcionalitāti kā iebūvētu vai programmējamu daļu no programmatūras. To sauc par vairākparakstu jeb "Multisig" funkciju. Lai labāk izprastu atšķirības, varam apskatīt "Multisig" kā TSS blokķēdes lietotņu slānī.
Citiem vārdiem sakot, gan "Multisig", gan TSS būtībā cenšas sasniegt līdzīgus mērķus, taču TSS izmanto kriptogrāfiju ārpus ķēdes, bet "Multisig" notiek ķēdē. Tomēr blokķēdei ir nepieciešams veids, kā šifrēt vairākparakstu datus, un tas var kaitēt privātumam, jo piekļuves struktūra (parakstītāju skaits) tiek atklāta blokķēdē. Vairākparakstu darījumu izmaksas ir augstākas, jo informācija par dažādiem parakstītājiem arī jāpārraida blokķēdē.
TSS gadījumā parakstītāju dati tiek iekļauti parastā darījumā, samazinot izmaksas un saglabājot privātumu. Turpretī vairākparakstu darījums var nebūt interaktīvs, tāpēc tas novērš grūtības, ko ietver sarežģīta sakaru slāņa darbības nodrošināšanu starp dažādiem parakstītājiem.
Galvenā atšķirība ir tajā, ka vairākparakstu sistēma ir paredzēta konkrētai blokķēdei un ir jāievieš no jauna katrā blokķēdē, turklāt dažkārt šāda iespēja vispār nav pieejama. Turpretī TSS izmanto tikai kriptogrāfiju, tāpēc to vienmēr var izmantot. Lielisks raksts ar šo atšķirību detalizētu skaidrojumu ir atrodams šeit.
TSS un Šamira slepenās informācijas kopīgošanas shēmas salīdzinājums
Šamira slepenās informācijas kopīgošanas shēma (SSSS) piedāvā veidu, kā decentralizēti glabāt privāto atslēgu, lai tā, kamēr netiek izmantota, tiktu glabāta vairākās vietās. SSSS un TSS ir divas atšķirības:
Atslēgu ģenerēšana: SSSS gadījumā ir viena puse – t. s. "izplatītājs", kas atbild par privātās atslēgas slepeno daļu ģenerēšanu. Tas nozīmē, ka atslēgu ģenerēšanas laikā privātā atslēga tiek ģenerēta vienā vietā un pēc tam ar izplatītāja palīdzību pārsūtīta uz dažādām citām vietām. TSS gadījumā nav šāda izplatītāja – šī loma ir sadalīta, jo pilna privātā atslēga nekad netiek glabāta vienuviet.
Parakstīšana: SSSS gadījumā, lai veiktu parakstīšanu, pusēm ir jāatjauno pilna privātā atslēga, kas nozīmē atsevišķu kritisko punktu ikreiz, kad nepieciešams paraksts. TSS gadījumā parakstīšana tiek veikta decentralizēti, nevienā brīdī nesavienojot slepenās daļas.
Kā redzams, TSS privātā atslēga (kas atspoguļo sistēmas drošību) nekad neatrodas vienuviet.
Sliekšņa maki
Uz TSS tehnoloģijas balstītie maki nedaudz atšķiras no tradicionālajiem kriptovalūtu makiem. Parastais maks ģenerē mnemonisko frāzi un izmanto to, lai deterministiski iegūtu adreses. Lietotājs var vēlāk izmantot šo hierarhisko deterministisko (HD) struktūru, lai: 1) sasniegtu privātās atslēgas, kas atbilst maka adresēm, un parakstītu ar tām darījumus, un 2) atgūtu visas maka atslēgas, izmantojot mnemonisko frāzi.
Sliekšņa maka gadījumā viss ir daudz sarežģītāk. Lai gan ir iespējams ģenerēt HD struktūru, tas ir jādara decentralizēti, kā ģenerējot citu MPC protokolu. Pusēm kopīgi jāizlemj, kura būs nākamā izmantotā atslēga. Citiem vārdiem sakot, katrai pusei būs sava mnemoniskā frāze. Mnemoniskās frāzes tiek ģenerētas atsevišķi un nekad netiek apvienotas, lai viena puse nevarētu iegūt privātās atslēgas, izmantojot savu mnemonisko frāzi.
Arī uz TSS balstītajiem makiem ir sava drošības sistēma, kas ļauj rotēt privātās atslēgas bez attiecīgās publiskās atslēgas un blokķēdes adreses maiņas. Privāto atslēgu rotācija jeb t. s. proaktīvā slepenās informācijas kopīgošana ir vēl viens MPC protokols, kas izmanto slepenās daļas kā ievades datus un rezultātā izveido jaunu slepeno daļu kopumu. Vecās slepenās daļas var izdzēst, un jaunās daļas funkcionē identiski vecajām.
Šāda struktūra pievieno drošībai laika dimensiju, kas nozīmē, ka uzbrucējam ir vienlaikus jāatrodas vairākās vietās, lai varētu īstenot uzbrukumu sliekšņa makam. Uzbrucējs neko neiegūs, apvienojot slepenās daļas pirms un pēc rotācijas, ja vēlēsies viltot parakstu.
Šī veida maku trūkums ir tāds, ka bez mnemoniskās frāzes tie nav saderīgi ar vienas atslēgas maku sistēmām. Tādēļ ir svarīgi rūpīgi izvērtēt, kuras puses glabās slepenās daļas.
Ir vairāki iespējamie arhitektūras risinājumi:
TSS kā ārpakalpojums: lietotājs izmanto "n" serverus, kas viņa uzdevumā veic skaitļošanu. Atslēgu ģenerēšanas, pārvaldības un parakstīšanas efektīva deleģēšana pakalpojumu sniedzējiem, kam nepieder attiecīgie aktīvi, bet kas par atlīdzību piedāvā papildu drošības slāni.
Vairāku ierīču izmantošana: lietotājs nodrošina TSS darbību starp viņam piederošajām ierīcēm. Piemēram, viena puse var būt kāda lietu interneta (IoT) ierīce, otra – lietotāja mobilais tālrunis, trešā puse – viņa klēpjdators, un tā tālāk.
Hibrīda sistēma: šajā gadījumā TSS darbojas tā, ka dažus dalībniekus kontrolē ārējie pakalpojumu sniedzēji, bet citi izmanto lietotājam piederošas ierīces.
Pirmā metode noņem apjomīgo TSS skaitļošanu no lietotāja klienta. No otras puses, pakalpojumu sniedzēji var sadarboties (mēs pieņemam, ka vienlaikus nenotiek uzbrukumi pietiekami lielam to skaitam, taču praksē šāda iespēja pastāv) un nozagt lietotāja aktīvus.
Otrā metode sniedz lietotājam pilnīgu kontroli, taču apgrūtina darījumu norisi, jo nepieciešamas vairākas ierīces, lai būtu tiešsaistē un mijiedarbotos ar TSS skaitļošanas procesiem.
Tiek uzskatīts, ka trešā metode apvieno labāko no abiem iepriekšējiem risinājumiem, jo tā nodrošina lietotājam vienkāršu un ātru veidu, kā veikt darījumus, neriskējot ar iespēju, ka darījumi tiks veikti bez lietotāja atļaujas.
TSS un viedie līgumi
Gadu gaitā pētnieki ir raduši daudzus digitālo parakstu izmantošanas veidus, un daži no tiem ir visai nozīmīgi. Kā minēts, TSS ir kriptogrāfisks primitīvs, kas var ievērojami uzlabot drošību. Blokķēžu kontekstā varētu teikt, ka daudzas funkcijas var aizstāt ar kriptogrāfiju, kas balstīta uz TSS. Uz TSS sistēmas pamata iespējams veidot decentralizētas lietotnes, kā arī 2. slāņa mērogošanas, atomapmaiņas, jaukšanas un pārmantošanas risinājumus un daudz ko citu. Tas varētu palīdzēt aizstāt dārgas un riskantas ķēdes viedo līgumu operācijas ar lētākām un drošākām alternatīvām.
Lūk, daži piemēri: vairāklēcienu slēdzenes atjautīgā veidā izmanto divu pušu parakstus un ir izmantojamas kā alternatīva Bitcoin Lightning tīklam ar drošāku un privātāku maksājumu kanālu tīklu. ShareLock ir viens no lētākajiem jaukšanas risinājumiem Ethereum tīklā, kurš balstīts uz viena sliekšņa paraksta verifikāciju.
Riski
Pēdējo pāris gadu laikā ir ievērojami palielinājies TSS risinājumu ieviešanas gadījumu skaits. Tomēr tā ir salīdzinoši jauna tehnoloģija, tāpēc ar to joprojām ir saistīti dažādi ierobežojumi un bažas. Salīdzinājumā ar klasisko publiskās atslēgas kriptogrāfiju TSS protokoli var būt ļoti sarežģīti, un tie vēl nav pārbaudīti intensīvos apstākļos. Parasti TSS, salīdzinot ar vienkāršiem digitāliem parakstiem, nepieciešami papildu, vājāki kriptogrāfiskie pieņēmumi. Tā rezultātā tiek atklāti kriptogrāfiskie uzbrukumu vektori, kādi nepastāvēja tradicionālajās sistēmās (skati šo "Breaking Bitcoin Conference 2019" prezentāciju). Drošības inženieri un praktiskie kriptogrāfi var palīdzēt droši ieviest TSS tavā sistēmā.
Pozitīvi ir tas, ka esošie un jaunie risinājumi kļūst arvien spēcīgāki, palielinoties kvalitatīvu ieguldījumu, profesionālapskašu, revīziju un algoritmisko veiktspējas uzlabojumu skaitam.
Noslēgumā
Šajā rakstā mēs sniedzām pamatinformāciju par sliekšņa parakstu shēmu (TSS), kas ir fascinējošs kriptogrāfiskais primitīvs, kas varētu būtiski mainīt to, kā izmantojam blokķēdi.
Šajā rakstā netika apspriests sliekšņa ECDSA, ko var izmantot Binance Chain un Bitcoin tīklā, taču interesenti var skatīt tālāk uzskaitītos pētījumus. Ja vēlies izmēģināt dažus TSS risinājumus, atradīsi divpusēja Binance Chain maka kodu šeit, kā arī vari izmēģināt ZenGo maku, kas izmanto hibrīdveida metodi, lai nodrošinātu nepārvaldītu, divpusēju Binance Chain maku.
Turpini lasīt: