Давайте предположим, что Брюс имеет два Bitcoin адреса (1PvFignfc4H1hvUJU8EuoeUNMh7WtdJPgp и 1Gd2SRTE7GC6GHwtSaAeV7d1xhJ7t5iYJ6). Оба эти адреса были получены с использованием закрытого ключа его Bitcoin Кошелька.
Wallet.dat содержит коллекцию частных ключей. Каждый закрытый ключ дает уникальный адрес Bitcoin. Так что бумажник не имеет ни одного закрытого ключа, он имеет много закрытых ключей, и каждый из них может быть хэшируются придумать соответствующий Bitcoin адреса.
Для того, чтобы отправить 1,88 BTC Линде, сначала клиент Bitcoin на машине Брюса, должно сканировать весь блок цепь и найти все операции, соответствующие 1 из вышеуказанных 2 Bitcoin Адреса, где Брюс получил некоторую сумму.
Ну клиент Bitcoin-Qt будет смотреть на все неизрасходованные сделки Брюса (то есть, по любому адресу в его бумажнике) и выбрать один или более на основе набора правил (которые включают в себя сведение к минимуму количества изменений, к примеру).
Эта сделка будет иметь выход (который имеет значение и Bitcoin адрес, хранящийся в нем?)
Таким образом, два выхода Адрес Линды (с суммой 1,88 BTC), а затем клиент тянет неиспользуемый адрес из keypool и добавляет, что в качестве второго выхода (с количеством быть общей сумма входного сигнала (ов) меньше 1,88 BTC Линды меньше плата дать шахтера).
Теперь, когда клиент Bitcoin обосновалась последнюю транзакцию в блоке цепи, где Брюс получил некоторое количество,
Не обязательно последняя. Конкретная неизрасходованная сделка будет использоваться независимо один клиент выбрал на основе набора правил клиента. Это отличается для разных клиентов. Bitcoin-Qt использует один метод для выбора монет, Оружейный использует свой собственный, и т.д.
он будет генерировать сценарий ввода, чтобы доказать, что Брюс является владельцем этого BTC, как указан в выходе сделки, правильно?
Нет. Для этого "передать Bitcoin адрес" действие, каждый выход просто:
OP_DUP OP_HASH160
OP_EQUALVERIFY OP_CHECKSIG -
http://en.bitcoin.it/wiki/Transactions#Principle_example_of_a_Bitcoin_transaction_with_1_input_and_1_output_onlyТам нет ничего в каждом ВЫХОДЕ кроме инструкции вывода и хэша открытого ключа - специально ripemd160 (SHA256 (Публичный)). И нет ничего, что указывало бы, что один из адресов происходит с адресом, который из собственного кошелька Брюса.
Все подписание и полный публичный ключ на каждом входе, а не выход. Только во время проверки транзакционного эти два используются вместе:
scriptSig входного и scriptPubKey ссылочного выходных в оцениваются (в указанном порядке), с scriptPubKey с использованием значений, оставшихся в стеке scriptSig. Вход правомочно, если scriptPubKey возвращает истину
-
https://en.bitcoin.it/wiki/Transactions#Verification[Я не очень хорошо разбираюсь в сделках на уровне сценария, так что я может описывать это неправильно, так что если у кого есть исправления или комментарии, не стесняйтесь поделиться.]