Шаг за шагом - как работает отправка 1 биткойна?

Я читаю о том, как работает BitCoin, уже несколько недель — и я пытаюсь понять, как работает криптография.

Итак, я объясню, что я знаю на данный момент - и может ли кто-нибудь прояснить это для меня? Или предоставьте ссылки на документы, которые могут объяснить это немного лучше (я читал оригинальный биткойн.pdf, но он немного расплывчатый)

Сценарий:

У меня есть адрес (пк, ск).

У меня есть предыдущая транзакция, которая содержит 1 биткойн.

Я создаю новый адрес (pk', sk'), на который также хочу отправить биткойн.

Я хеширую новый открытый ключ pk' с предыдущей транзакцией tx так, что hash(pk', tx) = h1.

Я подписываю хешированную транзакцию h1, используя свой секретный ключ и некоторую «случайность» r. Знак "sk"(h1,r)

Затем — это транслируется и помещается в блок биткойн-майнером?


Кроме того, если бы я должен был отправить два биткойна по 0,5 на pk', я бы сделал следующее...

tx1 и tx2 связаны с 0,5 биткойнами.

Затем я хеширую tx1 и tx2 с новым открытым ключом pk' таким образом, что hash(tx1, pk') = h1 и hash(tx2, pk') = h2.

Затем я подписываю оба этих хэша, используя следующую функцию... Sign"sk"(h1, h2, r) или это будет Sign"sk"(h1,r), Sign"sk"(h2,r'). (разная случайность для каждой подписи)


Это может быть глупый вопрос ... но мне было трудно понять, как это работает. Я также понимаю, что некоторые символы (такие как i и 0) не включены в хэш — относится ли это к основанию 58?

Ответы (1)

Возможно, вам было бы полезно ознакомиться с техническими статьями на Биткойн Вики. Вот некоторые отправные точки, основанные на ваших вопросах.

https://en.bitcoin.it/wiki/Адрес

https://en.bitcoin.it/wiki/Транзакция

https://en.bitcoin.it/wiki/Скрипт

https://en.bitcoin.it/wiki/Сеть

https://en.bitcoin.it/wiki/Блок

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

Кстати, кажется, вы довольно близки к пониманию этого ... хотя не уверены в «случайности» или «некоторых символах, не включенных в хэш», хотя
Я читал документ под названием CommitCoin eprint.iacr.org/2011/677.pdf — в нем говорится о способности доказать приверженность сообщению, позволив верификатору извлечь секретный ключ из двух транзакций — он делает это, используя одно и то же случайность дважды в транзакции. Я пытался выяснить, где эта «случайность» на самом деле, но, кажется, не могу ее найти. В хэше отсутствуют некоторые символы, которые я нашел на en.bitcoin.it/wiki/Address#What.27s_in_an_address. Сейчас я посмотрю эти ссылки, спасибо, безвозмездно, за ответ.
использование одного и того же случайного и секретного ключа в двух отдельных транзакциях*****
@RentFree Алгоритм подписи ECDSA, который использует Биткойн, требует использования случайного числа в каждой подписи. Возможны атаки, если они не случайны. Кроме того, кодировка Base58 открытого ключа не использует некоторые символы, точно так же, как base 10 не используется Aв качестве числа, base 58 не используется i(потому что его слишком легко спутать с 1).