Одно из самых больших преимуществ цветных монет является то, что операции являются атомарными.
Вы можете купить 10 акций компании за 20 BTC и либо сделка произойдет, либо нет. Вы не попасть в ситуацию, когда вы платите (или дать акции), а затем другая транзакция сторнируется по какой-то причине.
Один из способов сделать это было бы, чтобы убедиться, что другая транзакция была похоронена во второй цепи.
Это может включать в себя проверку того, что знак был в Merkle дерева.
Шаг 1: убедитесь, что маркер соответствует желаемой фишке
OP_DUP [целевой маркер] OP_EQUALVERIFY
Шаг 2: создать Merkle дерево (фиксированная глубина)
[3] OP_ROLL OP_IF OP_SWAP OP_ENDIF OP_CAT OP_HASH256
Предполагается ввод является [истина / ложь] [child1] [child2]
Если это правда, то child1 и child2 меняются местами, а затем вычисляется хэш. OP_CAT в настоящее время отключена.
Выход [родитель]
Израсходуете бы
[Истина / ложь] [Merkle-узел] [истина / ложь] [Merkle-узел] .... [истина / ложь] [Merkle-узел] [маркер]
Когда этот шаг закончен, то корень Merkle будет в стеке.
Шаг 3: сканировать заголовки альт-цепи
OP_SWAP потребовалось бы, прежде чем начать двигаться корень Merkle назад один. Предполагается, альт-цепи, чтобы иметь только три поля в заголовке.
Вход
[Nonce] [Merkle-корень] [предыдущий-хэш]
OP_CAT OP_CAT OP_HASH256 OP_DUP OP_LESS_THAN [цель] OP_VERIFY [2] OP_PICK OP_EQUALVERIFY
Это вычисляет хэш и проверяет, что он встречает трудности. Затем он проверяет, что "предыдущая-хэш" для следующего заголовка соответствует хэш этого заголовка.
Это будет повторяться столько блоков, как это требуется.
Эффект всех этих шагов является то, что это скрипт, который высвобождается, если лексема утопает в другой цепи, по крайней мере некоторое количество блоков в глубине.
Для того, чтобы тратить деньги, вы должны обеспечить Merkle пути к корню, а затем в Нонсе и Merkle корень для заголовков, которые строят на этом.
В зависимости от стоимости сделки более подтверждающих блоков потребуются.
OP_CAT опкод в настоящее время отключена. Это не совсем понятно, что значит инвалид опкод. Если это не будет принято, то оно фактически не существует.