data class Handshake<out T>
Handshake(payload: T, publicKey: CompositeKey)
val payload: T
val publicKey: CompositeKey