Но только, чтобы помочь мне, чтобы получить хороший старт, если я получаю BTC от Bitcoin банкомата, мне будет предоставлена хэш-код, сгенерированный (один из 7.9 X 1028 с помощью SHA256), не так ли?
Я не использовал Bitcoin ATM, так что я не уверен, как они работают. Я предположил бы, что бы вы предоставить банкомат с вашим Bitcoin адрес, и банкомат просто послать транзакцию. Там не должно быть никакой необходимости обрабатывать приватные ключи.
Это является хэш-код секретного ключа нового адреса, связанным с BTC я купил?
Это может быть возможно, что банкомат предоставит вам с помощью закрытого ключа, и затем нужно будет импортировать этот закрытый ключ в бумажник, но это не будет хорошим способом для банкомата, чтобы работать. Я думаю, что я бы не использовать банкомат, который сделал это.
И если бы я потратил весь BTC в этом адресе, адрес будет удален?
Закрытые ключи и адрес просто цифры. Вы не можете удалить их больше, чем вы можете удалить номер 5 из существования.
Вы можете удалить их из своего кошелька, и банкомат может удалить секретный ключ или адрес из своего собственного кошелька, но почему? Там нет никакой пользы для удаления секретного ключа или адреса из вашего кошелька.
В бумажнике receipient, в том, что БТД добавляется в публичный адрес кошелька?
С точки зрения пользователя, это разумный способ думать об этом. На техническом уровне его немного более сложным, чем это, но вы, кажется, уже достаточно путаницы о том, как Bitcoin работает. Я не вижу необходимости еще запутать вас еще с подробностями о том, как сделки на самом деле работает.
Каким образом blockchain знают, что громкая сейчас владеют БТД?
Blockchain имеет транзакцию, которая указывает, что БТД было отправлено по этому адресу.
Я смотрел видео о том, как транзакции связаны через процесс хеширования и как новые ключи создаются, но никогда не понять, как это на самом деле работает. Есть ли хороший справочник для такого рода информации? (Я прошу это более технический вопрос, потому что вы, кажется, достаточно технический, чтобы ответить.)
Хорошо, кажется, что мы собираемся попасть в технические детали, в конце концов ...
Каждая транзакция состоит из 2-х списков.
Один список называется "выходы", Перечень выходов присваивает значение, которые были предоставлены в сделке. Каждый выход в списке обремененные (в виде сценария) с требованием, которое должно быть выполнено для того, чтобы иметь возможность использовать это значение для финансирования какой-либо другой сделки.
Другой список называется "входные", Список входов список ранее неизрасходованных выходов, созданных ранее сделок. Каждый вход в списке есть скрипт, который отвечает требованиям, что предыдущий выход был обремененные с. Затем он передает все значение этого предыдущего выхода к сделке, так что транзакция может присвоить это значение к новым выходам. После того, как выход был ссылается на вход, и эта сделка входит в блок в blockchain, выход считается "потраченный" и никогда не может ссылаться на любой другой вход когда-либо снова.
Давайте посмотрим на реальную сделке:
https://blockchain.info/tx/93d4a526737d59ba29aeb450cd66071f07ecf5575dbd7dcdae33f7ddbb2a7d09Вот сделка в необработанном шестнадцатеричном формате (я добавил разрывы строк каждые 32 байт, так что мы надеемся, лучше подходят на экране компьютера вместо простирающегося экрана справа):
0100000002cbdc5bc140ff336abb9db2674c0521a75c1e4527295362fb97d59c
b0840e755d040000006b483045022100f57111d73ea20dc7d989bef2d8c4a2fc
2bcf1348b67b633090cc353757017fb502206515c5c3c059bd3dd7d144b8fb48
1dfc25d715b4bab439a7a67b018ab1d1bedf012102759f9014f1179299dc78c1
114f9872492561aa2a6490f330d7c64ab67646cbd6fffffffffa2e7b484496f7
b82432cf9926fb074ba5318c3150232ea903ad5b03b900a896190000006b4830
45022100cce9f1977cbec30a43e7421c88ac6c29b53c0ecb44ac939234f367e9
0885c368022070163871b4913d90cce2789dc68f6d7367ff41f970d2fc945686
aadfe69f434c012102759f9014f1179299dc78c1114f9872492561aa2a6490f3
30d7c64ab67646cbd6ffffffff02cd6f0700000000001976a914f918ffff3451
92ae9f3878d49344a7ad99a543f788ac00e1f505000000001976a9149529f2cc
d600ccb40fee8d56715839b6ff5d0f0888ac00000000
Вот что на самом деле передается по сети и хранятся в blockchain.
Я буду использовать некоторые разрывы строк, чтобы разбить что на составные кусочки для вас:
01000000
02
cbdc5bc140ff336abb9db2674c0521a75c1e4527295362fb97d59cb0840e755d040000006b483045022100f57111d73ea20dc7d989bef2d8c4a2fc2bcf1348b67b633090cc353757017fb502206515c5c3c059bd3dd7d144b8fb481dfc25d715b4bab439a7a67b018ab1d1bedf012102759f9014f1179299dc78c1114f9872492561aa2a6490f330d7c64ab67646cbd6fffffffffa2e7b484496f7b82432cf9926fb074ba5318c3150232ea903ad5b03b900a896190000006b483045022100cce9f1977cbec30a43e7421c88ac6c29b53c0ecb44ac939234f367e90885c368022070163871b4913d90cce2789dc68f6d7367ff41f970d2fc945686aadfe69f434c012102759f9014f1179299dc78c1114f9872492561aa2a6490f330d7c64ab67646cbd6ffffffff
02
cd6f0700000000001976a914f918ffff345192ae9f3878d49344a7ad99a543f788ac00e1f505000000001976a9149529f2ccd600ccb40fee8d56715839b6ff5d0f0888ac
00000000
Ok позволяет маркировать те, так что вы знаете, что вы смотрите:
Во-первых, мы имеем номер версии транзакции. При преобразовании из шестнадцатеричного на базу
10 (С использованием обратного порядка байт), мы видим, что эти 4 байта данных представляют значение 1. Это позволяет всем узлам знают, что эта сделка с использованием правил, связанные с транзакцией версией 1:
Далее мы имеем ряд, который говорит, сколько элементов в списке ввода. Преобразование из шестнадцатеричных мы видим, что этот байт представляет значение 2. Это позволяет все узлам знают, что они должны искать 2 входа сразу после этого:
После этого у нас есть список из 2 входов. Мы сломаем это обособленно позже, но ради держать все в том же порядке, как сделки выше, так что вы можете следовать здесь данные, представляющие эти входы:
cbdc5bc140ff336abb9db2674c0521a75c1e4527295362fb97d59cb0840e755d040000006b483045022100f57111d73ea20dc7d989bef2d8c4a2fc2bcf1348b67b633090cc353757017fb502206515c5c3c059bd3dd7d144b8fb481dfc25d715b4bab439a7a67b018ab1d1bedf012102759f9014f1179299dc78c1114f9872492561aa2a6490f330d7c64ab67646cbd6fffffffffa2e7b484496f7b82432cf9926fb074ba5318c3150232ea903ad5b03b900a896190000006b483045022100cce9f1977cbec30a43e7421c88ac6c29b53c0ecb44ac939234f367e90885c368022070163871b4913d90cce2789dc68f6d7367ff41f970d2fc945686aadfe69f434c012102759f9014f1179299dc78c1114f9872492561aa2a6490f330d7c64ab67646cbd6ffffffff
После списка входов мы в следующий раз иметь номер, который говорит, сколько элементов в списке вывода. Преобразование из шестнадцатеричных мы видим, что этот байт представляет значение 2. Это позволяет все узлам знают, что они должны искать 2 выхода сразу после этого:
После этого у нас есть список из 2 выходов. Мы сломаем это обособленно позже, но ради держать все в том же порядке, как сделки выше, так что вы можете следовать здесь данные, представляющие эти результаты:
cd6f0700000000001976a914f918ffff345192ae9f3878d49344a7ad99a543f788ac00e1f505000000001976a9149529f2ccd600ccb40fee8d56715839b6ff5d0f0888ac
Наконец, у нас есть 4 байта, которые представляют стопорное время. Если эти 4 байта не равны нулю, то они являются показателем для всех узлов, они не должны принимать сделки, как не являющийся действительным только после blockheight или отметки, указанной на их значения. В большинстве случаев для типичных операций, что типичный пользователь Bitcoin будет посылать эти 4 байта всегда будут нули.
Вот и все. Это вся сделка. Там нет ничего в там, ничего не передается как часть сделки, и ничего не хранится в blockchain как часть сделки.
Для того, чтобы получить лучшее понимание того, как работает транзакция, позволяет более внимательно взглянуть на эти два списка (входы и выходы) ...
Я сломаю список входов в это два входа.
Вот первый вход, я разбил его компоненты друг от друга с разрывами строк (вы можете сравнить список входов выше):
cbdc5bc140ff336abb9db2674c0521a75c1e4527295362fb97d59cb0840e755d
04000000
6b483045022100f57111d73ea20dc7d989bef2d8c4a2fc2bcf1348b67b633090cc353757017fb502206515c5c3c059bd3dd7d144b8fb481dfc25d715b4bab439a7a67b018ab1d1bedf012102759f9014f1179299dc78c1114f9872492561aa2a6490f330d7c64ab67646cbd6fffffffff
Это первая часть, "cbdc5bc140ff336abb9db2674c0521a75c1e4527295362fb97d59cb0840e755d", Является идентификатором транзакции более ранней транзакции. Это говорит системе, "Я трачу значение, которое было ранее назначенным в одном из выходов идентификатора транзакции cbdc5bc140ff336abb9db2674c0521a75c1e4527295362fb97d59cb0840e755d."
Это следующая часть, "04000000", Обычно называется индекс или смещение. Это говорит системе, "Я провожу выходной номер 4 в списке выходов из этой сделки, что я просто в списке."
(Обратите внимание, что выходы пронумерованы начиная с 0, поэтому первым выходом выводится номер 0, второй выход выводится номер 1, третий выход выводится номер 2, и так далее. Таким образом, этот вход проводит в пятом выходе (номер выхода 4) от сделки cbdc5bc140ff336abb9db2674c0521a75c1e4527295362fb97d59cb0840e755d.
Каждый узел сети знает теперь пойти посмотреть на пятом выходе операции cbdc5bc140ff336abb9db2674c0521a75c1e4527295362fb97d59cb0840e755d при проверке этой сделки.
Вот ссылка на эту сделку с пятым выходом выделен желтым цветом:
https://blockchain.info/tx-index/273813243/4Вы можете видеть, что этот выход обеспечивает в общей сложности 0.00674373 BTC (674373 satoshis) в стоимостном выражении, что эта сделка теперь доступна она будет переназначен.
Позже мы увидим, когда мы смотрим на выходах, что они также включают в себя сценарий, который должен быть удовлетворен некоторыми данными, с тем чтобы иметь возможность использовать их в списке входов. Этот вход удовлетворяет это требование с цифровой подписью ECDSA и открытым ключом ECDSA, который является то, что заключительная строкой данных выше.
Вот второй вход, я разбил его компоненты друг от друга с разрывами строк (вы можете сравнить список входов выше):
a2e7b484496f7b82432cf9926fb074ba5318c3150232ea903ad5b03b900a896
19000000
6b483045022100cce9f1977cbec30a43e7421c88ac6c29b53c0ecb44ac939234f367e90885c368022070163871b4913d90cce2789dc68f6d7367ff41f970d2fc945686aadfe69f434c012102759f9014f1179299dc78c1114f9872492561aa2a6490f330d7c64ab67646cbd6ffffffff
Это первая часть, "a2e7b484496f7b82432cf9926fb074ba5318c3150232ea903ad5b03b900a896", Является идентификатором транзакции более ранней транзакции. Это говорит системе, "Я трачу значение, которое было ранее назначенным в одном из выходов идентификатора транзакции a2e7b484496f7b82432cf9926fb074ba5318c3150232ea903ad5b03b900a896."
Это следующая часть, "19000000", Обычно называется индекс или смещение. При преобразовании из шестнадцатеричного на базу
10 (С использованием обратного порядка байт) мы видим, что она представляет собой значение 25. Это говорит системе, "Я провожу выходное число 25 (двадцать шестого выход) в списке выходов из этой сделки, что я просто в список."
Таким образом, этот вход проводит выход двадцать шестой (выход номер 25) из транзакции a2e7b484496f7b82432cf9926fb074ba5318c3150232ea903ad5b03b900a896.
Каждый узел сети знает теперь пойти посмотреть на двадцать шестой выход транзакции a2e7b484496f7b82432cf9926fb074ba5318c3150232ea903ad5b03b900a896 при проверке этой сделки.
Вот ссылка на эту сделку с пятым выходом выделен желтым цветом:
https://blockchain.info/tx-index/259879311/25Вы можете видеть, что этот выход обеспечивает в общей сложности 1,0 BTC (100000000 satoshis) в стоимостном выражении, что эта сделка теперь доступна она будет переназначен.
Этот вход удовлетворяет требования сценария выходных с цифровой подписью ECDSA и открытым ключом ECDSA, который является то, что заключительная строкой данных выше.
Мы можем видеть, что в общей сложности:
0.00674373 + 1,0 = 1,00674373 BTC (100674373 satoshis) стоимости было обеспечено список входов. Далее, список выходов присвоит это значение.
Я сломаю список выходов в это два выхода.
Вот первый выход, я разбил его компоненты друг от друга с разрывами строк (вы можете сравнить список выходов выше):
cd6f070000000000
1976a914f918ffff345192ae9f3878d49344a7ad99a543f788ac
Это первая часть, "cd6f070000000000" говорит, сколько satoshis присваиваемые к выходу. Если преобразование из шестнадцатеричной в базу
10 (С использованием обратного порядка байт) мы видим, эти 8 байт представляют значение 487373 satoshis (0,00487373 BTC).
Вторая часть представляет собой скрипт, который обременяет это значение с требованием, должны быть выполнены любым входом в будущем, который пытается провести этот вывод. В этом случае, что сценарий эффективно говорит, "Поставка открытого ключа ECDSA, что хэш-значению "f918ffff345192ae9f3878d49344a7ad99a543f7", Также поставляет цифровую подпись ECDSA, которые могут быть проверены с помощью открытого ключа, который вы указали", Поэтому, когда этот выход позже, затраченное на который ссылается на вход в будущей сделке, что ввод нужно будет поставлять как открытый ключ и подпись.
Вот второй выход, я разбил его компоненты друг от друга с разрывами строк (вы можете сравнить список выходов выше):
00e1f50500000000
1976a9149529f2ccd600ccb40fee8d56715839b6ff5d0f0888ac
Это первая часть, "00e1f50500000000" говорит, сколько satoshis присваиваемые к выходу. Если преобразование из шестнадцатеричной в базу
10 (С использованием обратного порядка байт) мы видим, эти 8 байт представляют значение 100000000 satoshis (1,0 BTC).
Вторая часть представляет собой скрипт, который обременяет это значение с требованием, должны быть выполнены любым входом в будущем, который пытается провести этот вывод. В этом случае, что сценарий эффективно говорит, "Поставка открытого ключа ECDSA, что хэш-значению "9529f2ccd600ccb40fee8d56715839b6ff5d0f08", Также поставляет цифровую подпись ECDSA, которые могут быть проверены с помощью открытого ключа, который вы указали", Поэтому, когда этот выход позже, затраченное на который ссылается на вход в будущей сделке, что ввод нужно будет поставлять как открытый ключ и подпись.
Итак, если вы следовали вместе, вы должны увидеть, что список из двух входов при условии, в общей сложности 1.00674373 BTC (100674373 satoshis) стоимости по сделке, а также о том, что сделка создала два новых выходов, назначенных в общей сложности:
487373 + 100000000 = 100487373 satoshis (1,00487373 BTC).
Остальное неприсвоенное значение:
100674373 обеспечивается входами - 100487373, используемых выходов = 187000 satoshis (0.00187 BTC)
Когда транзакция получает включена в блок в blockchain, шахтер, который создает этот блок разрешено назначить этот дополнительный 0.00187 BTC для себя наряду с текущим блоком субсидиями в качестве их вознаграждения блока. То есть, как операционные издержки обрабатываются системой Bitcoin.