Я читаю о том, как работает 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?
Возможно, вам было бы полезно ознакомиться с техническими статьями на Биткойн Вики. Вот некоторые отправные точки, основанные на ваших вопросах.
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/Блок
Одна концепция, которую вы не упомянули, но которая имеет решающее значение для понимания того, как это работает на низком уровне, заключается в том, что транзакции проверяются с помощью запуска скриптов (см. ссылку выше).
Аренда бесплатно
Патрик
Патрик
Дэвид Шварц
A
в качестве числа, base 58 не используетсяi
(потому что его слишком легко спутать с1
).