2/ Script’s key design goal: computationally simple and compact, with native support for cryptographic operations
— Yassine Elmandjra (@yassineARK) October 1, 2018
4/ Script is Turing Incomplete: Unable to compute arbitrarily powerful functions... by design! “Miners have to run scripts, which are submitted by arbitrary participants in the network. They should not have the power to submit a script that might have an infinite loop.”
— Yassine Elmandjra (@yassineARK) October 1, 2018
6/ Script is small: 1 byte represents 1 instruction. 256 bytes. 256 instructions. 15 are disabled. 75 are reserved.
— Yassine Elmandjra (@yassineARK) October 1, 2018
8/ Script’s quirk: a multisignature implementation bug. CHECKMULTSIG instruction pops an extra data value off the stack and is dealt with by putting an extra dummy variable onto the stack.
— Yassine Elmandjra (@yassineARK) October 1, 2018
10/ Bitcoin nodes, by default, have a whitelist of standard scripts, generally refusing to accept scripts that are not on the list. Most common script executed is one that specifies one public key and requires a signature for that public key to spend the coins.
— Yassine Elmandjra (@yassineARK) October 1, 2018
12/ Applications of Bitcoin scripts:
— Yassine Elmandjra (@yassineARK) October 1, 2018
Escrow Transactions (implemented using a 2 of 3 multisig transaction), Green Addresses (3rd party trust trick that resolves waiting for confirmation), efficient micropayment, lock time
Every now and then it's important to brush up on your fundamentals, especially in an arena like Bitcoin which combines many disparate, dense disciplines. I think the above thread from our friend Yassine is a great introduction and high-level description of Bitcoin's scripting language. Though it is pretty technical, again, I believe it is important to at least have a semblance of an idea of how this stuff works.
Here'sa link to the list of resourcesYassine used to help craft the thread. If you're currently bored and want to learn a bit about the technical details of Bitcoin, I highly recommend you start exploring these resources. A great way to waste company time on a Wednesday afternoon.
Presented without comment
There are not enough bitcoins for everyone with a Coinbase account to own one. https://t.co/1NJpD6N6MJ
— Jameson Lopp (@lopp) October 3, 2018
Except, woah. tick... tock...
Final thought...
Dirty fingernails are the bane of my existence. I feel like a creature when my fingernails are dirty in public.