Bison Relay is a Decred-based communications tool that enables free speech, free association, and can act as a fully independent alternative stack to the web. Bison Relay is an asynchronous client-server protocol that makes heavy use of the Decred Lightning Network, where every message is sent encrypted, metadata-minimized, and paid for via LN micropayment. The Bison Relay server is accountless and every message is handled individually, where it is both paid for prior to being sent and then received. Bison Relay tightly integrates payments, messaging, and social media, and implements a peer-to-peer social media functionality of making posts to subscribers, subscribing to users’ posts, relaying posts, and replying to posts and comments on posts.
Using Bison Relay requires a small amount of Decred, e.g. 0.1 DCR or less, and this will last many months for regular chatting, but its longevity may vary based on how much data is sent. The billing rate is 1 atom per kilobyte (0.00000001 DCR per kB) to send data and 1 atom per message received.
Bison Relay does not rely on users having accounts, every message sent and received is individually paid for over the Decred Lightning Network. By eliminating accounts and minimizing metadata, Bison Relay removes the means by which censorship is typically implemented. Message content, the sender, and the receiver are all opaque to the server, which only sees encrypted data.
Bison Relay privacy is based on a unique combination of a Double Ratchet and post-quantum-secure Public Key Infrastructure. The Double Ratchet creates forward and “reverse” secrecy, meaning a temporary compromise of an endpoint does not compromise all future or all prior message encryption keys. Additionally, the Double Ratchet provides deniable messaging, where either endpoint could have written any message in question. Post-quantum-secure Public Key Infrastructure reinforces the Double Ratchet privacy by protecting it against attacks by quantum computers, and it also makes man-in-the-middle attacks more difficult.
Once accounts are no longer linked to messages, clients uploading and downloading messages with the server must precede their actions with micropayments over Lightning Network. If this did not occur, malicious clients could run a denial-of-service attack at a very low cost. Uploaded data is paid for by the byte and received messages are paid for by the message because in the first case disk space is the limited resource and in the second case the database load scales with message count. Sent messages are stored by the server for 30 days and then purged from its database (PostgreSQL), which may force ratchet resets for users who are offline for over 30 days at a time.
Typical social media or chat services have a database table of their users, so user A can request to be connected with user B and the server routes the messages. Since server-based routing of messages has been replaced by client-based routing, clients must connect with each other without the use of a server “phonebook”, i.e. lookup table. Clients may connect either via out-of-band invite, which can be sent over other chat or relay networks, preferably via a secure channel, or via Bison Relay directly using mediated key exchanges. This mediated key exchange process occurs roughly as follows:
- Bob is in contact with Alice and Carol, but Alice and Carol are not in contact over Bison Relay.
- Bob posts something that both Alice and Carol can see.
- Alice makes a comment on the post.
- Carol sees Alice’s comment on the post.
- Carol decides to initiate a mediated key exchange to connect directly with Alice.
- Bob mediates the key exchange requested by Carol with Alice.
- Carol and Alice are connected directly.
- A similar process can occur across several intermediate peers that exist in between the 2 peers that are attempting to connect. Mediated key exchanges avoid the need for an authoritative lookup table by reverting to the “old” meatspace model of meeting people, where one is introduced to new people via people they already know.
Analogous to reposting on various existing social media platforms, clients can “relay” another client’s post to their own followers. If several clients relay a single post in a series, the scenario described above with several intermediate peers existing between 2 peers attempting to connect can occur.