Am anhysbysrwydd mewn blockchains seiliedig ar gyfrif

Rydym wedi bod â diddordeb yn y pwnc o anhysbysrwydd mewn cryptocurrencies ers amser maith ac yn ceisio dilyn datblygiad technolegau yn y maes hwn. Yn ein herthyglau rydym eisoes wedi trafod yn fanwl yr egwyddorion gweithredu trafodion cyfrinachol yn Monero, ac hefyd yn cario allan adolygiad cymharol technolegau sy'n bodoli yn y maes hwn. Fodd bynnag, mae pob cryptocurrencies dienw heddiw yn cael eu hadeiladu ar y model data a gynigir gan Bitcoin - Allbwn Trafodiad Heb ei Wario (UTXO o hyn ymlaen). Ar gyfer cadwyni bloc sy'n seiliedig ar gyfrifon fel Ethereum, atebion presennol ar gyfer gweithredu anhysbysrwydd a chyfrinachedd (er enghraifft, Mobius neu Aztec) ceisio ailadrodd y model UTXO mewn contractau smart.

Ym mis Chwefror 2019, grŵp o ymchwilwyr o Brifysgol Stanford a Visa Research rhyddhau rhagargraff "Zether: Tuag at breifatrwydd ym myd contractau smart." Yr awduron oedd y cyntaf i gynnig dull o sicrhau anhysbysrwydd mewn cadwyni bloc sy'n seiliedig ar gyfrifon a chyflwynodd ddwy fersiwn o gontract smart: ar gyfer trafodion cyfrinachol (cuddio balansau a symiau trosglwyddo) a dienw (cuddio'r derbynnydd a'r anfonwr). Rydym yn gweld y dechnoleg arfaethedig yn ddiddorol a hoffem rannu ei ddyluniad, yn ogystal â siarad am pam mae problem anhysbysrwydd mewn cadwyni bloc sy'n seiliedig ar gyfrifon yn cael ei hystyried yn anodd iawn ac a lwyddodd yr awduron i'w datrys yn llawn.

Am strwythur y modelau data hyn

Yn y model UTXO, mae trafodiad yn cynnwys “mewnbynnau” ac “allbynnau”. Analog uniongyrchol o “allbynnau” yw'r biliau yn eich waled: mae gan bob “allbwn” ryw enwad. Pan fyddwch chi'n talu rhywun (ar ffurf trafodiad) rydych chi'n gwario un neu fwy o “allbynnau”, ac os felly maen nhw'n dod yn “fewnbynnau” o'r trafodiad, ac mae'r blockchain yn nodi eu bod wedi'u gwario. Yn yr achos hwn, mae derbynnydd eich taliad (neu chi eich hun, os oes angen newid) yn derbyn yr “allbynnau” sydd newydd eu cynhyrchu. Gellir cynrychioli hyn yn sgematig fel hyn:

Am anhysbysrwydd mewn blockchains seiliedig ar gyfrif

Mae cadwyni bloc sy'n seiliedig ar gyfrifon wedi'u strwythuro'n debyg iawn i'ch cyfrif banc. Dim ond â'r swm yn eich cyfrif a'r swm trosglwyddo y maent yn delio. Pan fyddwch chi'n trosglwyddo rhywfaint o'ch cyfrif, nid ydych chi'n llosgi unrhyw “allbynnau”, nid oes angen i'r rhwydwaith gofio pa ddarnau arian sydd wedi'u gwario a pha rai sydd ddim. Yn yr achos symlaf, mae dilysu trafodion yn dibynnu ar wirio llofnod yr anfonwr a'r swm ar ei falans:

Am anhysbysrwydd mewn blockchains seiliedig ar gyfrif

Dadansoddiad o dechnoleg

Nesaf, byddwn yn siarad am sut mae Zether yn cuddio swm y trafodiad, y derbynnydd a'r anfonwr. Wrth i ni ddisgrifio egwyddorion ei weithrediad, byddwn yn nodi'r gwahaniaethau yn y fersiynau cyfrinachol a dienw. Gan ei bod yn llawer haws sicrhau cyfrinachedd mewn cadwyni bloc sy'n seiliedig ar gyfrifon, ni fydd rhai o'r cyfyngiadau a osodir gan ddienw yn berthnasol i fersiwn gyfrinachol y dechnoleg.

Cuddio balansau a symiau trosglwyddo

Defnyddir cynllun amgryptio i amgryptio balansau a throsglwyddo symiau yn Zether El Gamal. Mae'n gweithio fel a ganlyn. Pan mae Alice eisiau anfon Bob b darnau arian yn ôl cyfeiriad (ei allwedd gyhoeddus) Y, mae hi'n dewis rhif ar hap r ac yn amgryptio'r swm:

Am anhysbysrwydd mewn blockchains seiliedig ar gyfrif
lle C - swm wedi'i amgryptio, D - gwerth ategol sy'n angenrheidiol i ddehongli'r swm hwn, G - pwynt sefydlog ar y gromlin eliptig, pan gaiff ei luosi â'r allwedd gyfrinachol, ceir yr allwedd gyhoeddus.

Pan fydd Bob yn derbyn y gwerthoedd hyn, mae'n syml yn eu hychwanegu at ei gydbwysedd wedi'i amgryptio yn yr un modd, a dyna pam mae'r cynllun hwn yn gyfleus.

Yn yr un modd, mae Alice yn tynnu'r un gwerthoedd o'i chydbwysedd, dim ond fel Y defnyddio eich allwedd gyhoeddus.

Cuddio'r derbynnydd a'r anfonwr

Mae symud “allbynnau” yn UTXO yn dyddio'n ôl i ddyddiau cynnar cryptocurrencies ac yn helpu i guddio'r anfonwr. I wneud hyn, mae'r anfonwr ei hun, wrth wneud trosglwyddiad, yn casglu “allbynnau” ar hap yn y blockchain ac yn eu cymysgu â'i rai ei hun. Nesaf, mae'n llofnodi'r “allbynnau” gyda llofnod cylch - mecanwaith cryptograffig sy'n caniatáu iddo argyhoeddi'r dilysydd bod darnau arian yr anfonwr yn bresennol ymhlith yr “allbynnau” dan sylw. Nid yw'r darnau arian cymysg eu hunain, wrth gwrs, yn cael eu gwario.

Fodd bynnag, ni fyddwn yn gallu cynhyrchu allbynnau ffug i guddio'r derbynnydd. Felly, yn UTXO, mae gan bob “allbwn” ei gyfeiriad unigryw ei hun, ac mae wedi'i gysylltu'n cryptograffig â chyfeiriad derbynnydd y darnau arian hyn. Ar hyn o bryd, nid oes unrhyw ffordd i nodi'r berthynas rhwng y cyfeiriad allbwn unigryw a'r cyfeiriad derbynnydd heb wybod ei allweddi cyfrinachol.

Yn y model seiliedig ar gyfrifon, ni allwn ddefnyddio cyfeiriadau un-amser (fel arall bydd eisoes yn fodel “allanfa”). Felly, mae'n rhaid i'r derbynnydd a'r anfonwr gael eu cymysgu ymhlith cyfrifon eraill yn y blockchain. Yn yr achos hwn, mae darnau arian 0 wedi'u hamgryptio yn cael eu debydu o'r cyfrifon cymysg (neu 0 yn cael eu hychwanegu os yw'r derbynnydd yn gymysg), heb newid eu balans go iawn mewn gwirionedd.

Gan fod gan yr anfonwr a'r derbynnydd gyfeiriad parhaol bob amser, mae angen defnyddio'r un grwpiau ar gyfer cymysgu wrth drosglwyddo i'r un cyfeiriadau. Mae'n haws edrych ar hyn gydag enghraifft.

Gadewch i ni ddweud bod Alice yn penderfynu gwneud cyfraniad i elusen Bob, ond mae'n well ganddi i'r trosglwyddiad aros yn ddienw i sylwedydd allanol. Yna, er mwyn cuddio ei hun yn y maes anfonwr, mae hi hefyd yn cofnodi cyfrifon Adda ac Adele. Ac i guddio Bob, ychwanegwch gyfrifon Ben a Bill yn y maes derbynwyr. Gan wneud y cyfraniad nesaf, penderfynodd Alice ysgrifennu Alex ac Amanda wrth ei hymyl, a Bruce a Benjen wrth ymyl Bob. Yn yr achos hwn, wrth ddadansoddi'r blockchain, yn y ddau drafodiad hyn dim ond un pâr croestoriadol o gyfranogwyr - Alice a Bob, sy'n dad-anhysbys y trafodion hyn.

Am anhysbysrwydd mewn blockchains seiliedig ar gyfrif

Rasys trafodion

Fel y soniasom eisoes, i guddio'ch balans mewn systemau sy'n seiliedig ar gyfrifon, mae'r defnyddiwr yn amgryptio ei falans a'r swm trosglwyddo. Ar yr un pryd, rhaid iddo brofi nad yw'r balans ar ei gyfrif yn negyddol. Y broblem yw bod y defnyddiwr, wrth greu trafodiad, yn adeiladu prawf o statws ei gyfrif cyfredol. Beth fydd yn digwydd os bydd Bob yn anfon trafodiad i Alice, a'i fod yn cael ei dderbyn cyn yr un a anfonwyd gan Alice? Yna bydd trafodiad Alice yn cael ei ystyried yn annilys, gan fod y prawf balans wedi'i adeiladu cyn i drafodiad Bob gael ei dderbyn.

Am anhysbysrwydd mewn blockchains seiliedig ar gyfrif

Y penderfyniad cyntaf a ddaw mewn sefyllfa o'r fath yw rhewi'r cyfrif nes bod y trafodiad yn cael ei wneud. Ond nid yw'r dull hwn yn addas, oherwydd yn ogystal â chymhlethdod datrys problem o'r fath mewn system ddosbarthedig, mewn cynllun dienw ni fydd yn glir pwy i'w rwystro.

Er mwyn datrys y broblem hon, mae'r dechnoleg yn gwahanu trafodion sy'n dod i mewn ac sy'n mynd allan: mae gwariant yn cael effaith ar unwaith ar y fantolen, tra bod derbyniadau yn cael effaith oedi. I wneud hyn, cyflwynir y cysyniad o "epoc" - grŵp o flociau o faint sefydlog. Mae'r "epoc" presennol yn cael ei bennu trwy rannu uchder y bloc â maint y grŵp. Wrth brosesu trafodiad, mae'r rhwydwaith yn diweddaru balans yr anfonwr ar unwaith ac yn storio arian y derbynnydd mewn tanc storio. Dim ond pan fydd “cyfnod” newydd yn dechrau y bydd yr arian cronedig ar gael i'r talai.

O ganlyniad, gall y defnyddiwr anfon trafodion waeth pa mor aml y derbynnir arian (cyn belled ag y mae ei falans yn caniatáu, wrth gwrs). Mae maint yr epoc yn cael ei bennu yn seiliedig ar ba mor gyflym y mae blociau'n ymledu trwy'r rhwydwaith a pha mor gyflym y mae trafodiad yn mynd i mewn i floc.

Mae'r ateb hwn yn gweithio'n dda ar gyfer trosglwyddiadau cyfrinachol, ond gyda thrafodion dienw, fel y gwelwn yn ddiweddarach, mae'n creu problemau difrifol.

Amddiffyn rhag ymosodiadau ailchwarae

Mewn cadwyni bloc sy'n seiliedig ar gyfrifon, mae pob trafodiad wedi'i lofnodi gan allwedd breifat yr anfonwr, sy'n argyhoeddi'r dilysydd nad yw'r trafodiad wedi'i addasu a'i fod wedi'i greu gan berchennog yr allwedd hon. Ond beth os yw ymosodwr a oedd yn gwrando ar y sianel drosglwyddo yn rhyng-gipio'r neges hon ac yn anfon yr un ail un yn union? Bydd y dilysydd yn gwirio llofnod y trafodiad a bydd yn argyhoeddedig o'i awduraeth, a bydd y rhwydwaith yn dileu'r un swm o falans yr anfonwr eto.

Gelwir yr ymosodiad hwn yn ymosodiad ailchwarae. Yn y model UTXO, nid yw ymosodiadau o'r fath yn berthnasol, gan y bydd yr ymosodwr yn ceisio defnyddio allbynnau wedi'u gwario, nad yw ynddo'i hun yn ddilys ac yn cael ei wrthod gan y rhwydwaith.

Er mwyn atal hyn rhag digwydd, mae maes gyda data ar hap yn cael ei gynnwys yn y trafodiad, a elwir yn nonce neu'n syml "halen". Wrth ailgyflwyno trafodiad gyda halen, mae'r dilysydd yn edrych i weld a yw'r nonce wedi'i ddefnyddio o'r blaen ac, os na, mae'n ystyried bod y trafodiad yn ddilys. Er mwyn peidio â storio hanes cyfan nonces defnyddiwr yn y blockchain, fel arfer yn y trafodiad cyntaf un mae'n cael ei osod yn hafal i sero, ac yna'n cynyddu o un. Ni all y rhwydwaith ond gwirio bod nonce y trafodiad newydd yn wahanol i'r un blaenorol fesul un.

Yn y cynllun trosglwyddo dienw, mae'r broblem o ddilysu nonces trafodion yn codi. Ni allwn rwymo'r nonce yn benodol i gyfeiriad yr anfonwr, oherwydd, yn amlwg, mae hyn yn dad-enwi'r trosglwyddiad. Ni allwn ychwaith ychwanegu un at nonces yr holl gyfrifon cyfranogol, gan y gallai hyn wrthdaro â throsglwyddiadau eraill sy'n cael eu prosesu.

Mae awduron Zether yn bwriadu cynhyrchu'r nonce yn cryptograffig, yn dibynnu ar yr “epoc”. Er enghraifft:

Am anhysbysrwydd mewn blockchains seiliedig ar gyfrif
Yma x yw allwedd ddirgel yr anfonwr, a Gepoch — generadur ychwanegol ar gyfer yr epoc, a geir trwy stwnsio llinyn o'r ffurf 'Zether +'. Nawr mae'n ymddangos bod y broblem wedi'i datrys - nid ydym yn datgelu naws yr anfonwr ac nid ydym yn ymyrryd â nonces y cyfranogwyr digyswllt. Ond mae'r dull hwn yn gosod cyfyngiad difrifol: ni all un cyfrif anfon mwy nag un trafodiad fesul “cyfnod”. Mae'r broblem hon, yn anffodus, yn parhau i fod heb ei datrys, ac ar hyn o bryd nid yw'r fersiwn ddienw o Zether, yn ein barn ni, yn addas i'w ddefnyddio.

Cymhlethdod Proflenni Gwybodaeth Sero

Yn UTXO, rhaid i'r anfonwr brofi i'r rhwydwaith nad yw'n gwario swm negyddol, fel arall mae'n bosibl cynhyrchu darnau arian newydd allan o aer tenau (pam mae hyn yn bosibl, ysgrifennom yn un o'r blaenorol erthyglau). A hefyd llofnodwch y “mewnbynnau” gyda llofnod cylch i brofi bod arian yn perthyn iddo ymhlith y darnau arian sy'n cael eu cymysgu.

Yn y fersiwn ddienw o'r blockchain sy'n seiliedig ar gyfrif, mae'r ymadroddion ar gyfer prawf yn llawer mwy cymhleth. Mae'r anfonwr yn profi:

  1. Mae'r swm a anfonwyd yn gadarnhaol;
  2. Mae'r cydbwysedd yn parhau i fod yn annegyddol;
  3. Amgryptio'r symiau trosglwyddo yn gywir gan yr anfonwr (gan gynnwys sero);
  4. Mae'r balans ar y balans yn newid ar gyfer yr anfonwr a'r derbynnydd yn unig;
  5. Mae'r anfonwr yn berchen ar yr allwedd breifat i'w gyfrif ac mae mewn gwirionedd ar y rhestr o anfonwyr (ymhlith y rhai dan sylw);
  6. Mae'r Nonce a ddefnyddir yn y trafodiad wedi'i gyfansoddi'n gywir.

Ar gyfer prawf mor gymhleth, mae'r awduron yn defnyddio cymysgedd Bulletproof (cymerodd un o'r awduron, gyda llaw, ran yn ei chreu) a Protocol Sigma, a elwir Sigma-bwledi. Mae prawf ffurfiol o ddatganiad o'r fath yn dasg eithaf anodd, ac mae'n cyfyngu'n fawr ar nifer y bobl sy'n barod i weithredu'r dechnoleg.

Y canlyniad?

Yn ein barn ni, gellir defnyddio'r rhan o Zether sy'n dod â phreifatrwydd i gadwyni bloc sy'n seiliedig ar gyfrifon ar hyn o bryd. Ond ar hyn o bryd, mae'r fersiwn ddienw o'r dechnoleg yn gosod cyfyngiadau difrifol ar ei ddefnydd, a'i gymhlethdod ar ei weithrediad. Fodd bynnag, ni ddylid diystyru mai dim ond ychydig fisoedd yn ôl y rhyddhaodd yr awduron ef, ac efallai y bydd rhywun arall yn dod o hyd i ateb i'r problemau sy'n bodoli heddiw. Wedi'r cyfan, dyma sut mae gwyddoniaeth yn cael ei wneud.

Ffynhonnell: hab.com

Ychwanegu sylw