Besides the simple function of tracking balances and transfers, bitcoin offers a scripting language that can be used to construct more complex functions.