Serialize to a JSON-encodable map, omitting absent members.
Map<String, dynamic> toJson() => <String, dynamic>{ 'ciphertext': ciphertext.toJson(), 'proof': proof.map((e) => e.toJson()).toList(), };