Как работает ECDSA в биткоине?

Как работает ECDSA в биткоине?

  • 1

    Что такое ECDSA?

    ECDSA (аббревиатура от Elliptic Curves Digital Signature Algorithm , алгоритм построения цифровой подписи с использованием эллиптических кривых) – это схема криптографии на основе эллиптических кривых (Elliptic Curve Cryptography или ECC).

    Алгоритм ECDSA использует эллиптическую кривую и конечное поле для создания подписи данных таким образом, что третьи стороны могут верифицировать аутентичность подписи, а подписавшая сторона сохраняет эксклюзивную возможность создавать подпись. В случае биткоина подписываемые данные – это транзакция передачи права собственности.

  • 2

    Кто и когда разработал концепцию ECC?

    Концепцию криптографии на основе эллиптических кривых независимо друг от друга предложили математики Нил Коблиц и Виктор С. Миллер в 1985 году. Хотя их модель стала прорывом в криптографии, ECC не использовалась широко до начала 2000-х, когда ее внедрили интернет-провайдеры.

  • 3

    Как ECC применяется в криптовалютах?

    Криптография, лежащая в основе схем цифровых подписей криптовалют, позволяет осуществлять верификацию транзакций между двумя сторонами в децентрализованной сети.

Преимущества ECC перед RSA

  • Размер ключа для ECC меньше, но уровень безопасности такой же, как у RSA.
  • ECC эффективнее, чем RSA, и поэтому используется в криптовалютах.

4

Разработчик ECDSA

Канадский математик и криптограф Скотт Ванстоун представил концепцию ECDSA в 1992 году.

5

Задача ECDSA

Технология биткоина переосмысливает концепцию права собственности. Биткоины не хранятся ни центрально, ни локально. Владеть биткоином означает иметь возможность передавать контроль над ним другому пользователю, используя пару ключей ECDSA – открытый и закрытый.

Биткоины существуют в качестве записей в блокчейне, копии которого распределяются сетью компьютеров.

Традиционно владеть чем-либо – значит хранить этот объект лично или передать на ответственное хранение доверенной структуре.

Однако в случае биткоина все обстоит иначе.

Доступ к ключам ECDSA дает возможность передавать контроль над биткоином.

Благодаря этому биткоины могут существовать без централизованного хранения и контроля.

Блокчейн

  • ECDSA: алгоритм подписи и верификации на основе арифметических операций с использованием закрытого и открытого ключей соответственно.
  • Эллиптическая кривая: алгебраическое уравнение y2 = x3 + ax + b, имеющее полезные свойства, такие как определение операций сложения и удвоения точек на кривой.

Что такое ECDSA в биткоине?

Аналогичным образом, при удвоении точки проводится прямая, касательная к эллиптической кривой в точке P, которая должна пересекать ее еще в одной точке R.

Точка R, симметричная R‘ относительно оси x, и будет считаться точкой удвоения P. Пример:

Что такое ECDSA в биткоине?

Вместе две эти операции используются для операции произведения на скаляр, R = a P, определяемой как добавление точки P к себе a раз. Например:

  • R = 7P
  • R = P + (P + (P + (P + (P + (P + P)))))

Процесс произведения на скаляр обычно упрощается посредством комбинации операций сложения и удвоения точек.

Например:

  • R = 7P
  • R = P + 6P
  • R = P + 2 (3P)
  • R = P + 2 (P + 2P)

Здесь 7P разделяется на два шага по удвоению точки и два шага по добавлению точки.

7

Что такое конечные поля?

Конечное поле в контексте ECDSA

можно рассматривать как заданный диапазон положительных чисел, в который должен попадать каждый расчет. Любое число за пределами этого диапазона оборачивается таким образом, чтобы оно попадало в диапазон. Если результат операции выходит за пределы этого диапазона, то по окончании диапазона происходит возвращение к его началу, и расчет продолжается.

Самое простое – рассматривать этот процесс как расчет операции «остаток от целочисленного деления», или оператор modulus (mod). Например, 9/7 дает 1 с остатком в 2:9 mod 7 = 2. Здесь конечное поле – от 0 до 6, и все операции по модулю 7, над каким бы числом они не осуществлялись, дают результат, попадающий в этот диапазон.

Как происходит объединение кривых с конечными полями?

ECDSA использует эллиптические кривые в контексте конечного поля, которое значительно изменяет их внешний вид, но не фундаментальные формулы или особые свойства. То же самое уравнение, представленное на графике выше, в конечном поле по модулю 67 выглядит так:

  • Теперь это набор точек, в котором все значения x и y являются целыми числами между 0 и 66. При этом кривая по-прежнему сохраняет свою горизонтальную симметрию.

Изменение в сложении и удвоении точек: Линии на графике оборачиваются вокруг поля сохраняя наклон. Сложение точек (2, 22) и (6, 25) выглядит так:

  • Оборачивающаяся прямая, проходящая через эти две точки, в итоге упирается в третью точку (47, 39), а симметричная ей относительно оси x будет (47, 28). Эта точка – результат операции.

Как ECDSA работает в биткоине?

  • Протокол биткоин выбирает набор параметров для эллиптической кривой и репрезентацию его конечного поля, которая фиксирована для всех пользователей протокола.
  • Параметры включают само уравнение, простое значение модуля поля и базовую точку на кривой.
  • Порядок базовой точки, которая не выбирается независимо, но является функцией других параметров, можно представить графически как число прибавлений точки к себе до тех пор, пока ее наклон не становится бесконечной (вертикальной) линией.
  • Базовая точка выбирается так, что порядок – это большое простое число.
  • Для базовой точки простого модуля и порядка биткоин использует очень большие числа. Надежность алгоритма зависит от того, что эти величины огромны – это делает непрактичным использование брутфоса или инженерного анализа.
  • В случае биткоина:
  • Уравнение эллиптической кривой: y2 = x3 + 7

Простой модуль: 2^256 – 2^32 – 2^9 – 2^8 – 2^7 – 2^6 – 2^4 – 1 = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F

Базовая точка: 04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8

Порядок: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141

Данная реализация известна как secp256k1 и является частью семейства решений эллиптической кривой в области конечных полей, предложенных к использованию в криптографии.

  • Каковы недостатки ECDSA?

В ECDSA как текущем методе подписи в биткоине отсутствует нативная поддержка мультиподписей , поэтому их реализуют с помощью стандартизированного смарт-контракта Pay-to-Script-Hash (P2SH), предполагающего включение в блокчейн лишь хешей скриптов.

Это казалось бы случайное число определяет право собственности на монеты. В момент траты держатель раскрывает скрипт и ключ для расшифровки хеша одновременно. Затем каждый пользователь может использовать изначальный хеш для проверки истинности скрипта и исполнения условий траты. Однако при этом пользователи должны раскрывать все условия траты, включая и те, которые не были выполнены. Например, монеты могут быть потрачены тогда и только тогда, когда Боб и Алиса подпишут транзакцию, или Алиса подпишет ее самолично по истечению недели, или это сделает Боб, предоставив при этом секретное число.

Проблема: недостаток приватности для P2SH-транзакций. Для них требуется начинаться с цифры 3, что дает возможность блокчейн-аналитикам распознать все P2SH-транзакции и определить адреса, участвующие в мультиподписи.

Проблема: большой массив данных для обработки, так как P2SH требует знания открытых ключей всех участников мультиподписи.

Эти проблемы решают схема подписей Шнорра и технология Taproot.

CryptoIt