При создании транзакции, как вы можете доказать, что вы владеете своим адресом, не раскрывая свой закрытый ключ?

Я пытаюсь понять, как работает Биткойн под капотом, но есть кое-что, чего я вообще не понимаю и не могу найти.

Предположим, у меня есть адрес А (у меня есть открытый ключ, А-открытый, и закрытый ключ А-закрытый), и я хочу перевести 1 BTC на адрес Б (мне известен его открытый ключ, В-открытый).

Чтобы иметь возможность совершить транзакцию, я должен каким-то образом доказать, что владею A, и единственный способ сделать это — показать A-private. Но если я покажу A-private, то я раскрываю свой личный адрес, так что кто-то каким-то образом может его получить.

Подводя итог: в биткойн-блокчейне, как мне доказать, что я владею определенным количеством биткойнов, не раскрывая свой закрытый ключ? Или, наоборот, как с этим справляется протокол Биткойн?

Ответы (1)

В криптографии с открытым и закрытым ключом вы можете использовать свой закрытый ключ (не сообщая его никому) таким образом, чтобы создать сообщение, полностью привязанное к вашему открытому ключу.

Любой может просмотреть это сообщение и ваш открытый ключ и сделать вывод, что сообщение может быть сгенерировано только кем-то, кто знает закрытый ключ, даже если он не знает, что такое закрытый ключ.

Тот факт, что сообщение может быть подтверждено вашим открытым ключом , доказывает , что вы должны знать закрытый ключ и должны быть владельцем открытого ключа и адреса кошелька.

Думайте об этом как о замке, который все время остается закрытым. Вы можете разблокировать замок в любое время с помощью своего секретного ключа, никому не показывая свой ключ.

Любой может посмотреть на этот замок и прийти к выводу: «Этот замок, должно быть, открыл владелец, у которого есть ключ; никто другой не мог его открыть» , но вы все равно ни с кем не делились ключом.

Это именно тот ответ, который я искал.