  Informally, a distributed system is grassroots if it can have autonomous,
independently-deployed instances -- geographically and over time -- that can
interoperate once interconnected. An example would be a serverless
smartphone-based social network supporting multiple independently-budding
communities that merge when a member of one community becomes also a member of
another. Grassroots applications are potentially important as they may provide
a foundation for digital sovereignty, which we interpret as the ability of
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 value-extraction (e.g., by global digital platforms such as
Facebook or Bitcoin). Here, we formalize the notion of grassroots distributed
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 illustrate how grassroots dissemination can realize
applications that support digital sovereignty -- grassroots social networking
and sovereign cryptocurrencies. 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 partially-ordered DAG-like
generalization of the blockchain.
