В чем разница между транзакцией с подписью и без нее?
Когда я отправляю транзакцию peer/transactions
Я могу отправить его с и без подписей. Обе транзакции принимаются. В чем разница.
Пример; Создайте новую цепочку / dapp с помощью asch-js
Ситуация 1: использование подписей (и transactionid
):
function createDApp(options, secret, secondSecret) {
var keys = crypto.getKeys(secret);
var transaction = {
secret: secret,
type: 200,
amount: 0,
fee: constants.fees.dapp,
recipientId: null,
senderId: crypto.getAddress(keys.publicKey),
timestamp: slots.getTime() - globalOptions.get('clientDriftSeconds'),
args: [options.name, options.description, options.link, options.icon, options.delegates, options.unlockDelegates],
signatures: []
};
transaction.signatures.push(crypto.sign(transaction, keys));
if (secondSecret) {
var secondKeys = crypto.getKeys(secondSecret);
transaction.signatures.push(crypto.secondSign(transaction, secondKeys));
}
transaction.id = crypto.getId(transaction);
return transaction;
}
Ситуация 2: нет подписей
function createDApp(options, secret, secondSecret) {
var keys = crypto.getKeys(secret);
var transaction = {
secret: secret,
type: 200,
amount: 0,
fee: constants.fees.dapp,
recipientId: null,
senderId: crypto.getAddress(keys.publicKey),
timestamp: slots.getTime() - globalOptions.get('clientDriftSeconds'),
args: [options.name, options.description, options.link, options.icon, options.delegates, options.unlockDelegates],
signatures: []
};
return transaction;
}
Обе транзакции принимаются (и создают новую цепочку). Так в чем же разница и какова лучшая практика?
1 ответ
Насколько я понимаю api/transactions
Конечная точка в основном для неподписанных транзакций (как ваш второй пример). Поэтому вы должны предоставить secret
имущество. В противном случае блокчейн ASCH не сможет подписать вашу неподписанную транзакцию.
В первом примере вы подписываете транзакцию самостоятельно, поэтому вам не нужно отправлять secret
собственность на peer/transactions
конечная точка.
С точки зрения безопасности лучше подписывать транзакции локально. Таким образом, ни один вредоносный узел не может украсть все ваши средства при отправке secret
конечная точка блокчейна.