Post
Topic
Board Кодеры
Merits 5 from 1 user
Re: [Методичка] Программирование скриптов Bitcoin.
by
amaclin1
on 28/02/2019, 15:48:00 UTC
⭐ Merited by kzv (5)
Окей, ща тебе нарисую.

1. Хотим использовать скрипт OP_2DROP OP_TRUE Он же 6d51

2. Заходим в консоль. Пишем
decodescript 6d51
получаем
Code:
{
  "asm": "OP_2DROP 1",
  "type": "nonstandard",
  "p2sh": "2N6ijRkcgBwzjvwwop9QRuEdBTeggPcSCpA"
}

3. Отправляем биткойн на адрес 2N6ijRkcgBwzjvwwop9QRuEdBTeggPcSCpA обычным способом
https://testnet.smartbit.com.au/tx/c75d15c40a6498319b4fa7d828f3234f100d53aa6a0caad3c7c5043c810dacd0

4. Теперь с адреса 2N6ijRkcgBwzjvwwop9QRuEdBTeggPcSCpA можно вывести бабло
зная этот скрипт 6d51 и правила его выполнения, ну то есть ему надо подсунуть
"два чего-нибудь неважного" что он выкинет.

5. То есть сразу в хексе я могу записать каким будет scriptSig: 0000026d51

6. Тут я формирую транзакцию своей тулзой (я не использую bitcoin-cli) и вывожу с этого адреса себе обратно.
https://testnet.smartbit.com.au/tx/13804697568b067b846fafd3a6e15a94ecacb53f7811c4896e5fc1bbc650816f

Там в правом верхнем углу есть кнопочка со стрелочками - если на нее кликнуть - откроется подробная
информация о транзакции. И там как раз написан скрипт 0 0 6d51 - то есть сперва два
пустых значения засовываются в стек, а потом как раз выполняется то что нужно - 6d51 -
выкинуть два значения из стека и положить единичку

Таким образом мы перевели бабло с адреса 2N6ijRkcgBwzjvwwop9QRuEdBTeggPcSCpA на адрес
mg6Xg6sRvJzcQzMTuGPVYAV1XxQbhHnvJR используя скрипт OP_2DROP OP_TRUE и не
используя никаких подписей и приватных ключей

Теперь вопрос. Как сформировать такую же транзакцию, но без моей тулзы, а штатным bitcoin-cli ?
Вот это уже мне сложно - тут щас подумать придется Smiley Может кто-то другой подскажет?