For the complete documentation index, see llms.txt. This page is also available as Markdown.

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