В чем разница между транзакцией с подписью и без нее?

Когда я отправляю транзакцию 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 конечная точка блокчейна.

Другие вопросы по тегам