Исходных код скрипта биткоина: Что такое открытый исходный код и почему он важен для криптовалюты и открытого блокчейна, как его получить

Что такое открытый исходный код и почему он важен для криптовалюты и открытого блокчейна, как его получить

Исходный код биткоина был разработан Сатоши Накомото на основании более ранних идей, выдвинутых американскими программистами. Однако только он сумел полноценно его обосновать. Затем Сатоши представил проект на суд общественности на одном из крупных форумов. Так в мире появились цифровые валюты. При этом до сих пор не раскрыта личность человека, создавшего систему блокчейна.

Открытый код биткоина: в чем его уникальность

Уникальность кода блокчейна в его открытости. Любой человек в мире может получить к нему доступ. Программисты могут вносить изменения в код биткоина.

Скачать его и получить доступ к редактированию можно через официальный сайт https://bitcoin.org/ru/development.

Сатоши Накомото не планировал делать свою разработку источником обогащения, он хотел показать миру, как можно применять криптографические алгоритмы, а также какие это открывает перспективы. В 2010 году он отошел от дел, передав бразды управления проектом своей команде. В ее составе трудится почти 3 тысячи энтузиастов.

Исходным кодом биткоина может воспользоваться любой программист. Со временем начали появляться новые альткоины. Многие из них были полными клонами BTC, а потому не получили распространения. Но единицы все же выжили и даже выбились в лидеры. Показательный пример — криптовалюта Litecoin. Она полностью базируется на исходном коде биткоина, но имеет два преимущества. Во-первых, ее эмиссия в 4 раза больше. Во-вторых, схема майнинга намного проще. Она позволяет применять только процессор без айсиков и видеокарт.

Исходный код биткоина: важность принципа открытости

Открытые проекты позволяют другим участникам сети проверять корректность информации, вносить изменения или расширять возможности системы. Большая часть цифровых монет построена на открытом коде. Такой подход к разработке ценится не только в криптовалютах, но также в мире ПО.

Часто разработчики ПО/криптовалют скрывают исходный код. Тогда поддержкой, разработкой, а также устранением ошибок занимается ограниченный круг лиц. В криптовалютах NEM, Stellar доступ посторонних к этой информации закрыт. Это касается многих программ и проектов Facebook или Adobe. Такое ПО называется «несвободным». Внесение правок или изменений доступно авторам, имеющим юридически обоснованное право.

Открытость исходного кода делает его доступным для всех. Любой может выполнять разные действия с программой — делать копии, смотреть, вносить правки, отправлять друзьям или проходить обучение. Иногда разработчики открывают доступ к исходнику, но ограничивают его применение. Когда смотреть можно, а делать копии или использовать в других проектах нельзя.

Открывая такую важную информацию для пользователей, создатели криптовалюты повышают уровень децентрализации сети. К развитию платформы привлекаются программисты, а также пользователи, способные дать полезные рекомендации, а иногда самостоятельно внести правки. Также сообщество оперативно выявляет имеющиеся ошибки. Это повышает надежность сети, ускоряет ее развитие.

Исходный код многих программ разрабатывается и поддерживается специальными компаниями. Для открытого ПО работает иной принцип. Здесь ключевую роль играет участие каждого человека. Информация бесплатно распространяется в Сети, скачивается на компьютеры, изучается пользователями. Сведения публичны, поэтому замечания относительно работы проекта или его слабых мест появляются очень быстро.

Исходный код криптовалюты никому не принадлежит, на него ни у кого нет прав. Не существует предприятия, которое бы владело Bitcoin или Monero. Такая децентрализация несет ряд преимуществ для системы, ее продвижения и развития. В программной среде одним из наиболее успешных примеров является операционная система Linux. Она имеет открытый исходный код и при этом надежнее, чем Windows.

Преимущества того, что исходный код биткоина является открытым

Открытость исходного кода в криптовалютной сфере и секторе программного обеспечения имеет много плюсов:

  1. Мотивация для создания качественного продукта. Каждый человек, участвующий в создании или оптимизации проекта, ставит своей задачей лично использовать проект и получать от этого дивиденды. Такой участник свободен в действиях, он не ограничен контрактными обязательствами и требованиями создателя.
  2. Долгосрочная поддержка продукта. Любой разработчик однажды устает от своего проекта и у него появляется желание заняться чем-то другим. Тогда ему нужно найти последователя готового продолжить дело. Всегда находятся энтузиасты, которые привносят новое видение проекту, повышают спрос на него, улучшают качество.
  3. Возможность упрощения. Исходный код криптовалюты — пример идеального обеспечения, прошедшего множественную «огранку» с привлечением лучших программистов. В среде специалистов считается, что доступность способствует быстрому устранению багов. Со временем продукт оптимизируется, упрощается, унифицируется и становится более надежным.
  4. Легкость устранения багов. Открытость исключает трудности с тестированием или отладкой. При появлении проблем всегда найдется группа энтузиастов, готовых устранить ошибки. Многие участники сети выявляют баги и предлагают пути решения. Когда исходный код закрыт, на выявление и устранение слабого места может уйти много времени.
  5. Полная взаимосвязь. Благодаря взаимодействию участников, граница между разработчиками и обычными пользователями смазывается. Все действия с программным обеспечением ведутся на глазах криптовалютного сообщества и доступны для изучения всем.

Главным недостатком, как это ни парадоксально, является доступность информации для злоумышленников. Они легко могут найти слабое место системы.

Открытость кода — это хорошо. При появлении малейших багов в работе программисты оперативно берутся за работу для внесения посильного вклада в развитие проекта.

Остальное сообщество, не участвующее во внесении правок, пользуется качественным продуктом. Бесплатное ПО как бы появляется из воздуха и доступно всем до того момента, пока группа экспертов заинтересована в развитии проекта.

Открытый код биткоина: закон и свободное ПО

Действующее законодательство поддерживает и стимулирует разработку программного обеспечения с открытым исходным кодом. Оно, как и всё ПО, защищено авторским правом, но его авторы выпускают код с лицензией, позволяющей каждому использовать и модифицировать его без разрешения или любых выплат.

Некоторые лицензии включают требования, что производные программного обеспечения должны выпускаться на таких же условиях. Таким образом база открытого исходного кода растёт и распространяется.

Bitcoin script для заработка монет

Скрипт Биткоин представляет собой стек команд и выполняется слева направо. Он специально разрабатывался как не полный по Тьюрингу, так как не содержит циклов.

Скрипт Bitcoin — это список инструкций, относящийся к транзакции, который описывает, как пользователь, которому предназначены BTC в этой транзакции, может получить к ним доступ.

Самый типичный скрипт в транзакции при пересылке средств на адрес другого пользователя в сети требует от получателя предоставить две вещи:

  • Публичный ключ, хэш от которого будет совпадать с адресом, который указан в скрипте
  • Подпись, которая подтверждает владение секретным ключем, который соотносится с предоставленым публичным ключем.

Использование скриптов позволяет гибко настраивать параметры условий, которые должны быть выполнены для перевода BTC. Например, скрипт может потребовать пароль вместо ключа, несколько ключей одновременно или вообще не требовать ключа для перевода средств.

Заработать биткоины можно решением логических задач или выполнением операций на сайтах-кранах. За выполнение простых действий, на работу с которыми уходит практически целый день, юзеру начисляется минимальное вознаграждение. Задачи становятся доступны только через определенный промежуток времени, зависящий от типа сайта (5, 10, 30, 50, 60 минут). Данные факты практически сразу подрывают энтузиазм новых майнеров и заставляют их отказаться от использования этих ресурсов.

Однако, программисты нашли решение проблемы. Скрипты — позволяют собирать вознаграждение без участия самого юзера. Запрограммированная система сама выполняет заданный алгоритм.

Программа поддерживает выполнение следующих действий:

  1. Переход на заданные сайты.
  2. Ввод капчи.
  3. Отражение статистики начислений.

Но чтобы скрипт по добыче биткоинов работал правильно, его нужно настроить.

Достоинства и недостатки, которыми обладает BTC script

Скрипты для заработка биткоинов на автомате имеют больше преимуществ, чем стандартный способ добычи криптовалюты. Среди плюсов стоит выделить:

  • Стабильность. Программа работает без перебоев, а покупка качественной версии позволяет избежать багов.
  • Независимость. Автоматический режим работы бота позволяет пользователю избежать длительного сидения за компьютером. Достаточно просто настроить алгоритм программы, и она сама выполнит необходимые операции.
  • Беспрерывность. Бот может работать в круглосуточном режиме при условии включенного компьютера пользователя. При дезактивации ПК скрипт также перестает работать.
  • Прибыльность. Использование программы позволяет значительно повысить уровень дохода, получаемого с кранов. Главной задачей юзера остается только отслеживание нерабочих сайтов и исключение их из списка.
  • Бесплатные версии. Для того чтобы самостоятельно убедиться в эффективности этого способа заработка не обязательно вкладывать деньги, достаточно только найти бесплатную версию программы в сети.

Конечно, все эти программы имеют и некоторые недостатки, например, разработчики кранов научились выявлять пользователей, использующих скрипты и сразу блокируют их. Попытаться можно, не сервисов, допускающих использование скриптов очень мало. Да и вообще, краны нельзя считать прибыльным занятием, разве что использовать их для развлечения и знакомства с криптовалютой.

BTC скрипты: виды

Выделяют несколько основных видов программ для автоматического заработка биткоинов. Все они отличаются своим функционалом и возможностями.Скрипты делятся на следующие виды:

  • Независимые. Эти скрипты встраиваются в программный код той или иной страницы крана и работают только с одним ресурсом.
  • Сеть скриптов. Для данного вида характерно объединение нескольких ботов, работающих на расширении iMacros. Они способны вести свою деятельность одновременно на нескольких платформах.
  • Автономные. Эти программы работают без участия пользователя и требуют точной настройки.
  • Скрипты для сбора с большого количества сайтов. Данный вид ботов предназначен для работы одновременно с 40 и более ресурсами.

Стоит отметить, что масштабных скриптов существует немного, да и в бесплатном варианте они встречаются довольно редко.

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков / Хабр

Всем нам известна фраза: «Все что попадает в интернет, остается в нем навсегда и становится общедоступным».

Вплоть до скрытого контента

В 2021 году пандемия вернула популярность QR-кодов. Впервые QR-коды были использованы на производстве в 1994 году дочерняя компания Toyota в Японии ввела их на заводе по сборке для контроля выпускаемых автомобилей и деталей к ним. В отличие от штрих-кода QR-код содержит больше информации, что и подтолкнуло производителя к введению инновации. Технология начала распространяться в основном в азиатских странах, а в 2003 году китайская компания Inspiry разработала специальный механизм считывания QR-кодов, который позволил это делать быстро, что подогрело популярность. Однако широкое распространение пришлось уже на период массового использования планшетов и смартфонов, когда считывание стало доступно через камеру носимого устройства.

Устройства от китайской компании Inspiry

С одной стороны QR-коды предоставляют все удобства в платежах BTC, так как можно не тратить по полчаса на оформление перевода. Достаточно навести смартфон на QR-код и платежка со всеми заполненными полями сформируется сама, останется только нажать кнопку с подтверждением оплаты.

Переводы, оплаты, QR-коды просто незаменимая вещь и самое важное в том что все это экономит наше время.

Нужно помнить ещё одну важную вещь

Googlebot, Bingbot, Baidubot работают 24/7 и в любой момент могут сохранить приватные данные в своих гигантских серверах.

На поиски скрытого контента из глубин поисковых систем подключаются совершено противоположенные поисковым ботам герои в черном худи из известного сериала Мистер Робот (Mr. Robot) .

«MrRobotQR»это скрипт с открытым исходным кодом который автоматизирует процесс от ввода ключевого слова поиска до вывода приватного ключа Биткоин кошелька.

Для запуска скрипта потребует Python 3 и Bash

Bash-скрипт: mrrobotqr. sh автоматизирует следующие шаги:

Запуск Python-скрипта: qrcrawler.py с указанными ключевыми словами для поиска и сканирования изображений в Google, Bing и Baidu.

Все найденные изображений будут загружены в папку qrbooty с подпапками для каждой поисковой системы. Затем скрипт переименовывает и перемещает файлы из подпапок в папку qrbooty с уникальными именами.

Далее идёт запуск Python-скрипта: qr2key.py для сканирования загруженных изображений в папке qrbooty на наличие QR-кодов и проверяет, содержат ли они приватные ключи Биткоин кошелька. Все приватные ключи будут сохранены в текстовый файл: keylist.txt.

После повторной обработки скрипт удаляет дубликаты в keylist.txt и выводит уникальные ключ и в новый файл: keylist_unique.txt , где будут уже содержаться все уникальные приватные ключи Биткоин кошелька.

Установка и запуск

Откроем [TerminalGoogleColab].

Воспользуемся репозиторием «10MrRobotQR».

git clone https://github.com/demining/CryptoDeepTools.git
cd CryptoDeepTools/10MrRobotQR/
ls

Установим программный пакет ZBar для считывания штрих-кодов

sudo apt install python3-dev python3-setuptools python3-pip libzbar0 libzbar-dev

Установим все нужные нам пакеты, модули и библиотеки

cat requirements.txt
pip3 install -r requirements.txt

Права доступа к файлам:

chmod +x mrrobotqr.sh
chmod +x qr2key.py
chmod +x qrcrawler.py

"bitcoin qr"ключевое слово для поисковых систем

Запуск Bash-скрипта:

./mrrobotqr.sh "bitcoin qr"

Открываем и смотрим все сохраненные уникальные ключи в файле: keylist_unique.txt

cat keylist_unique.txt

История поисков с положительным балансом монет BTC

Откроем bitaddress и проверим:

Private Key WIF: L4vNZ86Pp6mkEPSPz9EcELK8cp1BxP3LWjxh7QvDanuMQBUJT9cG
Bitcoin Address: 1JhCAfiAbwJSa65c2EDCfC9fbEwyzZZb25
Total balance:   0. 01393000 BTC

Private Key WIF: L2HcNb8wPCQ2gpL4oT5Mn6cvKqfAFjCqK3qWquak9BvYasbgWxxF
Bitcoin Address: 18cif9QYoSPSrmv9MN157mUejyNMr5wYVx
Total balance:   0.01313000 BTC

Private Key WIF: KwFs9DSx3qQbagnRiZ2niczs5QteL1bE13mBdXFGAW1He7BxQ9qz
Bitcoin Address: 1KyUqCo3pbBHvCp7ZcBvUSEaTLBocUAoU3
Total balance:   0.03611000 BTC

Private Key WIF: L5CGhW2yDnq3pGQdKm3ocM3AE32EekoKkKN6DvUqstziayr1R79V
Bitcoin Address: 1AuRL68EyKTFAafj98GR2oAi7b9abNr3ja
Total balance:   0.03602000 BTC

Private Key WIF: L3sxBKQ8HbFAv2vshfsL6RTEX8zP9CLDzw9BCh6hd5VTiihoAX5n
Bitcoin Address: 1H957muSj2Sn23Mnym5DEoYquQqviqc7Ch
Total balance:   0.03628000 BTC

Private Key WIF: KzpPtHkQbZj32Pxtoo31bPZtbVbVV5DASdmaFWawgrYXBxhfNoLj
Bitcoin Address: 1PCLwUTMj6z7up1mDGbEbMVhaQif9xBB5M
Total balance:   0.03632000 BTC

Private Key WIF: L1DoUbneUoNAMqFHeGyerzXyxwbzYWB1mD2JL8sn855EgZKJxC5d
Bitcoin Address: 1N5rmtTVvtTkVPB8xJNPx3bbaS7kZX2kX
Total balance:   0. 01466000 BTC

Private Key WIF: KzcTCCpwMFu3yS5EBczmD9bv4GSD42vCoicJzCrZdm4eyYRvBiGE
Bitcoin Address: 1WeWVwSsUDgtMagerivywQzmBbeL2ETVJ
Total balance:   0.03677000 BTC

Private Key WIF: Kydoae8uQDUjxVWqqgqzoTQtMYkA6x1MGiPTx76AuTzyxdBTAYHc
Bitcoin Address: 1Mz7STzHf3JBuG4fvXuiz1brGRXF2C4R9R
Total balance:   0.03498000 BTC

Private Key WIF: KzWA3G6wyAdWSpACmJXAec76xhFxMPhnzwKLK3pk1gxm4RencWmo
Bitcoin Address: 1HnBT3t4AKBP54UDTNGJB39DAv7caf7HP1
Total balance:   0.01601000 BTC

Данный видеоматериал создан для портала CRYPTO DEEP TECH для обеспечения финансовой безопасности данных и криптографии на эллиптических кривых secp256k1 против слабых подписей ECDSA в криптовалюте BITCOIN

Исходный код

Telegramhttps://t.me/cryptodeeptech

Видеоматериал: https://youtu.be/bNMg2iJhMpg

Источник: https://cryptodeep. ru/mr-robot-qr


Биткойн-скрипт 101

Введение

В этом уроке мы рассмотрим язык сценариев, используемый биткойном. Биткойн-скрипт — это простой язык, основанный на стеке, что, говоря простыми словами, означает, что он работает с использованием структуры данных на основе стека по принципу «первым поступил — последним вышел» (FILO).

Предыстория

Биткойн — гигантский проект, состоящий из различных концепций. Разбивая их на более мелкие части или применяя подход с разделением задач, мы лучше понимаем, как работает внутреннее устройство, не слишком перегружая его.

Приступим  

Для простоты мы будем оценивать наши головоломки со сценариями с помощью инструмента под названием btcdeb , или Отладчик сценариев биткойнов , как его называет автор git kallewoof . В настоящее время мы работаем над добавлением btcdeb в нашу изолированную программную среду интерфейса командной строки, поэтому пока вам придется установить ее самостоятельно.

Используя btcdeb , мы можем отделить себя от необходимости думать обо всех других компонентах, связанных с биткойнами, и сосредоточиться непосредственно на фундаментальных концепциях, лежащих в основе изучения биткойн-скрипта. Мы рассмотрим более продвинутую версию использования btcdeb для отладки более сложных примеров в будущем руководстве.

Итак, давайте запустим наш первый биткойн-скрипт!

 gr0kchain:~ $ btcdeb ['OP_2 OP_1 OP_ADD']
btcdeb -- введите `btcdeb -h` для параметров запуска
действующий сценарий
3 op скрипт загружен. введите `help` для информации об использовании
сценарий | куча
--------+--------
2 |
1 |
OP_ADD |
#0000 2
btcdeb> шаг
<> PUSH-стек 02
сценарий | куча
--------+--------
1 | 02
OP_ADD |
#0001 1
btcdeb> шаг
<> PUSH-стек 01
сценарий | куча
--------+--------
OP_ADD | 01
        | 02
#0002 OP_ADD
btcdeb> шаг
<> POP-стек
<> POP-стек
<> PUSH-стек 03
сценарий | куча
--------+--------
        | 03
btcdeb>
 

В этом примере мы вызываем команду btcdeb из интерфейса командной строки, а затем используем команду exec для выполнения следующего сценария.

 OP_2 OP_1 OP_ADD
 

Это довольно простая арифметическая операция, которая складывает 1 и 2 , что дает результат 3 . Первое, на что следует обратить внимание, это странная последовательность, в которой это выполняется, это должно стать более ясным, когда мы углубимся во внутренности того, как интерпретируется биткойн-скрипт. Давайте представим, что это значит.

Представьте себе стопку книг, положенных одна на другую следующим образом.

Как мы видим здесь, укладывание книг друг на друга следует тому, что мы называем стопкой в порядке очереди , что означает, что последовательность, в которой книги удаляются из стопки, находится в обратном порядке по сравнению с как они были добавлены. Эта операция по добавлению книги обычно называется помещением элементов в стек . Удаление книги из стопки приведет к тому, что верхняя книга (последняя добавленная) будет удалена первой, и поэтому последний элемент, который будет удален, будет книгой в нижней части стопки, процесс, который мы называем 9. 0017 извлечение элементов из стека .

Еще одна вещь, на которую стоит обратить внимание при просмотре нашего исходного скрипта, это значения с префиксом OP_ . Это то, что мы называем кодами операций или кодами операций в биткойн-скрипте. Коды операций в контексте нашей стопки книг можно описать, связав различные определения для каждого цвета книг в нашей стопке. Давайте представим, что мы присваиваем значения нашим книгам следующим образом:

Зеленый = 1

Синий = 2

Фиолетовый = сложение (+)

Теперь у нас есть простой словарь для простого сложения с использованием стека! Когда мы складываем наши книги в следующем порядке, мы получаем что-то похожее на следующее.

 Зеленый
Синий
Пурпурный
 

Когда мы переведем это, используя наш словарь, мы получим следующий стек.

 1
2
+
 

Однако, чтобы оценить это, нам понадобится дополнительный стек (еще один стек книг), который можно использовать для пошагового выполнения этого выражения. Мы назовем их нашими стек сценариев и стек выполнения соответственно.

Стек скриптов Стек выполнения
1
2
+ <пусто>

Теперь мы можем начать перемещать предметы из одного стека в другой.

Сначала мы извлекаем элемент из стека сценариев , а затем помещаем его в наш Стек выполнения . Таким образом, в качестве первого шага мы извлекаем значение 1 из нашего стека сценариев и помещаем его в стек выполнения следующим образом.

Стек скриптов Стек выполнения
2
+ 1

Затем мы извлекаем значение 2 из нашего стека сценариев и помещаем его в стек выполнения .

Стек скриптов Стек выполнения
2
+ 1

И, наконец, мы вставляем значение + из нашего стека сценариев в наш стек выполнения .

Стек скриптов Стек выполнения
+
2
1

Чисто! Теперь у нас есть инверсия нашего исходного стека! Это основной принцип, когда мы говорим о стеках или структурах данных на основе стеков. Однако давайте сделаем еще один шаг вперед и разделим наш словарь на операционных и числительных типов.

Зеленый = 1 — (число) При обнаружении всплывающих окон из стека сценариев и поместить в стек выполнения

Синий = 2 — (число) При обнаружении всплывающего окна из стека сценариев и поместить в стек выполнения

Фиолетовый = дополнение (+ операционное) — При обнаружении всплывающего окна два элемента из стека выполнения складываются вместе, а затем помещают результат обратно в стек выполнения .

Как и раньше, теперь мы можем повторить предыдущий процесс следующим образом.

Сначала мы вытаскиваем элемент из стек сценариев , а затем поместите его в наш стек выполнения . Итак, в качестве первого элемента мы извлекаем значение 1 из нашего стека сценариев и помещаем его в стек выполнения следующим образом.

Стек скриптов Стек выполнения
1
2
+ <пусто>

Затем мы извлекаем значение 2 из нашего стека сценариев и помещаем его в стек выполнения .

Стек скриптов Стек выполнения
2
+ 1

Основываясь на новых правилах, которые мы добавили в наш словарь, всякий раз, когда мы сталкиваемся с + или Красной книгой, нам теперь нужно извлечь два элемента из стека выполнения , сложить их вместе и поместить результат обратно в стек выполнения . Это приведет к следующему.

Сначала мы извлекаем + из стека сценариев , затем наши правила указывают, что мы извлекаем верхние 2 элементов из стека выполнения , складываем их вместе и помещаем результат обратно в стек выполнения .

Стек скриптов Стек выполнения
<ПУСТОЙ> 3

Это так просто 😀

Теперь давайте вернемся к нашему первоначальному биткойн-скрипту.

 OP_2 OP_1 OP_ADD
 

Здесь наш словарь операций: OP_2 , OP_1 и OP_ADD , которые можно перевести в пример из предыдущей книги следующим образом.

Зеленый = OP_2

Синий = OP_1

Фиолетовый = добавление OP_ADD

Используя те же операции на основе стека, которые мы рассмотрели ранее, мы можем использовать это для выполнения некоторых простых арифметических действий. Биткойн-скрипт определяет список кодов операций для более сложных операций, разделенных на константы, управление потоком, стек, соединение, побитовую логику, арифметику, криптографию, время блокировки, псевдослова и зарезервированные слова соответственно, каждая из которых имеет свои собственные правила. Чтобы ознакомиться со списком из них, посетите биткойн-вики.

Назад к btcdeb

Во введении к этому руководству мы сказали, что «Биткойн-скрипт — это простой язык, основанный на стеке, в основном это означает, что он работает по принципу «первым пришел — последним вышел» (FILO)». , что, надеюсь, теперь имеет смысл, основываясь на наших предыдущих примерах.

Теперь, когда мы рассмотрели основы, давайте воспользуемся btcdeb , чтобы изучить еще несколько примеров.

OP_6 OP_2 OP_SUB OP_4 OP_EQUAL

Здесь мы будем вычитать 2 из 6, а затем проверять наш результат, чтобы увидеть, равен ли он 4. Чтобы выполнить это, используйте btcdeb , мы выполняем следующее и передаем скрипт , который мы хотели бы выполнить в качестве первого аргумента.

 gr0kchain:~ $ btcdeb ['OP_6 OP_2 OP_SUB OP_4 OP_EQUAL']
 

Примечание:
Вы также можете загрузить скрипт с помощью команды exec после вызова btcdeb .

Вы должны увидеть следующий вывод.

 btcdeb -- введите `btcdeb -h` для параметров запуска
действующий сценарий
5 оп скрипт загружен. введите `help` для информации об использовании
сценарий | куча
---------+--------
6 |
2 |
OP_SUB |
4 |
OP_EQUAL |
#0000 6
btcdeb>
 

Здесь мы видим, что для нас созданы два стека nl. наш скрипт и стек (исполнение). Наш биткойн-скрипт был помещен в стек script в обратной последовательности, как было представлено, где сначала добавляется OP_EQUAL , затем OP_4 и OP_SUB , OP_2 и, наконец, OP_6 .

Чтобы начать оценку нашего стека, мы используем команду step в btcdeb .

 ```консоль
btcdeb> шаг
<> PUSH стек 06
сценарий | куча
---------+--------
2 | 06
OP_SUB |
4 |
OP_EQUAL |
#0001 2
btcdeb>
``` 

Подсказка:
Вы можете использовать команду перемотка назад для перехода назад.

Здесь мы видим, как срабатывают правила наших кодов операций, когда верхний элемент нашего столбца скрипта извлекается, а затем помещается в столбец стека . Продолжим, выполнив следующие шаг в процессе.

 ```консоль
btcdeb> шаг
<> PUSH-стек 02
сценарий | куча
---------+--------
OP_SUB | 02
4 | 06
OP_EQUAL |
#0002 OP_SUB
btcdeb>
```
 

Как и прежде, OP_2 был извлечен из стека сценария , а поместил в стек .

 btcdeb> шаг
<> POP-стек
<> POP-стек
<> PUSH стек 04
сценарий | куча
---------+--------
4 | 04
OP_EQUAL |
#0003 4
btcdeb>
 

Здесь OP_SUB было извлечено из стека скрипта , а OP_2 и OP_6 были извлечены из стека , вычтены как 6 - 2 4 901 как результат 9014 и помещены обратно в наш стек, и 04 или OP_4 .

Следующей операцией мы извлекаем значение 4 из стека сценария и помещаем его в стек .

 btcdeb> шаг
<> PUSH стек 04
сценарий | куча
---------+--------
OP_EQUAL | 04
         | 04
#0004 OP_EQUAL
btcdeb>
 

И, наконец, мы проверяем правильность нашей арифметики, сравнивая последние два элемента в нашем стеке , используя код операции OP_EQUAL . Биткойн-транзакции считаются действительными, если последний элемент стека — истинен. Мы рассмотрим это в будущих руководствах, а пока считайте это выполнением условий для действительной транзакции!

 btcdeb> шаг
<> POP-стек
<> POP-стек
<> PUSH-стек 01
сценарий | куча
---------+--------
         | 01
btcdeb>
 

Теперь, когда у вас есть основы, попробуйте поиграть с некоторыми дополнительными кодами операций , чтобы ознакомиться с концепциями, лежащими в их основе. Также взгляните на некоторые интересные головоломки со сценариями, такие как опубликованные разработчиком ядра биткойнов Питером Тоддом.

Для получения дополнительной информации об использовании btcdeb ознакомьтесь с репозиторием github или выполните справку из командной строки.

 gr0kchain:~ $ btcdeb --help
синтаксис: btcdeb [-q|--quiet] [--tx=[amount1,amount2,..:] [--txin=] [--modify-flags=|-f ] [--select=|-s] [