Ethereum is a programmable blockchain. Rather than give users a set of pre-defined operations (e.g. bitcoin transactions), Ethereum allows users to create their own operations. In this way, it serves as a platform for many different types of decentralized blockchain applications, including but not limited to cryptocurrencies. geth is the official golang implementation of the Ethereum protocol.