We consider anonymous communication between pairs of nodes in the presence of an adversary who can observe all network traffic. Existing schemes involve partially trusted central servers, a large amount of cover traffic, or high latency. We propose a scheme which improves upon the trade-off, in which messages require only logarithmic time to deliver, as well as computational time to send. In this scheme, any node receiving a message applies a private decryption key to discover content,or instructions to forward the message to zero or more other nodes. Furthermore, when a node applies its decryption key to a message not encrypted with that node’s encryption key, the result is indistinguishable from a message with forwarding instructions. A sender wraps a message in an onion route of logarithmic length, branching (forwarding to multiple nodes) at random points, resulting in a tree of forwarded messages. Nodes wait to initiate messages of their own until they have received a message, so it is indistinguishable whether they are sending or forwarding. Through analysis and simulation, we show this system preserves a high degree of sender and receiver anonymity,as well as unlinkability between communicating pairs