Enigma — это протокол второго уровня, который направлен на решение двух самых больших проблем для цепочки: масштабируемость и конфиденциальность.
Алгоритм: Х11, X13
Курс на 22.11.2024
- Курс: 0.012532 USD
- Символ: ENG
- Рейтинг (CMC): 3595
Техническая информация об Enigmacoin
- Название: Enigmacoin
- Тикер: [EGMA], [ENG]
- Алгоритм: Х11, X13
- Вознаграждение за блок: 100 [EGMA] (Блок 1-100 – вознаграждение 1 ENG)
- Распределение: PoW+PoS
- Предложение монет: 1 000 000 [EGMA]
- PoS начинается на 7 000 блоке
- PoW заканчивается на высоте 10 000
- Общее количество PoW-монет ~ 850,000
- Время блока: 60 секунд
- Процентная ставка PoS: 5% в год
Как ваш баланс монет отслеживается?
Как известно, любой желающий может проверить баланс монет непосредственно на блокчейне, используя блок-проводник. В большинстве случаев пользователи предпочитают использовать один адрес кошелька множество раз, чтобы получать деньги от других пользователей, пулов и т.д. В теории вы, конечно, могли бы генерировать совершенно новый адрес для каждой транзакции, однако на практике это неудобно. Представьте, каково было бы обновлять ваш адрес для выплат в настройках вашего пула каждый раз, когда вам нужно забрать свои монеты.
Кроме того, использование нескольких адресов может создавать путаницу в случае, когда все ваши монеты оказываются распределенными между различными адресами, а вам необходимо осуществить одну крупную транзакцию. К примеру, вам нужно заплатить кому-то 100 монет и у вас есть 120 монет, равномерно распределенных между 3 различными адресами. Теперь для осуществления простой транзакции в 100 монет вам потребуется создать как минимум 4 различных транзакции: 3 транзакции по 40 монет и одну возвратную транзакцию со сдачей.
Любой, кто заглянет в блокчейн после вашей транзакции, отчетливо увидит, что все три адреса принадлежат одному человеку, и поймет, сколько денег имеется у этого человека. Посредством простого наблюдения каждый может отслеживать и анализировать блокчейн, чтобы выявлять крупных держателей монет и точно оценивать ваш баланс монет, вне зависимости от того, сколько усилий вы прилагаете для того, чтобы перемешивать свои монеты между адресами.
Как повысить анонимность?
Чтобы наша идея была понятней, давайте рассмотрим простой пример того, как происходит генерация нового адреса и его дальнейшее использование:
Сначала генерируется личный ключ «A». По существу, «A» – это просто длинный случайный номер. После этого на основе вашего личного ключа посредством хэш-функции вычисляется публичный ключ «B». Алгоритм, который генерирует «B» из «A» является необратимым, это означает, что даже если кто-либо знает ваш публичный ключ «B», он не сможет узнать, каков был оригинальный ключ «A», послуживший основной для «B». Этот «B» будет трансформирован в «C» для представления его в виде знакомой 34-значной строки, которая с данного момента будет использоваться как адрес вашего кошелька. Вы будете сообщать ваш ключ «C» (адрес), чтобы получать свои монеты. Ваш секретный ключ «A» не используется до тех пор, пока не возникает необходимость в отправке какого-то количества монет другим пользователям. В этот момент он будет задействоваться в качестве сигнатуры (подписи), которая сообщает всем, что ваша транзакция действительно является валидной.
Что происходит, если между A и B вводится еще одна переменная? Известно, что A – это случайный номер. Представьте, что вместо вычисления B непосредственно из A, вводится промежуточная переменная Z. Z будет вычисляться посредством необратимой функции из A, как ранее B. Из Z могут быть сгенерированы множественные аргументы B (все B теперь будут генерироваться из Z, а не из A). Чтобы получить транзакцию, вы будете сообщать свой «Z» адрес вместо «B», и каждый раз, когда вам отправляется транзакция, ваш партнер будет генерировать новый «B» адрес для каждой транзакции. Это равноценно генерированию нового адреса кошелька каждый раз, когда кто-то отправляет вам транзакцию.
Когда вам нужно будет инициировать транзакцию, будет использоваться любой из новых сгенерированных аргументов «B», подписываемый вашим личным ключом «A» (не Z).
Посредством применения этого простого изменения в логике обычный анализ блокчейна становится практически невозможным. Поскольку блокчейн не знает о существовании «Z», каждый раз, когда вы получаете монеты, генерируются новые B.
Возможность анализа блокчейна
Это действительно так, но есть способ устранить и эту возможность. Единственным, что выдает принадлежность нескольких кошельков одному человеку, являются транзакции с множественными входами. Давайте вернемся к нашему предыдущему примеру, где у вас есть три кошелька, в каждом из которых по 40 монет. Предположим, что вы хотите перевести 100 монет получателю. Чтобы это сделать, получатель дает вам свой Z адрес. Зная его Z адрес, вы генерируете 3 различных B (B1, B2 и B3). Затем вы создаете 3 отдельные транзакции. Первая и вторая транзакции будут односторонними транзакциями по 40 монет. Третья транзакция, согласно текущей логике, включает отправление 40 монет и получение 20 монет сдачи от получателя. Тем не менее, вместо этого вы могли бы получить сдачу на уникальный кошелек, который будет сгенерирован получателем из вашего Z, и сделать посредством блокчейна вывод, что все ваши кошельки взаимосвязаны, было бы невозможно.
Гарантируется обфускация анализа блокчейна, что обеспечивает еще один инструмент, способствующий достижению подлинной анонимности. Этот подход ни в коем случае не является окончательным решением для обеспечения анонимности, однако его можно совмещать с другими доступными решениями.
Отзывы