Я изучал применение открытого и закрытого ключа в криптографии. Я работал на MetaMask (тестовая сеть Ropsten) и знаю, как перевести сумму с одной учетной записи на другую, используя адрес учетной записи. Но одна вещь, которую я заметил здесь, заключается в том, что при использовании функции web3 для передачи эфира нам требуется только открытый ключ как отправителя, так и получателя.
web3.eth.sendTransaction({to: 'key1', from: 'key2', value:web3.toWei("0.0001", "ether")},
Я знаю, что, несмотря на наличие открытых ключей, нам все равно нужно подтвердить транзакцию с конца метамаски для учетной записи 1 (с адреса), и после подтверждения транзакция будет успешно обработана. Процесс подтверждения происходит из-за процесса подписи, в то время как мы подтверждаем транзакцию с использованием метамаски (цифровая подпись транзакции из закрытого ключа), верно ли мое предположение о цифровой подписи?
Что касается приведенного выше случая, я заметил аналогичную проблему, когда мы переводим суммы между двумя биржами, используя предоставленный ими адрес. Предположим, у меня есть две учетные записи на разных криптобиржах, например Binance и CoinDelta. Если у меня есть 50 эфиров в моей учетной записи Binance, и я хочу отправить эти эфиры на другую учетную запись биржи, я буду использовать адрес другой учетной записи биржи (адрес кошелька CoinDelta). Таким образом, мы можем передавать эфиры с одной биржи на другую. Но мои опасения по поводу этого дела следующие:
Почему нам не нужно подтверждение, как мы видим в метамаске для перевода суммы?
Где хранится закрытый ключ пользователя на криптобирже?
Если криптобиржи хранят закрытый ключ пользователя, то нет безопасности, потому что владелец может выполнять злонамеренные действия от имени учетной записи пользователя?
Как транзакция (перевод суммы между биржами) на самом деле работает между биржами без закрытых ключей?
Отвечая на каждый из ваших ключевых моментов: