Согласно информации, которую я нашел здесь: https://en.bitcoin.it/wiki/Transaction , транзакция биткойнов содержит,
ДЛЯ КАЖДОГО ВХОДА:
ДЛЯ КАЖДОГО ВЫХОДА:
Теперь мой вопрос: какая информация неявно содержится в ScriptSig? Я знаю, что из ScriptPubKey можно вычислить адрес назначения, но я не вижу, можно ли получить какую-либо другую информацию из ScriptSig.
Кроме того, если хранится только хеш входящей транзакции, как узел ищет входящую транзакцию в блокчейне, когда ему нужно проверить новую транзакцию? И как он узнает, в какой блок включена эта транзакция? Если он не знает, в каком блоке находится эта транзакция, должен ли он просматривать всю цепочку блоков только для того, чтобы найти ее?
Какие данные есть в scriptSig
scriptSig
в типичном сценарии p2pkh , который является практическим большинством биткойн-транзакций, содержит только открытый ключ scriptPubKey
хэша, а также подпись. Это означает, что нет никаких метаданных, кроме открытого ключа и подписи для авторизации платежа.
Для не-p2pkh-транзакций, таких как, например , p2sh-транзакции , в файл scriptSig
. Например, в p2sh multisig будут показаны несколько открытых ключей, способных авторизовать мультиподпись. В еще более сложных скриптах scriptSig
может раскрываться важная информация, в зависимости от того, что scriptPubKey
запрашивает скрипт. Например, есть транзакции со снежинками, которые требуют scriptSig
решения определенных головоломок . Однако такие сделки очень редки.
Как проверяются транзакции
Существует несколько моделей безопасности при проверке транзакции. Подтверждение транзакции — это понятие, отличное от подтверждения транзакции , о котором вы говорите. Проверка транзакции спрашивает, действительна ли транзакция – например, имеет ли она правильный формат, соответствует ли она закону Кирхгофа (т. е. сумма выходов меньше суммы входов), и потраченные ею выходы не были потрачены дважды. Для проверки транзакции требуется доступ к текущему UTXO .
Подтверждение транзакции , с другой стороны, подтверждает, что транзакция была скрыта под определенным количеством доказательств работы, например, k = 6 блоков. Проверка статуса подтверждения транзакции не требует прохождения всех данных в блокчейне. Это требует только просмотра заголовков блокчейна. В модели безопасности SPV статус подтверждения транзакции проверяется просто путем проверки того, что она была включена в блок и скрыта под определенным количеством доказательств работы. Это делается быстро, не просматривая все данные блокчейна (а только все заголовки блокчейна), предоставляя доказательство включения, состоящее из родственных путей дерева Меркла .
Нейт Элдридж
а.коста
Нейт Элдридж
а.коста
Нейт Элдридж