Формула Биткойна

Время чтения: 25 мин.

Люди неподготовленные, сталкиваясь с Биткойном (как и с другими крипто активами), как правило, с трудом воспринимают концепцию подтверждения права собственности, которую переопределяет технология, лежащая в ее основе любого крипто актива — блокчейн (blockchain).

 

Владеть чем-то в традиционном смысле означает быть единоличным собственником объекта, предмета и право собственности определяется тремя признаками, закреплёнными в юридических нормах и, что важно, в процедурах подтверждения:

  • владение
  • распоряжение
  • пользование.

Биткойн не имеет центра эмиссии, центрального хранилища, более того, даже владение биткойном не подразумевает его хранения у собственника! Вся информация о биткойнах хранится в общедоступном блокчейне, у собственника хранится только приватный ключ, позволяющий распоряжаться биткойнами ему принадлежащими (однозначно «привязанными» к приватному ключу). Биткойны существуют как записи в распределенной электронной книге (таблице, базе данных), называемой блокчейном, множественные копии которого находятся в одноранговой сети компьютеров.

 

Право собственности на биткойн означает наличие возможности передать его кому-то другому, создав и подписав приватным ключом запись факта передачи в блокчейне (транзакция Биткойна). Обеспечивает эту возможность и защищает Биткойн сеть от взлома алгоритм ECDSA, позволяющий генерировать пары закрытых (приватного) и открытых (публичного) цифровых ключей. Таким образом сохраняются все три признака права собственности, меняются только процедуры их подтверждения.

 

ECDSA — Elliptic Curve Digital Signature Algorithm — алгоритм цифровой подписи с применением эллиптической кривой. Алгоритм работает так, что подлинность цифровой подписи, поставленной с применением приватного ключа, может быть проверена другой стороной транзакции при помощи открытого ключа. Подписавший сохраняет исключительную способность создавать уникальную подпись. Передача биткойна, реквизиты которого подписаны цифровой подписью — это транзакция, передающая право собственности на него.

 

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

Эллиптические кривые

 Уравнение вида:

 

y2 = x3 + ax + b,

 

описывает эллиптическую кривую.

 

Для Биткойна используются коэффициенты a = 0, b = 7  и уравнение принимает вид:  y2 = x3 + 7. График такой функции:

 

 

 

 

Основные свойства эллиптической кривой:

 

  • линия (не вертикальная), пересекающая (не по касательной) две точки на кривой всегда пересечёт третью точку на ней же
  • линия, проведённая по касательная к точке кривой, пересечёт ещё одну точку на графике.

 

Можно использовать эти свойства для операций сложения и удвоения точек.

 

Сложение точек P + Q = R определяется как проекция относительно оси X третьей точки R’, являющейся пересечением прямой, проведённой через точки P и Q и графиком эллиптической функции.

 

 

 

 

Аналогично, удвоение точки, P + P = R определяется путем нахождения линии, касательной к удвоенной точке, P, и симметричной проекции относительно оси x точки R’ (пересечение касательной с графиком), чтобы получить искомую R.

 

 

 

 

Сложение и удвоение применяются для упрощённого скалярного умножения R = a P. Для Биткойна:

 

R = 7P =P + (P + (P + (P + (P + (P + P)))))), итого 6 операций

 

Упрощённое скалярное умножение:

R = 7P = P + 6P = P + 2 (3P) = P + 2 (P + 2P), итого 4 операции.

Конечные поля

Конечное поле для ECDSA — это известное множество положительных чисел, в которое должны попадать все расчётные значения. Значения не попавшие в множество конечного поля преобразуются (отражаются, обращаются), чтобы попасть в пределы множества.

 

Самый простой способ сделать  такое преобразование — вычислить остатки, произведя целочисленное деление. Например, 9/7 дает 1 с остатком 2:

 

9 mod 7 = 2

 

Здесь конечное поле по модулю 7 с множеством значений находящемся в диапазоне от 0 до 6.

Объединение

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

 

 

 

 

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

 

Визуально график отличается, так как нет непрерывных значений функции (взяты значения попадающие в конечное поле) и поле значений ограничено (графически) квадратом 67×67. Линии, нарисованные на этом графике имеют один и тот же угол наклона. Линия  проведённая по точкам (2, 22) и (6, 25), дойдя до границы значений конечного поля (в данном случае по оси у до значения 67), продолжается (отображается) «появляясь» с другой стороны значений конечного поля (левый нижний край ограничивающего квадрата):

 

 

 

 

Третья точка — точка пересечения (47, 39), а её симметричное отражение  — точка (47, 28).

 

ECDSA и Биткойн

В криптографии Биткойна применяется фиксированный набор параметров для эллиптической кривой на конечном поле. Для необходимых криптопреобразований используются следующие составляющие:

 

  • уравнение эллиптической кривой,
  • модуль поля  — p,
  • базисная точка — G,
  • порядок кривой — n.

 

Базовая точка не выбирается произвольно, а является функцией других параметров. Графически её можно представить, как отображение необходимое число раз, пока угол наклона касательной прямой не будет бесконечным, то есть вертикальной линией. Базовая точка выбирается так, чтобы значение было большим простым числом.

 

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

 

В случае Биткойна:

 

Уравнение эллиптической кривой: y2 = x3 + 7

 

p (модуль эллиптической кривой) = 2256 — 232 — 29 — 28 — 27 — 26 — 24 — 1 = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F

 

G (базовая точка) = 04  79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798   483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8, где выделенная подчёркиванием это координата x, оставшаяся часть координата y:

 

x = 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798

y = 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8

 

n (порядок кривой) = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141 — количество точек кривой над конечным полем.

 

Эллиптическая кривая на множестве вещественных чисел (непрерывные числовые значения, в том числе и дробные) не позволяет получить однозначное соответствие (биекцию) исходных данных их образам (хэшам). Чтобы не усложнять, и без того не простые, расчётные методы ещё и округлением, для целей криптографии используются только точки с координатами из множества конечных полей. Исходя из этого, на эллиптической кривой берутся точки со значениями координат попадающими в  конечное поле.

 

Кто и как выбирал именно эти значения для Биткойна, вопрос полемический и открытый. Битвы на форумах происходят до сих пор, то затухая, то снова обостряясь. Приводятся десятки аргументов как за, так и против этих параметров, называемых secp256k1 и являющихся частным случаем множества решений эллиптических кривых над конечными полями. Тем не менее именно secp256k1 предложен и применяется в криптографии Биткойна. Большие значения параметров могут скрывать бэкдор-метод восстановления секретного ключа. Среди аргументов, исключающих эту опасность то, что все константы secp256k1 выбраны известным образом и это значительно снижает вероятность того, что создатель кривой внедрил возможный бэкдор.


Если вы через 5 лет будете использовать бумажную валюту, то над вами будут смеяться


text text

Рекомендуемые статьи этой категории

stat1

5 секретов успешного трейдера

Last year’s Ethereum blockchain split was an event that could have resulted in significant loss and with the 1st August Bitcoin Fork event just around the corner

Подробнее
stat1

5 секретов успешного трейдера

Last year’s Ethereum blockchain split was an event that could have resulted in significant loss and with the 1st August Bitcoin Fork event just around the corner

Подробнее
stat1

5 секретов успешного трейдера

Last year’s Ethereum blockchain split was an event that could have resulted in significant loss and with the 1st August Bitcoin Fork event just around the corner

Подробнее

Как зарабатывать на криптовалютах?

5 способов и 10 готовых стратегий

Бесплатный видеокурс от нашего портала
journal
alt

Доступ открыт: 279 раз

Осталось бесплатно: 21

alt

3 видеоурока и PDF-книга

Получить доступ

Осталось бесплатно: 21