BIP 174 thoughts



Summary:

The author proposes that conflicting values for the same key in a format should be considered invalid and not optimized for, but there is an open question on how to handle invalid data when encountered. The author discusses two possible modes for the format with regard to possibly conflicting data: permissive and restrictive. The author argues for a fully restrictive mode where receiving two different values for the same key is a fatal condition with no recovery. However, the author notes that it's still nice to have the Combiner perform the task of detecting this and failing. The author also suggests that consumers should either reject the transaction as invalid or choose the last value encountered when handling PSBTs with duplicate keys. The author discusses the role of the Combiner and its two types: Combiner as a part of an intelligent consumer and Combiner as a separate service with no understanding of semantics. The author argues that simple Combiners can safely pass on new fields without loss of any important properties. The author also argues that "whole record uniqueness" isn't an important property since you need application-level checks anyway and suggests using protobuf as a standard format to implement a hand-parsable key-value format.


Updated on: 2023-06-13T03:25:18.810373+00:00