> For the complete documentation index, see [llms.txt](https://deflationcoin.gitbook.io/whitepaper-ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://deflationcoin.gitbook.io/whitepaper-ru/7.-tekhnicheskaya-arkhitektura/7.2.-kriptograficheskie-metody-zashity.md). # 7.2. Криптографические методы защиты Binance Smart Chain (BSC) использует современные криптографические методы для обеспечения безопасности транзакций, подписей и хранения данных. Основными алгоритмами являются алгоритм цифровой подписи на основе эллиптической кривой (ECDSA) с использованием кривой secp256k1, а также хэш-функция Keccak256 для обеспечения неизменности данных. Алгоритм цифровой подписи ECDSA обеспечивает аутентификацию транзакций и защиту от подделки. Основные шаги алгоритма включают в себя генерацию ключей, создание и проверку подписи. Генерация ключей включает в себя формирование приватного и публичного ключа. *** ## Приватный ключ k выбирается случайным образом: $$ k \in {1, 2, \ldots, n - 1} $$ * где n — порядок группы точки G (генератора эллиптической кривой). *** ## Публичный ключ вычисляется как: $$ P = k \cdot G $$ * где G — базовая точка эллиптической кривой. *** ## Для создания подписи выполняются операции в следующем порядке: ### 1. Для сообщения M вычисляется хэш сообщения: $$ z = \operatorname{keccak256}(M) $$ ### 2. Выбирается случайное число r: $$ r \in {1, 2, \ldots, n - 1} $$ ### 3. Вычисляется точка на кривой: $$ R = r \cdot G $$ и берётся координата $$x\_{R}$$ : $$ r = x\_{R} \bmod n $$ Если r=0, выбирается другое r. ### 4. Вычисляется вторая часть подписи: $$ s = r^{-1} \cdot (z + k \cdot r) \bmod n $$ Если s=0, выбирается другое r. > ***В результате подписью является пара r,s.*** *** ## Для проверки подписи (r,s) с использованием публичного ключа P: ### 1. Вычисляется хэш сообщения: $$ z = \operatorname{keccak256}(M) $$ ### 2. Вычисляются параметры: $$ u\_1 = s^{-1} \cdot z \bmod n, \quad u\_2 = s^{-1} \cdot r \bmod n $$ ### 3. Вычисляется точка: $$ Q = u\_1 \cdot G + u\_2 \cdot P $$ ### 4. Если $$x\_{Q} \bmod n = r$$, подпись считается корректной. *** ## Эллиптическая кривая secp256k1 задаётся уравнением: $$ y^2 = x^3 + 7 \bmod p $$ где: * $$p = 2^{256} - 2^{32} - 977$$ — простое число (модуль); * G — базовая точка кривой с фиксированными координатами; * n — порядок точки G. *** ## Особенности secp256k1: * Высокая скорость вычислений за счёт оптимизации для современных процессоров. * Компактность: ключи имеют размер 32 байта (256 бит). * Устойчивость к атаке, основанной на задаче дискретного логарифма. Для хэширования данных и идентификаторов транзакций в BSC используется Keccak256 (вариант SHA-3). Хэш-функция принимает на вход данные любого размера и возвращает хэш фиксированного размера (256 бит). *** ## Формула хэширования: $$ H(M) = \operatorname{Keccak256}(M) $$ где: * M — исходное сообщение, * H(M) — его хэш. > ***Хэширование необратимо, что предотвращает восстановление исходного сообщения.*** *** Каждая транзакция подписывается приватным ключом отправителя. Подпись проверяется узлами сети, что гарантирует аутентичность транзакции. Деревья Меркла используются для проверки целостности данных в блоках. Корневой хэш объединяет все транзакции блока, и любое изменение данных приводит к изменению корневого хэша. Валидаторы в алгоритме Proof-of-Stake Authority используют криптографические методы для проверки блоков и голосования. Криптографические алгоритмы, используемые в Binance Smart Chain, обеспечивают высокую скорость, компактность данных и устойчивость к атакам. Эти методы делают BSC безопасной и эффективной blockchain-платформой. --- # Agent Instructions This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com. ## Querying This Documentation If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question. Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter: ``` GET https://deflationcoin.gitbook.io/whitepaper-ru/7.-tekhnicheskaya-arkhitektura/7.2.-kriptograficheskie-metody-zashity.md?ask=&goal= ``` `ask` is the immediate question: it should be specific, self-contained, and written in natural language. `goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal. The response will contain a direct answer to the question and relevant excerpts and sources from the documentation. Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.