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. 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