  Informally, a grassroots system is a distributed system that can have
multiple instances, independent of each other and of any global resources, that
can interoperate once interconnected. Grassroots applications are potentially
important as they may allow people to conduct their social, economic, civic,
and political lives in the digital realm solely using the networked computing
devices they own and operate (e.g., smartphones), free of third-party control,
surveillance, manipulation, coercion, or rent seeking (e.g., by global digital
platforms such as Facebook or Bitcoin).
  Here, we formalize the notion of grassroots systems and grassroots
implementations; specify an abstract grassroots dissemination protocol;
describe and prove an implementation of grassroots dissemination for the model
of asynchrony; extend the implementation to mobile (address-changing) devices
that communicate via an unreliable network (e.g. smartphones using UDP); and
discuss how grassroots dissemination can realize applications that support
digital sovereignty -- grassroots social networking and grassroots currencies.
The mathematical construction employs distributed multiagent transition systems
to define the notions of grassroots protocols and grassroots implementations,
to specify grassroots dissemination protocols and their implementation, and to
prove their correctness. The implementation uses the blocklace -- a
generalization of the blockchain that functions as a fault-tolerant,
conflict-free replicated data type.
