Реальная история.
Это сложное и, вероятно, лучше смотреть на коде непосредственно, как пытаться объяснить это на английском языке на высоком уровне абстрагирует некоторые из них прочь так в то время как это становится вам ближе он все еще может оставить некоторые части неоднозначными. Второе изображение ближе к правильному сценарию, однако помните ТЕ может иметь несколько входов, а также.
Хэш упрощенной операции состоял из один входной и все выходы создается, это затем подписывается секретным ключом для этого входа и хранятся в "сиг & Публичных" часть этого входа TX. Глянь сюда:
https://en.bitcoin.it/w/images/en/e/e1/TxBinaryMap.png Bitcoin не имеет ни малейшего понятия о "владельцы" или "бумажники" поэтому выход изменение не является специальным, это выход так же, как и любой другой. Если вы собираетесь создать иллюстрацию для объяснения затем создать один с единственным входом является плохим выбором, поскольку следующие вопросы становятся как dì ручки п входов где п >1. Пример с 2 входами лучше, потому что 3, 20 или 4000 входов обрабатываются точно так же, как 2.
Другая вещь, которую вы должны развестись себя от это вы не посылаете средства из открытого ключа, вы используете КОНКРЕТНЫЙ неизрасходованный выход предварительных ТЙ в качестве входных данных. Да, в разговоре мы можем сказать, "он заплатил мне адрес 123 ..." но при попытке объяснить работу Bitcoin, которая разваливается и пытаюсь понять что-либо становится невозможным. Вход специфический неизрасходованного выход. Это называется (на входе Tx) с помощью хэш-TX (предыдущего ТХ) и индекс (который Выходной сигнал, что TX используется здесь).
Таким образом, в более общем виде. Давайте предположу, что у Вас есть ТЕ, который состоит из 3 неизрасходованных выходов (которые становятся входами для этого ОГО) A, B, C и два новых выходов Y & Z (это не имеет значения, если один из них является адрес изменение или только что произошло, чтобы заплатить два различных приемников с точным количеством монет, AN входов является входом и выходом является выход).
Сначала выходные скрипты созданы. "нормальный" Bitcoin ОГО является PayToPubKeyHash, поэтому, вероятно, пользователь при условии, вам Bitcoin адреса. Это восстанавливается в PubKeyHash и скрипт, который блокирует этот вывод определенного значения для конкретного PubKeyHash создается. Выходы расположены в последовательности случайным образом (чтобы избежать утечек, какой из них "изменение"). Допустим, Z стать TxOut0 и Y становится TxOut1. Входы затем расположены в последовательности случайным образом. Допустим, А становится TxIn0, В становится TxIn1, и С становится TxIn2.
Теперь у нас есть ТЕ, который выглядит следующим образом:
TxIn0
Txin1
TxIn2
TxOut0
TxOut1
Упрощенный вариант ОГО создается (TxIn0, TxOut0, TxOut1) и хэшированный. Хэш подписывается закрытым ключом для A и находится в Sig & раздел Публичных для TxIn0.
Упрощенный вариант ОГО создается (TxIn1, TxOut0, TxOut1) и хэшированный. Хэш подписывается закрытым ключом для B и находится в Sig & раздел Публичных для TxIn1.
Упрощенный вариант ОГО создается (TxIn2, TxOut0, TxOut1) и хэшированный. Хэш подписывается закрытым ключом для C и находится в Sig & раздел Публичных для TxIn2.
Одна последняя вещь, которая не может быть очевидным. Там нет 1: 1 отношений между входами и секретными ключами. Например, если у вас есть два выхода неизрасходованных к тому же адрес (скажем, А & C), то они имеют один и тот же секретный ключ, однако они все еще уникальные и дискретные входы поэтому выше ТЕ будет по-прежнему иметь 3 входа.
Я, вероятно, буду видом или misstating что-то здесь, так что я бы перепроверить все это против кода.