Protocol Buffersやboostシリアライゼーションを使わなかった理由は、一分の隙もなく安全にするには複雑すぎるように見えたからだ。コードが大きすぎて、予期しないことを行うような入力を形成する方法がないと確認できるほど読み通せない。
失礼な言い方になるかもしれないが、それはトランザクションのSCRIPTフィールドの危険性と同じことに聞こえる。ブロックがクライアントに操作を示すような評価言語まるごとを書くことには抵抗がないのに、protocol buffersのようなライブラリを使うことには抵抗がある、というのは?
ウォレットファイルをカスタム形式の代わりにprotocol buffer形式で出力するオプションを含めることを検討してもらえないか? そうすればデフォルトはあなたがより信頼するカスタム形式のままで、ユーザーは新しいクライアントへ移行したい場合に自分のウォレットをprotobuf形式へエクスポートできる。
— martin
そのケースならなぜXMLを使わない? エクスポートに関して言えば、ディスク上のウォレットファイルのサイズはそれほど大きな問題ではないし、XMLはかなり良く圧縮できる。おまけに完全に人間が読める形式だ ― 実際に何が保存されているのかを理解する助けになるだろう。