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