Это аналог BitMessange, там тоже в виде получателя есть публичный ключ, им шифруете сообщение и бросаете в сеть и он по сети гуляет и каждый пытается его вскрыть, и передать другому. Т.к. вскрыть не реал 4098битный ключик то он обходит всех и 100% достигает получателя.
В целом можно тут тоже самое Вы передаете валюту, используя публичный ключ кому передаете средства, шифруется транзакция которая гуляет по сети и находит своего получателя. Во время путешествие она подтверждается(что такой то публичный ключ в подписи потерял столько то монеток) и передается другим(другие тоже подтверждают это), ну и так она гуляет пока не находит своего адересата. Получатель открывает транзакцию и имея подпись отправляет в сеть подтверждение о получении монетки пользователем что столько то монет надо пополнить счет и подпись отправителя(и отправляется это всем) все проверили подпись и если ок то обновляем БД. Если пользователь Offline то сообщение сидит в сети и ЖДЕТЬ звездного часа
В качестве БД можно подумать о просто огромной БД с существующими адресами(публичными ключами) и их балансом. В обороте четко должно быть определенное кол-во монет.