Эсепке негизделген блокчейндерде анонимдүүлүк жөнүндө

Биз криптовалюталардагы анонимдүүлүк темасына көптөн бери кызыгып келебиз жана бул жааттагы технологиялардын өнүгүшүнө көз салууга аракет кылабыз. Биздин макалаларда биз буга чейин майда-чүйдөсүнө чейин иштөө принциптерин талкуулады жашыруун транзакциялар Монеродо, ошондой эле жүзөгө ашырылат салыштырмалуу карап чыгуу бул тармакта бар технологиялар. Бирок, бүгүнкү күндө бардык анонимдүү криптовалюталар Биткойн тарабынан сунушталган маалымат моделине курулган - Сарпталбаган бүтүм чыгаруу (мындан ары UTXO). Ethereum сыяктуу эсепке негизделген блокчейндер үчүн анонимдүүлүктү жана купуялуулукту ишке ашыруу үчүн учурдагы чечимдер (мисалы, Möbius же Aztec) акылдуу келишимдерде UTXO моделин кайталоого аракет кылган.

2019-жылдын февралында Стэнфорд университетинин жана Visa Research изилдөөчүлөрүнүн тобу бошотулду алдын ала басып чыгаруу "Zether: акылдуу келишимдер дүйнөсүндө купуялуулукка карай." Авторлор биринчилерден болуп эсепке негизделген блокчейндерде анонимдүүлүктү камсыз кылуу ыкмасын сунушташкан жана акылдуу келишимдин эки версиясын көрсөтүшкөн: жашыруун (калдыктарды жана которуунун суммасын жашыруу) жана анонимдүү (алуучу менен жөнөтүүчүнү жашыруу) транзакциялар үчүн. Биз сунуш кылынган технологияны кызыктуу деп эсептейбиз жана анын дизайны менен бөлүшкүбүз келет, ошондой эле эсепке негизделген блокчейндерде анонимдүүлүк маселеси эмне үчүн абдан татаал деп эсептелинет жана авторлор аны толугу менен чече алышканбы же жокпу, сүйлөшкүбүз келет.

Бул маалымат моделдеринин түзүмү жөнүндө

UTXO моделинде транзакция "киргизүүлөрдөн" жана "чыгаруудан" турат. "Чыгуулардын" түздөн-түз аналогу - бул сиздин капчыгыңыздагы векселдер: ар бир "чыгаруунун" кандайдыр бир номиналдары бар. Кимдир бирөөгө төлөгөндө (транзакцияны түзүүдө) сиз бир же бир нече "чыгарууну" сарптайсыз, бул учурда алар транзакциянын "киргизүүлөрү" болуп калат жана блокчейн аларды сарпталган деп белгилейт. Бул учурда, төлөмүңүздүн алуучусу (же сиз өзүңүз, эгер сизге өзгөртүү керек болсо) жаңы түзүлгөн “чыгармаларды” алат. Бул схемалык түрдө төмөнкүчө чагылдырууга болот:

Эсепке негизделген блокчейндерде анонимдүүлүк жөнүндө

Эсепке негизделген блокчейндер банк эсебиңизге окшош структураланган. Алар сиздин эсебиңиздеги сумма жана которуунун суммасы менен гана иштешет. Сиз өз эсебиңизден кандайдыр бир сумманы которгондо, сиз эч кандай “чыгармаларды” күйгүзбөйсүз, тармак кайсы монеталар сарпталганын жана кайсынысы жумшалбаганын эстеп калбайт. Жөнөкөй учурда, транзакцияны текшерүү жөнөтүүчүнүн кол тамгасын жана анын балансындагы сумманы текшерүүгө кирет:

Эсепке негизделген блокчейндерде анонимдүүлүк жөнүндө

Технологиянын анализи

Андан кийин, биз Zether транзакциянын суммасын, алуучуну жана жөнөтүүчүнү кантип жашырары жөнүндө сүйлөшөбүз. Анын иштөө принциптерин сүрөттөп жатып, биз жашыруун жана анонимдүү версиялардагы айырмачылыктарды белгилейбиз. Каттоо эсебине негизделген блокчейндерде купуялуулукту камсыз кылуу бир топ жеңил болгондуктан, анонимдүүлүк менен коюлган чектөөлөрдүн айрымдары технологиянын купуя версиясына тиешелүү болбойт.

Калдыктар жана которуулардын суммасын жашыруу

Шифрлөө схемасы Zetherде баланстарды шифрлөө жана суммаларды которуу үчүн колдонулат Эль Гамал. Ал төмөнкүдөй иштейт. Элис Бобду жибергиси келгенде b дареги боюнча монеталар (анын ачык ачкычы) Y, ал туш келди санды тандайт r жана сумманы шифрлейт:

Эсепке негизделген блокчейндерде анонимдүүлүк жөнүндө
кайда C - шифрленген сумма, D - бул сумманы чечмелөө үчүн зарыл болгон жардамчы маани; G - эллиптикалык ийри сызыктагы туруктуу чекит, жашыруун ачкычка көбөйтүлгөндө ачык ачкыч алынат.

Боб бул баалуулуктарды алганда, ал жөн гана аларды өзүнүн шифрленген балансына ошол эле жол менен кошот, ошондуктан бул схема ыңгайлуу.

Ошо сыяктуу эле, Алиса өзүнүн балансынан ошол эле баалуулуктарды алып салат Y ачык ачкычыңызды колдонот.

Алуучу менен жөнөтүүчүнү жашыруу

UTXOдо "чыгармаларды" аралаштыруу криптовалюталардын алгачкы күндөрүнө таандык жана жөнөтүүчүнү жашырууга жардам берет. Бул үчүн, жөнөтүүчү өзү которууну ишке ашырууда блокчейнге туш келди "чыгармаларды" чогултат жана аларды өзүнүкү менен аралаштырат. Андан кийин, ал "чыгармаларга" шакек кол тамгасы менен кол коет - бул жөнөтүүчүнүн монеталары тартылган "чыгармалардын" арасында бар экенине текшерүүчүгө ынандырууга мүмкүндүк берген криптографиялык механизм. аралаш монеталар өздөрү, албетте, жумшалган эмес.

Бирок, биз алуучуну жашыруу үчүн жасалма жыйынтыктарды чыгара албайбыз. Ошондуктан, UTXO-жылы ар бир "чыгаруунун" өзүнүн уникалдуу дареги бар жана ал криптографиялык түрдө бул монеталарды алуучунун дареги менен байланышкан. Учурда анын жашыруун ачкычтарын билбей туруп, уникалдуу чыгуу дареги менен алуучунун дарегинин ортосундагы байланышты аныктоого эч кандай жол жок.

Эсепке негизделген моделде биз бир жолку даректерди колдоно албайбыз (антпесе ал буга чейин "чыгуу" модели болот). Ошондуктан, алуучу менен жөнөтүүчү блокчейндеги башка эсептердин арасында аралаштырылышы керек. Бул учурда, шифрленген 0 монета аралаш эсептеринен дебеттелет (же алуучу аралашып кетсе 0 кошулат), алардын реалдуу балансы иш жүзүндө өзгөртүлбөйт.

Жөнөтүүчүнүн да, алуучунун да ар дайым туруктуу дареги болгондуктан, ошол эле даректерге которууда аралашуу үчүн ошол эле топторду колдонуу зарыл болуп калат. Муну бир мисал менен кароо оңой.

Элис Бобдун кайрымдуулугуна салым кошууну чечти дейли, бирок которуунун сырттан байкоочуга жашыруун бойдон калышын каалайт. Андан кийин, жөнөтүүчү талаасында өзүн жашыруу үчүн, ал Адам менен Аделдин эсептерине да кирет. Жана Бобду жашыруу үчүн, алуучу талаасына Бен менен Биллдин эсептерин кошуңуз. Кийинки салымын кошуп, Элис анын жанына Алекс менен Аманданы, Бобдун жанына Брюс менен Бенженди жазууну чечти. Бул учурда, блокчейнди талдоодо, бул эки транзакцияда бир гана кесилишкен жуп катышуучулар бар - Алиса жана Боб, бул транзакцияларды анонимизациялоочу.

Эсепке негизделген блокчейндерде анонимдүүлүк жөнүндө

Транзакция жарыштары

Жогоруда айтылгандай, эсепке негизделген системаларда балансыңызды жашыруу үчүн колдонуучу өзүнүн балансын жана которуунун суммасын шифрлейт. Ошол эле учурда ал өзүнүн эсебиндеги баланс терс эмес бойдон калаарын далилдеши керек. Көйгөй, транзакцияны түзүп жатканда, колдонуучу өзүнүн учурдагы эсебинин абалына байланыштуу далилди түзүүдө. Эгер Боб Алисага транзакция жөнөтсө жана ал Элис жөнөткөндөн мурун кабыл алынса эмне болот? Ошондо Алисанын транзакциясы жараксыз деп эсептелет, анткени баланстын далили Бобдун транзакциясы кабыл алынганга чейин түзүлгөн.

Эсепке негизделген блокчейндерде анонимдүүлүк жөнүндө

Мындай кырдаалда келген биринчи чечим - транзакция ишке ашканга чейин эсепти тоңдуруп коюу. Бирок бул ыкма ылайыктуу эмес, анткени бөлүштүрүлгөн системада мындай маселени чечүүнүн татаалдыгынан тышкары, анонимдүү схемада кимдин эсебин бөгөттөө керектиги белгисиз.

Бул көйгөйдү чечүү үчүн технология кирүүчү жана чыгуучу транзакцияларды бөлүп турат: чыгашалар баланска дароо таасирин тийгизет, ал эми түшүүлөр кечиктирилген эффектке ээ. Бул үчүн, "доор" түшүнүгү киргизилген - белгиленген өлчөмдөгү блоктордун тобу. Учурдагы "доор" блоктун бийиктигин топтун өлчөмүнө бөлүү жолу менен аныкталат. Транзакцияны иштеп чыгууда тармак дароо жөнөтүүчүнүн балансын жаңыртып, алуучунун каражаттарын сактоочу резервуарда сактайт. Топтолгон каражаттар жаңы “доор” башталганда гана төлөөчүгө берилет.

Натыйжада, колдонуучу транзакцияларды канча жолу түшкөнүнө карабастан (албетте, анын балансына жараша) жөнөтө алат. Доордун өлчөмү блоктордун тармак аркылуу канчалык тез таралышына жана транзакциянын блокко канчалык тез киришине жараша аныкталат.

Бул чечим жашыруун которуулар үчүн жакшы иштейт, бирок анонимдүү транзакциялар менен, биз кийинчерээк көрө тургандай, олуттуу көйгөйлөрдү жаратат.

Кайталоо чабуулдарынан коргоо

Эсепке негизделген блокчейндерде ар бир транзакцияга жөнөтүүчүнүн купуя ачкычы менен кол коюлат, ал текшерүүчүнү транзакция өзгөртүлбөгөнүнө жана бул ачкычтын ээси тарабынан түзүлгөнүнө ынандырат. Бирок берүү каналын угуп жаткан чабуулчу бул билдирүүнү кармап, дал ошол эле экинчисин жөнөтсө эмне болот? Текшерүүчү бүтүмдүн кол тамгасын текшерет жана анын авторлугуна ынанат, ал эми тармак кайра жөнөтүүчүнүн балансынан ошол эле сумманы чыгарып салат.

Бул чабуул кайталоо чабуулу деп аталат. UTXO моделинде мындай чабуулдар актуалдуу эмес, анткени чабуулчу өз алдынча жараксыз жана тармак тарабынан четке кагылган сарпталган жыйынтыктарды колдонууга аракет кылат.

Мунун алдын алуу үчүн транзакцияга кокустук маалыматтары бар талаа курулат, ал nonnce же жөн эле "туз" деп аталат. Туз менен транзакцияны кайра тапшырганда, текшерүүчү nonce мурда колдонулганбы же жокпу, текшерет жана эгер андай эмес болсо, транзакцияны жарактуу деп эсептейт. Блокчейнде колдонуучунун бүткүл тарыхын сактабоо үчүн, адатта, эң биринчи транзакцияда ал нөлгө барабар коюлат, андан кийин бирге көбөйөт. Тармак жаңы транзакциянын нонси мурункудан бирден айырмаланып турганын текшере алат.

Анонимдүү өткөрүп берүү схемасында транзакцияларды текшерүү маселеси келип чыгат. Биз нонсени жөнөтүүчүнүн дарегине ачык байланыштыра албайбыз, анткени, бул которууну анонимизациялоодо. Биз ошондой эле бардык катышуучу эсептер үчүн бирөөнү кошо албайбыз, анткени бул башка которуулар иштетилип жатканына карама-каршы келиши мүмкүн.

Zetherдин авторлору “доор” боюнча криптографиялык жол менен nonce түзүүнү сунушташат. Мисалы:

Эсепке негизделген блокчейндерде анонимдүүлүк жөнүндө
бул x жөнөтүүчүнүн жашыруун ачкычы болуп саналат, жана Gepoch — 'Zether +' түрүндөгү сапты хэштөө аркылуу алынган доор үчүн кошумча генератор. Эми маселе чечилди окшойт - биз жөнөтүүчүнүн ээн-эркиндигин ачыкка чыгарбайбыз жана катышпаган катышуучулардын ээнбаштыгына кийлигишпейбиз. Бирок бул ыкма олуттуу чектөө киргизет: бир эсеп "доор" үчүн бирден ашык транзакцияны жөнөтө албайт. Бул көйгөй, тилекке каршы, чечилбеген бойдон калууда жана азыркы учурда Zetherдин анонимдүү версиясын, биздин оюбузча, колдонууга дээрлик ылайыктуу кылат.

Нөлдүк билимдин далилдеринин татаалдыгы

UTXOдо жөнөтүүчү тармакка терс сумманы коротпогондугун далилдеши керек, антпесе жука абадан жаңы монеталарды чыгаруу мүмкүн болот (эмне үчүн бул мүмкүн, биз мурункулардын биринде жазганбыз макалалар). Жана ошондой эле аралашып жаткан монеталардын арасында ага тиешелүү каражаттар бар экенин далилдөө үчүн шакекче кол коюу менен "киргизилгендерге" кол коет.

Эсепке негизделген блокчейндин анонимдүү версиясында далилдөө үчүн сөз айкаштары алда канча татаал. Жөнөтүүчү муну далилдейт:

  1. Жөнөтүлгөн сумма оң;
  2. Баланс терс эмес бойдон калууда;
  3. Жөнөтүүчү которуунун суммасын туура шифрлеген (анын ичинде нөл);
  4. Баланстагы баланс жөнөтүүчү жана алуучу үчүн гана өзгөрөт;
  5. Жөнөтүүчү өзүнүн аккаунтунун купуя ачкычына ээ жана ал чындыгында жөнөтүүчүлөрдүн тизмесинде (катышуучулардын арасында);
  6. Транзакцияда колдонулган Nonce туура түзүлгөн.

Мындай татаал далилдөө үчүн авторлор аралашманы колдонушат ок (авторлордун бири, демек, аны жаратууга катышкан) жана Сигма протоколу, алар Сигма-октор деп аталат. Мындай билдирүүнүн формалдуу далили бир кыйла татаал иш болуп саналат жана бул технологияны ишке ашырууну каалаган адамдардын санын бир топ чектейт.

Мунун натыйжасы кандай болот?

Биздин оюбузча, Zetherдин эсепке негизделген блокчейндерге купуялуулукту алып келген бөлүгүн азыр колдонсо болот. Бирок учурда, технологиянын анонимдүү версиясы аны колдонууга олуттуу чектөөлөрдү жана аны ишке ашыруунун татаалдыгын киргизет. Бирок, аны авторлор мындан бир нече ай мурда эле чыгарышканын, балким, бугунку кунде орун алып жаткан проблемалар-дын жолун башка бирее табаар деп эсептешпей коюуга болбойт. Кантсе да, илим ушундай болот.

Source: www.habr.com

Комментарий кошуу