Ethereum aims to enable arbitrary social contracts and decentralized applications by providing a platform for developers to build and run smart contracts using a blockchain. Unlike Bitcoin, ethereum transactions can contain data that triggers rules in smart contracts which are computer programs that can send messages and even create new contracts. Developers use a programming language like Serpent to write smart contracts that will be executed across the decentralized ethereum network using a concept called gas to compensate miners for computations.