A system comprising: a first node (105b1); a path node; a destination node (105b2); and network connection edges between the nodes; wherein each node comprises a processor and a memory that stores code executable by the processor; wherein the memory of the first node stores code executable by the processor to: determine a first communication path to a first destination node in a network of nodes organized as an undirected graph, wherein the edges between the nodes are bidirectional communication channels, wherein the first communication path is a spanning tree of path nodes of the undirected graph; encrypt a message to the first destination node with an encryption using a set of first encryption keys; and communicate the encrypted message over the path nodes of the first communication path to the first destination node; wherein the memory of each path node stores code executable by the processor to: record each transaction of the path node with the encrypted message; and wherein the memory of the destination node stores code executable by the processor to: acquire a subset of the set of first encryption keys from key holding nodes in communication with the first destination node; and decrypt the encrypted message with the subset of the set of first encryption keys. a first node (105b1); a path node; a destination node (105b2); and network connection edges between the nodes; wherein each node comprises a processor and a memory that stores code executable by the processor; wherein the memory of the first node stores code executable by the processor to: determine a first communication path to a first destination node in a network of nodes organized as an undirected graph, wherein the edges between the nodes are bidirectional communication channels, wherein the first communication path is a spanning tree of path nodes of the undirected graph; encrypt a message to the first destination node with an encryption using a set of first encryption keys; and communicate the encrypted message over the path nodes of the first communication path to the first destination node; determine a first communication path to a first destination node in a network of nodes organized as an undirected graph, wherein the edges between the nodes are bidirectional communication channels, wherein the first communication path is a spanning tree of path nodes of the undirected graph; encrypt a message to the first destination node with an encryption using a set of first encryption keys; and communicate the encrypted message over the path nodes of the first communication path to the first destination node; wherein the memory of each path node stores code executable by the processor to: record each transaction of the path node with the encrypted message; and wherein the memory of the destination node stores code executable by the processor to: acquire a subset of the set of first encryption keys from key holding nodes in communication with the first destination node; and decrypt the encrypted message with the subset of the set of first encryption keys. record each transaction of the path node with the encrypted message; and wherein the memory of the destination node stores code executable by the processor to: acquire a subset of the set of first encryption keys from key holding nodes in communication with the first destination node; and decrypt the encrypted message with the subset of the set of first encryption keys. acquire a subset of the set of first encryption keys from key holding nodes in communication with the first destination node; and decrypt the encrypted message with the subset of the set of first encryption keys.