7.2. Криптографические методы защиты

Binance Smart Chain (BSC) использует современные криптографические методы для обеспечения безопасности транзакций, подписей и хранения данных. Основными алгоритмами являются алгоритм цифровой подписи на основе эллиптической кривой (ECDSA) с использованием кривой secp256k1, а также хэш-функция Keccak256 для обеспечения неизменности данных.

Алгоритм цифровой подписи ECDSA обеспечивает аутентификацию транзакций и защиту от подделки. Основные шаги алгоритма включают в себя генерацию ключей, создание и проверку подписи. Генерация ключей включает в себя формирование приватного и публичного ключа.


Приватный ключ k выбирается случайным образом:

k{1,2,,n1} k \in \{1, 2, \ldots, n - 1\}
  • где n — порядок группы точки G (генератора эллиптической кривой).


Публичный ключ вычисляется как:

P=kG P = k \cdot G
  • где G — базовая точка эллиптической кривой.


Для создания подписи выполняются операции в следующем порядке:

1. Для сообщения M вычисляется хэш сообщения:

z=keccak256(M) z = \operatorname{keccak256}(M)

2. Выбирается случайное число r:

r{1,2,,n1} r \in \{1, 2, \ldots, n - 1\}

3. Вычисляется точка на кривой:

R=rG R = r \cdot G

и берётся координата xRx_{R} :

r=xRmodn r = x_{R} \bmod n

Если r=0, выбирается другое r.

4. Вычисляется вторая часть подписи:

s=r1(z+kr)modn s = r^{-1} \cdot (z + k \cdot r) \bmod n

Если s=0, выбирается другое r.

В результате подписью является пара r,s.


Для проверки подписи (r,s) с использованием публичного ключа P:

1. Вычисляется хэш сообщения:

z=keccak256(M) z = \operatorname{keccak256}(M)

2. Вычисляются параметры:

u1=s1zmodn,u2=s1rmodn u_1 = s^{-1} \cdot z \bmod n, \quad u_2 = s^{-1} \cdot r \bmod n

3. Вычисляется точка:

Q=u1G+u2P Q = u_1 \cdot G + u_2 \cdot P

4. Если xQmodn=r x_{Q} \bmod n = r , подпись считается корректной.


Эллиптическая кривая secp256k1 задаётся уравнением:

y2=x3+7modp y^2 = x^3 + 7 \bmod p

где:

  • p=2256232977p = 2^{256} - 2^{32} - 977 — простое число (модуль);

  • G — базовая точка кривой с фиксированными координатами;

  • n — порядок точки G.


Особенности secp256k1:

  • Высокая скорость вычислений за счёт оптимизации для современных процессоров.

  • Компактность: ключи имеют размер 32 байта (256 бит).

  • Устойчивость к атаке, основанной на задаче дискретного логарифма.

Для хэширования данных и идентификаторов транзакций в BSC используется Keccak256 (вариант SHA-3). Хэш-функция принимает на вход данные любого размера и возвращает хэш фиксированного размера (256 бит).


Формула хэширования:

H(M)=Keccak256(M)H(M) = \operatorname{Keccak256}(M)

где:

  • M — исходное сообщение,

  • H(M) — его хэш.

Хэширование необратимо, что предотвращает восстановление исходного сообщения.


Каждая транзакция подписывается приватным ключом отправителя. Подпись проверяется узлами сети, что гарантирует аутентичность транзакции. Деревья Меркла используются для проверки целостности данных в блоках. Корневой хэш объединяет все транзакции блока, и любое изменение данных приводит к изменению корневого хэша. Валидаторы в алгоритме Proof-of-Stake Authority используют криптографические методы для проверки блоков и голосования.

Криптографические алгоритмы, используемые в Binance Smart Chain, обеспечивают высокую скорость, компактность данных и устойчивость к атакам. Эти методы делают BSC безопасной и эффективной blockchain-платформой.

Last updated