Subject: Re: [bitcoin-dev] Even more proposed BIP extensions to BIP 0070

From: Peter Todd <[email-masked]>
Date: Tue, 21 Jun 2016 18:10:08 -0400

On Tue, Jun 21, 2016 at 08:44:37PM +0000, Luke Dashjr via bitcoin-dev wrote:
> On Monday, June 20, 2016 5:33:32 PM Erik Aronesty via bitcoin-dev wrote:
> > BIP 0070 has been a a moderate success, however, IMO:
> > 
> > - protocol buffers are inappropriate since ease of use and extensibility is
> > desired over the minor gains of efficiency in this protocol.  Not too late
> > to support JSON messages as the standard going forward
> 
> IMO JSON is too prone to gratuitous inefficiency (both at network and CPU 
> level), parser bugs, etc. Even the best C implementation (jansson) has serious 
> issues with Number handling.
> 
> A few years ago, I looked into binary alternatives to JSON and concluded they 
> all had problems, while it seems more than reasonable to do even dynamic 
> parsing of protobuf messages. So to conclude, I prefer to stick to protobuf 
> unless a clearly superior protocol turns up.

I'll second that statement.

Ease of use isn't a very good criteria for security-critical software handling
money, and the JSON standard has a very large amount of degrees of freedom in
how people have implemented it historically. Even protobuf I'd personally avoid
using on that basis, as protobuf encoding isn't deterministic: you can encode
the same data in multiple ways.

Unfortunately there isn't a viable alternative, so we're probably stuck with
protobuf right now for standards that want to see wide adoption in the near
future; I've got a few projects that need an alternative, which I'm working on,
but that's a ways off.

-- 
https://petertodd.org 'peter'[:-1]@petertodd.org