Steve Shadders

Intermediate Bitcoin Script

Bitcoin Script has a horrible debugging experience. This talk introduces a high-level language with a powerful debugger to make it finally readable and testable.

Intermediate Bitcoin Script
#1about 3 minutes

Understanding Bitcoin Script as a Forth-like language

Bitcoin Script is a compact and efficient stack-based language similar to Forth, making it ideal for the resource-constrained environment of blockchain transactions.

#2about 8 minutes

Improving Bitcoin Script readability with aliases and formatting

A custom Script Definition Language (SDL) improves the developer experience by removing OP_ prefixes, using aliases for operators, and enabling standard code formatting.

#3about 4 minutes

A better way to debug Bitcoin Script

Overcome the poor native debugging experience by using a tool that provides precise error locations and a stack dumping operator to inspect state during execution.

#4about 13 minutes

The stack and reverse polish notation explained

Stack-based languages operate using reverse polish notation (subject-object-verb), which is a more natural structure for machine execution than standard infix notation.

#5about 4 minutes

Compile-time versus runtime script execution

Understand the distinction between compile-time, where code is generated with known inputs, and runtime, where it executes with new inputs provided later.

#6about 12 minutes

Using variables and words in a script definition language

The Script Definition Language introduces features like comments, variables, and reusable code blocks called 'words' to structure and simplify complex scripts.

#7about 3 minutes

How to implement loops through compile-time unrolling

Since Bitcoin Script lacks native loop opcodes, loops can be implemented at compile time by unrolling the code, which repeats the script body a specified number of times.

#8about 2 minutes

Dynamic script generation with compile-time functions

The 'funk' keyword executes a function at compile time, enabling dynamic script generation based on the values of known inputs before runtime.

#9about 6 minutes

Building a dynamic byte reversal function

A practical example demonstrates creating a byte reversal script that dynamically adapts its loop count based on the input's length, calculated at compile time.

#10about 10 minutes

Q&A on script optimization, tooling, and advanced concepts

The session concludes with answers to audience questions on hardware acceleration, data limits, OP_CODESEPARATOR, and the future of the demonstrated scripting tool.

Related jobs
Jobs that call for the skills explored in this talk.

Software Engineer

tree-IT GmbH
Bad Neustadt an der Saale, Germany

Intermediate
Senior

Featured Partners

Related Articles

View all articles
BR
Benjamin Ruschin
What Developers Really Need to Create Great Code Demos
Every developer on earth has, at some point, had another developer to thank for a breakthrough, a success, an aha moment they wouldn’t have had without coming across that blog post, that open-source contribution, that reply on socials or that humble ...
What Developers Really Need to Create Great Code Demos
BR
Benjamin Ruschin
Boring Tech Is What Matters
Every year, the Stack Overflow Developer Survey gives us an insight into the state of the industry, the tools and tech that developers love or loathe, and what’s changed from the year before. Some of the headlines that came out of the 2025 results w...
Boring Tech Is What Matters
DC
Daniel Cranney
Dev Digest 177: Blockchain, jQuery and a Prompt Playground
Inside last week’s Dev Digest 177 . 😫 Do AI tools slow down developers by 20%? 📝 The State of DevSecOps ⚠️ 2.3M Chrome and Edge browsers infected by malicious extensions 🤔 Is it still worth using jQuery? 🪦 10 dead influential programming languages 💻...
Dev Digest 177: Blockchain, jQuery and a Prompt Playground
CH
Chris Heilmann
All the videos of Halfstack London 2024!
Last month was Halfstack London, a conference about the web, JavaScript and half a dozen other things. We were there to deliver a talk, but also to record all the sessions and we're happy to share them with you. It took a bit as we had to wait for th...
All the videos of Halfstack London 2024!

From learning to earning

Jobs that call for the skills explored in this talk.

FPGA Architect

FPGA Architect

Script & Dot
Municipality of Madrid, Spain

Senior
Creative Javascript

Creative Javascript

Thegiglab
Amsterdam, Netherlands

Intermediate
API
CSS
HTML
jQuery
Bootstrap
+1