  At the heart of the Bitcoin is a blockchain protocol, a protocol for
achieving consensus on a public ledger that records bitcoin transactions. To
the extent that a blockchain protocol is used for applications such as contract
signing and making certain transactions (such as house sales) public, we need
to understand what guarantees the protocol gives us in terms of agents'
knowledge. Here, we provide a complete characterization of agent's knowledge
when running a blockchain protocol using a variant of common knowledge that
takes into account the fact that agents can enter and leave the system, it is
not known which agents are in fact following the protocol (some agents may want
to deviate if they can gain by doing so), and the fact that the guarantees
provided by blockchain protocols are probabilistic. We then consider some
scenarios involving contracts and show that this level of knowledge suffices
for some scenarios, but not others.
