Криптография и конфиденциальность GRIMM.

GrimmRU
GrimmRU
Sep 1 · 4 min read

GRIMM создан на протоколе MimbleWimble, и как многие другие современные криптовалюты, основан на эллиптической криптографии, известной как алгоритм цифровой подписи эллиптической кривой (ECDSA).

В GRIMM использована эллиптическая кривая secp256k1, которая используется в криптографии Bitcoin и определяется стандартами для эффективной криптографии. Наиболее часто используемые кривые имеют произвольную структуру, но secp256k1 был построен неслучайным образом, что позволяет ей особенно эффективно вычислять и быть в этом быстрее других кривых. В отличие от популярных кривых, рекомендованных NIST, (Национальный институт стандартов и технологий США), secp256k1 были выбраны предсказуемым образом, что значительно снижает вероятность того, что создатель такой эллиптической кривой вставил в неё тайный проход для третьих лиц. К чему это всё и почему это важно?

В 2013 году, после скандальной публикации Эдварда Сноудена, мир узнал, что под нажимом NSA (АНБ), NIST стандартизовал генератор псевдослучайных чисел Dual_EC_DRBG (тоже основанный на ЭК) — один из рекомендованных для использования в криптографических продуктах и реализованный в такой форме десятками вендоров. Документы Сноудена прямо указывают на то, что неслучайность, присущая Dual_EC_DRBG и давно уже подмеченная независимыми экспертами, была введена NSA ради ослабления генератора и, соответственно, последующего более лёгкого взлома шифров. Теоретически процесс стандартизации в NIST — публичный. Однако законы США обязывают Институт пользоваться помощью NSA — и временами, как выяснилось, благодаря Эдварду Сноудену, эта «помощь» перерастает в диктат.

После скандала со Сноуденом, NIST официально посоветовал не использовать Dual_EC_DRBG, однако скандал вокруг него дал повод усомниться вообще в стандартах эллиптических кривых, опубликованных NIST. Каждый криптографический продукт, использующий ЭК-рекомендации NIST, оказался беззащитным перед NSA. Эллиптическая кривая sec256k1 отсутствовала в рекомендациях NIST и является надежной основой не только для Bitcoin, но и для GRIMM и для многих других криптовалют.

В Bitcoin присутствует понятие кошелька, и по сути весь его blockchain является описанием транзакций между кошельками и плюс явные эмиссии новых монет. Когда кошельки совершают транзакцию, они разглашают друг другу свой публичный ключ, и история как прошлых так и будущих транзакций друг друга становится им видной. В этом и есть глобальная проблема этой системы — она не конфиденциальна.

В GRIMM MimbleWimble нет понятия кошелька. Вместо кошелька в GRIMM есть не потраченные суммы (UTXO — unspent transaction output), которые принадлежат конкретным пользователям. Самое главное в том, что транзакции совершаются между UTXOs, но не между кошельками. Транзакция в GRIMM — это преобразование одних UTXOs в другие.

Рассмотрим схему как происходит конфиденциальная транзакция UTXO в GRIMM MimbleWimble:

Например пользователь А владеет UTXO в виде C1=k1*G+v1*H и С2=k2*G+v2*H, и он хочет передать это пользователю B.

  • A информирует B (по секретному каналу) что он хочет ему передать C1 и C2, и разглашает их содержимое.
  • B создаёт С3=k3*G+(v1+v2)*H, где k3- случайно выбранный новый blinding factor
  • B высчитывает k=k1+k2-k3, где к3 total blinding factor
  • B высчитывает X=k*G остаток(Х), и создаёт для него сигнатуру Шнорра
  • В узел отправляется транзакция C1,C2→C3+bulletproofs для C3, X+ сигнатура.
  • Узел проверяет что C1+C2-C3=X, что C3 имеет правильный bulletproof, и что X имеет правильную сигнатуру, которая подтверждает что точка X не содержит в себе суммы.

C- обязательства Педерсена (Pedersen commitments),основано на задаче дискретного логарифмирования ; G и H- генераторы группы эллиптической кривой; v- сумма; k- секретный случайный ослепляющий ключ (blinding factor); сигнатура Шнорра (Schnorr scheme)- одна из наиболее эффективных и теоретически обоснованных схем аутентификации, безопасность которой основывается на трудности вычисления дискретных логарифмов; bulletproofsинновационный протокол среди себе подобных и входит в семейство систем подтверждения нулевых знаний, таких как zk-SNARK, STARK и ZKBoo.

Важно, что остаток может быть только на выходе транзакции, но не на входе. Это то, что делает её асимметричной и необратимой.

В приведённом примере мы видим, что при объединении транзакций в блоке остатки сумм в UTXO кодируются с помощью обязательства Педерсена и blinding factor, а bulletproofs следит за правильной суммой монет в остатке на выходе.

При формировании самого блока все транзакции последовательно записываются в блок, объединяясь в одну большую транзакцию, что в конечном счете и является сформированным блоком. И для того чтобы история этих транзакций стала недоступной, скрытой, все входы/выходы перемешиваются/сортируются, что стирает их хронологический порядок, и упрощает их объединение. Такое смешение транзакций возможно благодаря используемому методу CoinJoin и его вариациям, представленных Грегори Максвеллом.

Важным моментом конфиденциальности является анонимность IP. Для достижения анонимности транзакцию в узел отсылает не непосредственный участник транзакции а случайный пользователь. Для этого готовая транзакция сначала отсылается не в узел, а случайному пользователю, со случайно сгенерированным счётчиком ( time-to-live). Он в свою очередь также должен отослать это другому случайному пользователю, при этом уменьшив счетчик . И только в тот момент, когда счетчик будет равен нулю, транзакция отсылается в узел. Такой процесс обеспечивает протокол Dandelion++ представленный группой разработчиков из Иллинойского университета (University of Illinois at Chicago).

Эллиптическая кривая sec256k1, обязательство Педерсена и bulletproof, сигнатура Шнорра и blinding factor, Dandelion++ и CoinJoin — все эти методы, криптографические примитивы и сигнатуры работают в единой связке на обеспечение высочайшего уровня конфиденциальности монеты GRIMM и делают ее взаимозаменяемой (fungibility), что также важное свойство любой криптовалюты. Это свойство делает возможным 100% обмен одной единицы валюты на другую. Здесь не должно быть различий и не возможно отследить в каких сделках принимала участие монета. Каждая монета имеет одинаковую значимость.

Den Novak & Andrew COP

https://grimmw.com

    GrimmRU

    Written by

    GrimmRU

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade