Любая строка, которая была подписана секретным ключом, может быть проверена с помощью открытого ключа. Несколько примеров ниже
Для подписи полезной нагрузки (nacl используется из ton- crypto)
const signatureData = beginCell()
.storeUint(123, 32)
.storeCoins(toNano(123))
.endCell()
nacl.sign(signatureData.hash(), YOUR_SECRET_KEY)
Для проверки подписи на другой стороне (js) это может быть следующим образом:
return nacl.sign.detached.verify(message, signature, pubkey)
ИЛИ, если вы хотите, отметьте это в контракте
(int public_key) = load_data()
slice ref = in_msg~load_ref().begin_parse();
var signature = ref~load_bits(512);
int is_valid = check_signature(slice_hash(in_msg), signature, public_key)
Некоторые ссылки
кошелек v4R2 с проверкой подписи во внешнем msg
github * TON Connect V2 и проверка ton-proof на typescript и go
github ts и
github go