Как транзакции проверяются узлами, отличными от исходного получателя?

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

Чего я не понимаю, так это того, что когда это сообщение передается другим узлам для проверки, как они могут его расшифровать, если оно было зашифровано с использованием открытого ключа исходного узла. Кроме того, я читал, что майнеры также должны проверять достоверность полученных ими транзакций. Как они могут расшифровать транзакции?

В вашем посте есть несколько основных неверных предположений, и Эндрю уже указал правильное направление. Существует набор шагов проверки, которые описаны здесь: en.bitcoin.it/wiki/Protocol_rules#.22tx.22_messages . Также я настоятельно рекомендую книгу Андреаса «Освоение биткойнов», которую можно читать онлайн на многих языках. Продолжайте в том же духе, ищите на форуме и задавайте новые вопросы!

Ответы (1)

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

Вы неправильно понимаете. В Биткойне ничего не зашифровано, в этом нет необходимости, и, как вы заметили, это сделало бы невозможным проверку содержимого транзакции.

Транзакции только подписаны. Подпись обеспечивает целостность транзакции и доказывает, что отправителю действительно разрешено отправлять биткойны.

Большое спасибо за Ваш ответ. Хорошо, я вижу, что неправильно понял. Однако я до сих пор не понимаю, как другие узлы узнают мой открытый ключ. Является ли транзакция составной из двух вещей: самих данных транзакции, подписанных закрытым ключом отправителя, а также его / ее открытым ключом, чтобы узлы могли проверить, что отправитель является владельцем открытого ключа?
Транзакция содержит сам открытый ключ вместе с подписью. И то, и другое содержится в транзакции, но подпись не покрывает и не может покрывать себя (да).