A collection of types, crypto functions, script interpreter, and utility functions needed to implement the bitcoin protocol.