1. Подпись тег, как SIGHASH_ANYONECANPAY не может быть использован, так как порядок входов в окончательных сделки не известен.
2. SPV узлы не могут проверить цветные монеты
3. Вся цепочка сделки не может быть отсечена
Мягкая-вилка может решить эти проблемы:
1. Переопределение OP_NOP3, как OP_CHECKCOLORVERIFY
2. Когда пользователь хочет мятую цветную монету, он посылает некоторую монету к выходу с сценарием
Код:
<цвет> OP_CHECKCOLORVERIFY OP_DROP OP_DUP OP_HASH160 <адрес> OP_EQUALVERIFY OP_CHECKSIG
где <цвет> определяется как
Код:
Ripemd160 (SHA256 (сценарий предыдущего вывода))
Например, если Сатоси хочет создать цветную монету с его Genesis адрес блока 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa, <цвет> будет
Код:
Ripemd160 (SHA256 (76a91462e907b15cbf27d5425399ebf6f0fb50ebb88f1888ac)) = 653756a92059ba4f3086471bd3c9e8442e4da3d3
По хэширования всего сценария, цветная монета может быть отчеканена из любой будущей схемы оплаты
3. Необходимо для Satoshi подписать выход чеканки, чтобы сделать всю сделка действительна. Сделка не является действительным, если он подписывает с SIGHASH_NONE или SIGHASH_SINGLE, но не для выхода чеканки
4. Перераспределение цветная монета делаются так же, как обычная сделка, с включением <цвет> OP_CHECKCOLORVERIFY в соответствующих выходах. Тем не менее, общая стоимость определенная цветная монета в выходах должна быть равна или меньше, чем суммарное значение в входах. Если значение в выходах меньше входов, некоторые цветные монеты вернуться к нормальному BTC. Единственным исключением является Satoshi решил чеканить более цветные монеты с его адресом, таким образом, общее выходное значение цвета может быть больше, чем значение входного сигнала.
5. Монеты разного цвета могут быть обменены в одной транзакции. Выход может иметь более одного цвета с использованием нескольких OP_CHECKCOLORVERIFY (например, производное 1 выход BTC с цветным ххх и ууу цвета означает 1 ххх монет и 1 YYY монета)
6. Использование монет из других адресов, один может мята более цветные монеты, чем монеты у него есть. Так, например, с 10 BTC от адреса ххх и 1 BTC от адреса YYY, можно мяты 11 YYY монет.
Обратная совместимость:
Для существующих клиентов, информация расцветки просто
Код:
<случайная строка> OP_NOP3 OP_DROP
и будут игнорироваться
1. Чтобы SPV проверка уникального интеллектуального свойства (например, связывая цветную монету с реальным автомобилем), мы должны обеспечить уникальность цветной монеты на blockchain. Флаг может быть добавлен к чеканке и последующим операциям, чтобы объявить, что только один UTXO может иметь этот цвет в любое время.
2. Иногда вы можете ограничить общее количество определенного цвета монеты в обращении. Флаг может быть добавлен к чеканке и последующих операций, чтобы объявить, что не более чеканка того же цвета, не допускается. (Я не совсем уверен, как это может работать. Нужна дискуссия)
Эти расширения требуют полных узлов, чтобы сохранить индекс для всех цветных монет в наборе UTXO
EDIT: Они не нужны, поскольку есть более эффективные решения: https://en.bitcoin.it/wiki/Smart_Property