Код:
0100000001d1b311d665b94ad270007deeaa696d487ea0bcd2d11e2c9a5407e7d25097f0ed000000006c493046022100a940f6147a70b98fa7f5bd0e76156ca71347207fca0336c93ce1b5165d653011022100ef0cc31be261178074e1cd854d4ea47e2b62d7ac5add4f1ae50474d841b60ce60121028f2bb71ec2c796cab46d5b61c28ad6cde73dacacf60f18943788053d6040eacdffffffff01009f240000000000dc4cc0010000000127478b07dae63322d1999419115cf287c69ff0f11de3f96d46df6926de61143c010000006b483045022100cca50bfed991240a7603eea19340f6e24102b29db2dfcc56fdfe549dacddcc6402207eefe2688670d349615ed184d1f84ac54365afd258524e55266c992ce2d68b7f012102ff9d6e0c33fb3cfc677857d2cd654db91fe051811433654d25442ee0182dac52000000000180969800000000001976a914751e76e8199196d454941c45d1b3a323f1433bd688accc5003007576a914fb99bed1a4ea8d1d01d879581fce07b27ab5357f88ac00000000
{
"TXID" : "2bf4ff04b40d03ff71570877d8267aed91d3595d172737d096241d08277135e2",
"версия" : 1,
"Locktime" : 0,
"Vin" : [
{
"TXID" : "edf09750d2e707549a2c1ed1d2bca07e486d69aaee7d0070d24ab965d611b3d1",
"Vout" : 0,
"scriptSig" : {
"как м" : "3046022100a940f6147a70b98fa7f5bd0e76156ca71347207fca0336c93ce1b5165d653011022100ef0cc31be261178074e1cd854d4ea47e2b62d7ac5add4f1ae50474d841b60ce601 028f2bb71ec2c796cab46d5b61c28ad6cde73dacacf60f18943788053d6040eacd",
"наговор" : "493046022100a940f6147a70b98fa7f5bd0e76156ca71347207fca0336c93ce1b5165d653011022100ef0cc31be261178074e1cd854d4ea47e2b62d7ac5add4f1ae50474d841b60ce60121028f2bb71ec2c796cab46d5b61c28ad6cde73dacacf60f18943788053d6040eacd"
},
"последовательность" : 4294967295
}
],
"Vout" : [
{
"стоимость" : 0.02400000,
"N" : 0,
"scriptPubKey" : {
"как м" : "010000000127478b07dae63322d1999419115cf287c69ff0f11de3f96d46df6926de61143c010000006b483045022100cca50bfed991240a7603eea19340f6e24102b29db2dfcc56fdfe549dacddcc6402207eefe2688670d349615ed184d1f84ac54365afd258524e55266c992ce2d68b7f012102ff9d6e0c33fb3cfc677857d2cd654db91fe051811433654d25442ee0182dac52000000000180969800000000001976a914751e76e8199196d454941c45d1b3a323f1433bd688accc500300 OP_DROP OP_DUP OP_HASH160 fb99bed1a4ea8d1d01d879581fce07b27ab5357f OP_EQUALVERIFY OP_CHECKSIG",
"наговор" : "4cc0010000000127478b07dae63322d1999419115cf287c69ff0f11de3f96d46df6926de61143c010000006b483045022100cca50bfed991240a7603eea19340f6e24102b29db2dfcc56fdfe549dacddcc6402207eefe2688670d349615ed184d1f84ac54365afd258524e55266c992ce2d68b7f012102ff9d6e0c33fb3cfc677857d2cd654db91fe051811433654d25442ee0182dac52000000000180969800000000001976a914751e76e8199196d454941c45d1b3a323f1433bd688accc5003007576a914fb99bed1a4ea8d1d01d879581fce07b27ab5357f88ac",
"тип" : "нестандартный"
}
}
]
}
{
"TXID" : "2bf4ff04b40d03ff71570877d8267aed91d3595d172737d096241d08277135e2",
"версия" : 1,
"Locktime" : 0,
"Vin" : [
{
"TXID" : "edf09750d2e707549a2c1ed1d2bca07e486d69aaee7d0070d24ab965d611b3d1",
"Vout" : 0,
"scriptSig" : {
"как м" : "3046022100a940f6147a70b98fa7f5bd0e76156ca71347207fca0336c93ce1b5165d653011022100ef0cc31be261178074e1cd854d4ea47e2b62d7ac5add4f1ae50474d841b60ce601 028f2bb71ec2c796cab46d5b61c28ad6cde73dacacf60f18943788053d6040eacd",
"наговор" : "493046022100a940f6147a70b98fa7f5bd0e76156ca71347207fca0336c93ce1b5165d653011022100ef0cc31be261178074e1cd854d4ea47e2b62d7ac5add4f1ae50474d841b60ce60121028f2bb71ec2c796cab46d5b61c28ad6cde73dacacf60f18943788053d6040eacd"
},
"последовательность" : 4294967295
}
],
"Vout" : [
{
"стоимость" : 0.02400000,
"N" : 0,
"scriptPubKey" : {
"как м" : "010000000127478b07dae63322d1999419115cf287c69ff0f11de3f96d46df6926de61143c010000006b483045022100cca50bfed991240a7603eea19340f6e24102b29db2dfcc56fdfe549dacddcc6402207eefe2688670d349615ed184d1f84ac54365afd258524e55266c992ce2d68b7f012102ff9d6e0c33fb3cfc677857d2cd654db91fe051811433654d25442ee0182dac52000000000180969800000000001976a914751e76e8199196d454941c45d1b3a323f1433bd688accc500300 OP_DROP OP_DUP OP_HASH160 fb99bed1a4ea8d1d01d879581fce07b27ab5357f OP_EQUALVERIFY OP_CHECKSIG",
"наговор" : "4cc0010000000127478b07dae63322d1999419115cf287c69ff0f11de3f96d46df6926de61143c010000006b483045022100cca50bfed991240a7603eea19340f6e24102b29db2dfcc56fdfe549dacddcc6402207eefe2688670d349615ed184d1f84ac54365afd258524e55266c992ce2d68b7f012102ff9d6e0c33fb3cfc677857d2cd654db91fe051811433654d25442ee0182dac52000000000180969800000000001976a914751e76e8199196d454941c45d1b3a323f1433bd688accc5003007576a914fb99bed1a4ea8d1d01d879581fce07b27ab5357f88ac",
"тип" : "нестандартный"
}
}
]
}
Так что я сделал в приведенном выше создается транзакция, которая встраивает различные транзакции в ней с помощью OP_DROP. Внутренняя транзакция выглядит следующим образом:
Код:
{
"TXID" : "8608a914d3e217ebfaa5cf04974a657d5b80b940fd46b9efee823feed43102ef",
"версия" : 1,
"Locktime" : 217292,
"Vin" : [
{
"TXID" : "3c1461de2669df466df9e31df1f09fc687f25c11199499d12233e6da078b4727",
"Vout" : 1,
"scriptSig" : {
"как м" : "3045022100cca50bfed991240a7603eea19340f6e24102b29db2dfcc56fdfe549dacddcc6402207eefe2688670d349615ed184d1f84ac54365afd258524e55266c992ce2d68b7f01 02ff9d6e0c33fb3cfc677857d2cd654db91fe051811433654d25442ee0182dac52",
"наговор" : "483045022100cca50bfed991240a7603eea19340f6e24102b29db2dfcc56fdfe549dacddcc6402207eefe2688670d349615ed184d1f84ac54365afd258524e55266c992ce2d68b7f012102ff9d6e0c33fb3cfc677857d2cd654db91fe051811433654d25442ee0182dac52"
},
"последовательность" : 0
}
],
"Vout" : [
{
"стоимость" : 0.10000000,
"N" : 0,
"scriptPubKey" : {
"как м" : "OP_DUP OP_HASH160 751e76e8199196d454941c45d1b3a323f1433bd6 OP_EQUALVERIFY OP_CHECKSIG",
"наговор" : "76a914751e76e8199196d454941c45d1b3a323f1433bd688ac",
"reqSigs" : 1,
"тип" : "pubkeyhash",
"адреса" : [
"1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH"
]
}
}
]
}
"TXID" : "8608a914d3e217ebfaa5cf04974a657d5b80b940fd46b9efee823feed43102ef",
"версия" : 1,
"Locktime" : 217292,
"Vin" : [
{
"TXID" : "3c1461de2669df466df9e31df1f09fc687f25c11199499d12233e6da078b4727",
"Vout" : 1,
"scriptSig" : {
"как м" : "3045022100cca50bfed991240a7603eea19340f6e24102b29db2dfcc56fdfe549dacddcc6402207eefe2688670d349615ed184d1f84ac54365afd258524e55266c992ce2d68b7f01 02ff9d6e0c33fb3cfc677857d2cd654db91fe051811433654d25442ee0182dac52",
"наговор" : "483045022100cca50bfed991240a7603eea19340f6e24102b29db2dfcc56fdfe549dacddcc6402207eefe2688670d349615ed184d1f84ac54365afd258524e55266c992ce2d68b7f012102ff9d6e0c33fb3cfc677857d2cd654db91fe051811433654d25442ee0182dac52"
},
"последовательность" : 0
}
],
"Vout" : [
{
"стоимость" : 0.10000000,
"N" : 0,
"scriptPubKey" : {
"как м" : "OP_DUP OP_HASH160 751e76e8199196d454941c45d1b3a323f1433bd6 OP_EQUALVERIFY OP_CHECKSIG",
"наговор" : "76a914751e76e8199196d454941c45d1b3a323f1433bd688ac",
"reqSigs" : 1,
"тип" : "pubkeyhash",
"адреса" : [
"1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH"
]
}
}
]
}
Внутренняя сделка полностью подписан и действует, посылая 0.1BTC к 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH (1) и расходы здоровенный 0.4BTC в тарифах. Однако, так как nLockTime установлен быть чуть более 2000 блоков в будущем это будет некоторое время, прежде чем кто-нибудь может потратить. С другой стороны, так как первая сделка является общедоступной, и будет встраиваться в blockchain когда кто-то рудники, при условии, что вторая транзакция добывала после первого существования обоего сделок доказывает, что я выбросил 0.4BTC в тарифах шахтеров, как когда-то сделка обнародовано отправитель не имеет никакого контроля, что-так когда-либо над тем, кто рудниками. В основном это более сложный механизм для достижения "доверенные идентичности путем уничтожения ценностей" Я предложил ранее (), С преимуществами, что эта реализация требует только две операции и до тех пор, как nLockTime устанавливается достаточно далеко в будущее разрушение значение всегда будет действительным.
Максимальное значение, которое можно уничтожить таким образом, предполагая, что механизм известна и есть шахтеры, наблюдая blockchain для этих специальных операций, является функцией от числа блоков между двумя специальными операциями. В основном шахтер мог бы работать на том, чтобы добывающие последовательные блоки, а затем публиковать всю цепочку, однако, что становится экспоненциально более сложным и дорогим с точки зрения издержек. 10 или 100 блоков должны быть много. Конечно, ожидаемое значение теряется пропорционально горнорудной мощность вы контролируете, но добыча мощность довольно хорошо распределена.
Фактическая реализация может сделать лучше, чем просто OP_DROP. С одной стороны, что сообщение должно идти в scriptSig, чтобы помочь обрезке. Во-вторых, внутренняя транзакция не должна быть предоставлена в полном объеме; большая часть его может быть пропущено, если шаблон он используется. Даже весь scriptPubKey может быть опущен, если выходной сигнал всегда идет к известному адресу. Минимальная требуемая длина только ~ 80 байты подписи и 32byte ОГО идентификатор для входа, и в этот момент вы, вероятно, можете запихнуть все это в одном из "isStandard OP_DROP" тип предложения или аналогичный. В любом случае, важно то, чтобы договориться о стандарте, так что разрушение значения действительно.
EDIT: Просто, чтобы сделать вещи ясно, дважды проводить внутреннюю ТХ не является проблемой. Помните, что вся суть это доказать после тот факт, что вы выбросили биткойны. Если дважды провести внутренние Ую, у вас нет никаких доказательств.
EDIT2: Горняки не имеет антистимула заминировать внешнее. В конце концов, внутренние может быть опубликовано отдельно и положить в mempool, существует ли или нет внешних ТЕ. Решение заминировать внешнее ортогональна и подлежит той же логике, как и любой другой сделки.
1) ... который действительно выбрасывая другой 0.1BTC ...