Using blockchain for ack
It is simpler to keep a block chain of all messages received in a session as follows:
(m_1, h(m_1), m_2, h(h(m_1), m_2), m_3, h(h(h(m_1),m_2),m_3,....)
And send hash of parent(m) with messages or heartbeat. This way it is very easy to look up into the blockchain to see if the hash of other participants matches the user. And it also allows for orders other than received order (lexi, etc).