| CPC H04L 63/062 (2013.01) [H04L 9/30 (2013.01)] | 20 Claims |

|
1. A first device, comprising:
one or more hardware processors configured to:
output, to a second device, a first request to establish a communication session between the first device and the second device, wherein the request includes a first value;
receive, from the second device, a second request to establish the communication session between the first device and the second device, wherein the second request includes a second value;
compare the first value, included in the first request outputted by the first device, with the second value included in the second request received from the second device;
determine, based on comparing the first and second values, that the first device has priority, wherein the second device also determines, based on the first and second values, that the first device has priority;
output, based on determining that the first device has priority, a blockchain establishment message to a set of devices that includes a third device, wherein the first device and the set of devices establish a blockchain that is accessible to the first and second devices, wherein the second device forgoes outputting a blockchain establishment message based on determining that the first device has priority;
encrypt a communication associated with the communication session using a double ratchet encryption technique;
record, to the blockchain associated with the communication session, one or more keys associated with the encrypting of the communication using the double ratchet encryption technique; and
output the encrypted communication to the second device via the communication session, wherein the second device retrieves the one or more keys from the blockchain and uses the one or more keys to decrypt the encrypted communication.
|