Отслеживание на основе хешей
В этом разделе рассмотрим, как использовать хеши для отслеживания сообщений и транзакций в блокчейне. Вы узнает е, чем различаются разновидности хешей, как вычислять их и применять для верификации активности в блокчейне.
Хеши
Хеши играют ключевую роль, обеспечивая идентификацию и верификацию на всех уровнях блокчейна. Понимание того, как работает хеширование, поможет вам эффективно отслеживать транзакции, проверять сообщения и интегрировать ваши приложения с TON.
Что такое хеш?
В TON хеш — это уникальный криптографический слепок данных, вычисленный с помощью алгоритма SHA-256. У каждой ячейки, сообщения или транзакции — свой уникальный хеш, который служит цифровой подписью.
Типы хешей
Хеши в TON работают односторонним образом: исходные данные не могут быть восстановлены из хеша. Однако они детерминированы: один и тот же ввод всегда приводит к одному и тому же хешу.
Хеш тела сообщения
Хеш тела сообщения — это уникальный идентификатор содержимого сообщения. Он вычисляется из ячейки, содержащей данные сообщения.
Тело относится к полю body: (Either X ^X)
в схеме TL-B:
message$_ {X:Type} info:CommonMsgInfo
init:(Maybe (Either StateInit ^StateInit))
body:(Either X ^X) = Message X;
Давайте для примера рассмотрим тело сообщения с комментарием «Hello, TON!» и вычислим его хеш.
import { beginCell } from '@ton/core';
// Create the message body to increment the counter
const messageBody = beginCell()
.storeUint(0, 32) // op code
.storeStringTail('Hello TON!')
.endCell();
console.log('Message body hash:', messageBody.hash().toString('hex'));
Ожидаемый вывод в консоль
Message body hash: d989794fa90c9817a63a22e00554574f3c4a347dcfd2e2886980a294de15f2af
Когда полезен хеш тела сообщения:
- для проверки целостности данных
- для отладки и логирования операций
- для дедупликации сообщений в вашем приложении