diff --git a/.vitepress/config.js b/.vitepress/config.js index 1ab5710..da83bf3 100644 --- a/.vitepress/config.js +++ b/.vitepress/config.js @@ -290,6 +290,7 @@ export default defineConfig({ ], "/script/": [ + { text: "Script Basics", link: "/script/script_basics.md"}, { text: "Script Success and Failure", link: "/script/script.md" }, { text: "ASM Representation", link: "/script/asm.md" }, { text: "Push Operators", link: "/script/push.md" }, diff --git a/index.md b/index.md index 93a9f6b..6ef36c3 100644 --- a/index.md +++ b/index.md @@ -14,12 +14,11 @@ hero: # link: /overview/ features: - - title: All opcodes - details: A small encyclopedia of all current opcodes. + - title: Opcodes + details: An encyclopedia of all current opcodes. link: /opcodes/ - - - title: Learn more about bitcoin script - details: More documentation on the nitty gritty of the bitcoin scripting language. + - title: Script + details: The basics of the bitcoin scripting language. link: /script/ # - title: Proposed opcodes diff --git a/script/index.md b/script/index.md index 75d7d97..94c9676 100644 --- a/script/index.md +++ b/script/index.md @@ -1,2 +1,2 @@ # Bitcoin Script -The pages in this section explore some of the more meta parts of the bitcoin scripting system. +The pages in this section explore the bitcoin scripting system. diff --git a/script/script_basics.md b/script/script_basics.md new file mode 100644 index 0000000..2e29267 --- /dev/null +++ b/script/script_basics.md @@ -0,0 +1,11 @@ +# Script Basics + +The Bitcoin ledger consists of a large, dynamic set of Unspent Transaction Outputs (UTXOs) monitored by a world-wide network of nodes. Control of these outputs is dictated by private keys, which can cryptographically sign transactions. A signature proves the ownership of a private key without revealing it to the network. Valid signatures result in the reassignment of UTXOs to other owners, a process also known as "spending". + +The language through which the network participants communicate is simply called Script or Bitcoin Script. Script is unlike modern programming languages–it most closely resembles a stack-oriented language from the late 1960's called [Forth](https://en.wikipedia.org/wiki/Forth_(programming_language)). Satoshi chose this style for its simplicity and minimal storage requirements. + +Some other important properties of Script: + +- Turing incomplete – this prevents loop-based denial-of-service attacks on the network + +- Stateless – any valid construction contains all necessary information for network participants to validate it \ No newline at end of file