Я хочу убедиться, что транзакция вознаграждения за майнинг действительно действительна и что она была инициирована системой. В настоящее время я не знаю, как я мог бы проверить подлинность системы без жесткого кодирования открытых и закрытых ключей, которые опять-таки не были бы безопасными
В настоящее время я использую эллиптические инструменты для генерации ключей и их проверки.
valid() {
if (this.from === null) {
return true;
}
if (!this.signature || this.signature.length === 0) {
console.log('No signature on this transaction!\n');
return false;
}
if (typeof this.amount !== 'number' || this.amount <= 0) {
console.log('Amount must be a positive number\n');
return false;
}
const publicKey = ec.keyFromPublic(this.from, "hex");
return publicKey.verify(this.hash(), this.signature)
}
Прямо сейчас, если адрес отправителя равен нулю, что означает, что это было вознаграждение за майнинг, транзакция автоматически выполняется. Тем не менее, кто-то может просто дать адрес от «null», а затем, по существу, дать себе деньги.
Как я могу убедиться, что награда за майнинг верна и поступает из системы только после того, как майнинг действительно был сделан.