what are the three primary components of a blockchain?