1. Do сделок когда-либо время, если не принят в блок цепи?
например если я создаю сделку сегодня, и это случается быть недействительными, возможно это будет неожиданно получить принято, например, с более поздней версией коды цепи Bitcoin блока, который имеет изменение в политике, может быть, в х годах? (Предполагая, что сделка это должна быть принято шахтером * и * блочный кодом цепи)
> Обычно ваш основной Bitcoin будет ретранслировать сделки, которые не подтверждены. Он будет делать это до бесконечности, если вы удалите УЮ из вашего бумажника.
Сделки должны быть только добывали ОДНИМ шахтера. Большинство узлов блокировать нестандартные транзакции, а не передавать их, то есть шахтеры не будут слышать об этом. Единственный способ обойти это вещать сделку непосредственно к шахтеру, рудники нестандартных операции, он может включить его в блоке. Элигий сделать это, и в самом деле, у меня есть% нестандартных multisig сделок здесь:
http://media.coindesk.com/2014/05/table-1.png Где нестандартные multisig p2sh ТХ являются те, где количество открытых ключей было > 3.
Два шахтеры могут публиковать блоки на высоту сказать 320000. Два блока для этой высоты будут отправлены по сети, и мир будет разделен на две части. Люди, которые думают, что блок А является правильным, и люди, которые думают, что блок B является правильным. Узлы будут хранить как, но все, что блок имел более значительные трудности будут считаться действительными.
- Шахтеры начнут работать на любой блок они слышат о первом. Независимо цепь имеет большую часть работы положить в будет принята.
Если сделка была принята к блоку B, он действительно может оказаться в блоке A.
Если какие-либо податливость боты находятся в сети, ваш идентификатор транзакции может быть на самом деле разные. Так что, возможно, вы вошли в TXID после одного подтверждения, чтобы создать сырую сделку позже - ваш TXID может быть неправильным, так как блок B с TXID вы впервые услышали о осиротели, но блок А, где malleated вашего ТХА был на самом деле в цепи с наиболее серьезные проблемы.
Иногда, вы можете получить действительно странные вещи происходят в отношении нестандартных сделок. Я наблюдал очень старый тип сделки, который blockchain.info сказало неподтвержденная монету 2-х лет. Это был старый стиль multisig ТХ, который не смог все новые правила для клиентов действительных сделок. Однако, как и ситуация с Eligius выше, некоторые шахтеры могли работать старое программное обеспечение, которое фактически поддерживает эту сделку.
Если шахтер включил эту сделку в блоке, а остальная часть сети не нравится эта сделка, и я имею в виду, это действительно странно, это может показаться получить одно подтверждение, но никто не будет удлиняться этой цепью. Blockchain имел странную информацию для этой сделки - они, казалось, регистрировать каждое событие, когда он получил одно подтверждение. Он был включен в как 20 блоков, ОДНАКО: никто не будет удлиняться их, и они были сиротами.
В этом случае, шахтер, который принимал ТЙ на блоки бегал 0.6 и более поздние версии явно запретить эту сделку.
2. Я предполагаю, что следующий пример недействительной сделки. По крайней мере, он не имеет никаких подтверждений с момента 2014-04-02. Как узнать, почему она не была принята (пытаясь понять / разобрать сценарии здесь, но не могу понять их так, как они представлены на веб-сайтах, которые я видел до сих пор).
http://live.insight.is/tx/83cdc4c243b3f106c22f50e0d30ce86a45e61aa2bc03c8f1f1634239e64909d7Согласно этой странице, то scriptSig начинается не с одной "0", Они не должны быть двузначными цифрами? Хорошо, не обращая внимания, что на данный момент.
Тогда, если мое понимание его правильно, он толкает три позиции в стеке:
* 0x30 байт подписи
* Другой 0x30 байт подписи
* А 0x52 байт BIP0016 жалоба платы к сценарию. Кроме 0x52 является опкод для "Число в названии слово 2 помещается в стек.", А не толкать 0x52 байт данных. Что я не понимаю, и в этот момент я не совсем уверен, что происходит.
Может быть, сайт не печатая нажимной элемент-к-стек опкод, только те данные, которые получает толкаемых, что и сбивает с толку меня ???
Тогда следующий сценарий, с выхода в abd231512a7d4524c3424add1c466eff250ebe221204a765a5d28118d21b7a7a родительской транзакции выполняется:
OP_HASH160 2a5edea39971049a540474c6a99edf0aa4074c58 OP_EQUAL
Который проверяет хэш сценария BIP0016 является правильным.
Вслед за выскакивает сценарий стека, выполняя его, и что скрипт проверяет подпись правильна.
Является ли мое понимание правильно?
Если да, то как я могу определить, почему этот процесс, как представляется, не удается, по крайней мере, для этой операции?
> Эта сделка, вероятно неудача, потому что он не имеет платы. P2SH операции требуют, чтобы человек, который берет деньги из сценария хэш-адрес должен включать скрипт, используемый для создания адреса. Эти сценарии довольно долго, я думаю, около 150 байт?
(Кстати, подписи не 30 байт, как правило, около 74-76 байтов я думаю. Они действительно начинаются с 30, однако)
(Также, redeemScripts не являются 52 байт. 52 означает толкать 2 в стек. Смотри ниже)
P2SH проводить операции не выполнить scriptPubKey в TxIn (Сделка финансирования) в scriptSig - они просто есть «0 <подписи>
». ScriptPubKey является OP_HASH160 <гашиш> », Но redeemScript является 52.pubkey.pubkey.pubkey.53.ae вещь, которая содержит pubkeys для этой multisig сделки. Таким образом, сделка финансирование просто говорит: «сценарий, который хэшей в X принадлежит это», но при погашении средств, вы предоставляете, и сценарий, и ТХ, который принадлежит этот скрипт-хэш-адрес, и клиент создает правильную подпись для этого.
Сайты, как правило, не показывают PUSHDATA опкодов, они просто показывают физические данные. См интерпретатор сценариев webbtc (работает в только подтвержденных передатчиках, к сожалению) http://webbtc.com/script/3d891fe5b1e037165233be3ceed87a20c6210a741e64f5bda9495f208f1d5eef:0
В P2SH, есть на самом деле это число как раз перед 52, длиной всего сценария. И как раз перед этим, у вас есть опкод PUSHDATA.
"OP_PUSHDATA1 0x4c Следующий байт содержит число байтов, которые будут в стек."
Так 4c20123456789a123456789a приведет к 123456789a123456789a толкают в стек.
PUSHDATA <20123456789a123456789a>
3. Можно ли платить за что-то с операцией, которая содержит недопустимый scriptPubKey, (например, pubKeyHash недействительно - если я понимаю, это правильно будет означать этот вывод не может быть использован в качестве входных данных для дальнейших операций), и обмануть получатель в принятии этого в качестве оплаты? Если нет, то почему?
scriptPubKey устанавливает ограничения на получателя о том, как они получают деньги. Это то, как клиенты узнают о сделках, которые являются их. Как бы ваш клиент знает, что инвалид scriptPubKey был предназначен для вас, прежде чем Публичных-хэш был перепутались? Вы не могли бы сделать это по сети, основным способом клиенты узнают о сделках.
Если кто-то прием сырых гекса транзакций через веб-интерфейс для оплаты, он будет принимать их за пределами сети. Это имеет смысл, что они должны видеть, что ТХ заплатил их, а не кто-то другой, перед отправкой товаров, например.
scriptPubKey это одна вещь, вы не можете трахнуть. При попытке двойной расходы, как правило, вы воспользоваться службами делают что-то на основе сделки просто транслируемая, но никогда не могли пройти. Я думал о двойных расходах против BitPay, кто чтить 0 конфигурационных сделки .. Просто тратить вновь принятый входной X в bitpay адрес с платой 1 Гэвин, и одновременно транслируют двойные расходы, которые платят нестандартное scriptPubKey (отправка его непосредственно к Eligius кто будет мой такие TXS), вы видите, что scriptPubKey может подставить кого-то думать, что ТХ собирается пройти, но стоимость будет слишком низкой, чтобы подтвердить, и вы надеетесь, что Элигии добудут ваши нестандартная сделка, прежде чем кто рудники вашего низкий гонорар один.