tg-me.com/CryptoBotan/931
Last Update:
✅✅✅
Tapscript - обновленная версия языка программирования Bitcoin.
Затрагивая стек биткоина, который я разбираю уже второй месяц и прошлый пост про софтфорк, сегодня о tapscript.
⬇️⬇️⬇️
Прежде чем затронуть tapscript, нужно кое с чем разобраться
Биткойн использует скриптовую систему для транзакций.
Script (сценарий) - это, по сути, список инструкций, записанных с каждой транзакцией, которые описывают, как следующий человек, желающий потратить передаваемые биткойны, может получить к ним доступ.
Скриптинг предоставляет возможность гибко изменять параметры, которые определяют правила траты переведенных биткоинов.
Скриптовая система может быть использована для того, чтобы потребовать два закрытых ключа, или комбинацию нескольких ключей, или никаких ключей.
Opcodes (опкоды, команды, функции) - это список всех слов скрипта. Это коды операций на языке Bitcoin Script, которые передают данные или выполняют функции в ScriptPubKey или скрипте подписи.
Что за ScriptPubKey читайте в этом посте
Ссылочка для детального изучения Opcodes.
Кстати, некоторые опкоды были удалены из протокола. Какие-то из-за ненадобности, а какие-то были вредны. Например, так называемы опкоды Сатоши, OP_LSHIFT, OP_RSHIFT, OP_DIV, OP_MUL и другие...
Но да ладно, я отвлекся...
///
Итак, Tapscript - это язык сценариев, используемый для сценариев Taproot. В нем отключены, объединены или модифицированы некоторые из опкодов. Отключенные опкоды отказывают и завершают сценарии сразу же при выполнении, и игнорируются, когда обнаруживаются в неисполненной ветви сценария.
В Script присутствуют такие опкоды как:
OP_CHECKMULTISIG - Сравнивает первую подпись с каждым открытым ключом, пока не найдет соответствие ECDSA. Начиная с последующего открытого ключа, он сравнивает вторую подпись с каждым оставшимся открытым ключом, пока не найдет соответствие ECDSA. Процесс повторяется до тех пор, пока не будут проверены все подписи или не останется достаточного количества открытых ключей для получения успешного результата. Все подписи должны соответствовать открытому ключу.
OP_CHECKMULTISIGVERIFY - То же самое, но выполняется позже.
В Tapscript эти два опкода отключены, а вместо них используется один - OP_CHECK SIG ADD. Он позволяет формировать ту же самую мультиподпись с возможностью пакетной проверки.
///
Опкоды OP_CHECKSIG и OP_CHECKSIGVERIFY ⬇️ модифицированы для работы с открытыми ключами и сигнатурами Шнорр, вместо ECDSA, и добавляется новый код OP_CHECKSIGADD.
OP_CHECKSIG - это код операции сценария, используемый для проверки правильности подписи для ввода tx. Т.е. проверяет подпись на соответствие транзакции.
OP_CHECKSIGVERIFY - То же самое, но позже.
///
Подпись сообщений tapscript также упрощает обработку OP_CODESEPARATOR и делает ее более эффективной.
OP_CODESEPARATOR используется для проверки OP_CHECKSIG
///
Опкод OP_NOP: в библиотеке опкодов красуется надпись "Does nothing". Но, как оказалось, этот опкод позволяет внедрять новые опкоды. В Tapscript он заменен на OP_SUCCESS, который позволяет делать это более "cleanly".
Более подробную информацию можно взять на github: bip-tapscript.mediawiki
Tapscript может быть внедрен с помощью софт-форка. Внедрение Tapscript упростит внедрение опкодов и проведение софтфорков.
#SmartContracts
BY CryptoBotan

Share with your friend now:
tg-me.com/CryptoBotan/931