Summary of Gordian Developer Meeting @ November 1, 2023 #120
shannona
started this conversation in
General & Announcements
Replies: 2 comments
-
Thanks, the links in the text are very handy. Will there a recording link become available some time? |
Beta Was this translation helpful? Give feedback.
0 replies
-
Took a while to run a transcript and upload the video, but the video is now here: (Still in SD, will be in HD within a couple of hours.) |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
This month's meeting occurred on November 1, in an early timeslot to make it available to Europe.
Output Descriptors
The main topic of the day was output descriptors. They're the future of wallet interoperability
because of their ability to contain keys, scripts, and derivation paths. They're what you need to find your keys!
But, there are currently a number of different proposals for how to transmit and store them.
Blockchain Commons' Original Proposal for Descriptors
Blockcain Commons' original proposal for descriptors, which has been used by Sparrow and Seedhammer, was UR-based. It can be found in BCR-2020-10. It defined a binary format for descriptors and stored
them as URs. This depended on the use of mid-level CBOR tags that Blockchain Commons thought would be available if they presented a specification.
Unfortunately, the actual allocation of those mid-level tags proved to be more difficult that suggested, requiring the approval of CBOR experts, which was limited because they're only willing to allocate a few of those tags a year, to ensure they remain available over the lifetime of CBOR.
This suggested one of three ways forward:
Unfortunately deprecating the existing specifications may also cause people such as Sparrow, who are
currently using them, problems, particularly if users feel uncomfortable with their coin data being stored in a "deprecated" format.
A potential solution that the community suggested was UPDATING the existing specs rather than DEPRECATING them.
Take Away:
BCRs and BCPs
The issues with changing a BCR that was in use by at least two community members led Blockchain Commons to update its specification path. All specifications have traditionally been labeled BCRs, but Blockchain Commons is now introducing a new category called BCPs.
When a BCR/Research format comes into use by at least two parties, it will be upgraded to BCP/Proposal status, with the goal of moving it onto a standards track. BCPs are intended to be less fluid than BCRs (with the understanding that standardization might require changes) and changes will be discussed with the community, especially those people who are implementing the spec.
Take Aways:
Blockchain Commons' New Envelope Proposal for Descriptors
Blockchain Commons' new suggested format for output descriptors is a simple usage of Envelope to encode the text representation of the descriptor, plus a label and potentially a name and note.
Envelope is designed to make simple things simple and hard things possible, so a minimal output of a descriptor has very little additional data: 12 bytes of overhead!
Take Aways:
SeedHammer's Envelope Proposal for Descriptors
SeedHammer offered a presentation of their own proposal for an output descriptor format, which uses the format currently used for PSBTs.
Discussion of Output Descriptors
With all the possibilities in hand, there was a general discussion of the requirements of these various formats.
In particular, there's still a desire for binary encoding of text because of its compactness
Much of the discussion focused on how a CBOR format could be easy to read without actually requiring an understanding of CBOR. (Writing was considered not an issue, because any app can choose to write a very constrained version of a format.)
Wolf pointed toward his description of how to read a simple version of an Envelope output descriptor that contains only the label and the descriptor:
--
Basically, it's very easy to write a reader that just looks for these magic numbers and follows a few rules. But what if it has more metadata added on? A reader can just iterate through the array of data, and skip other assertions! You don't have to support all of Envelope if you support some of it!
If Blockchain Commons BIPs an Envelope descriptor, it will probably be a minimal format. We just need to be able to create a BIP that allows for the creation of a simple decoder from scratch.
There was some consensus that this might work, but SeedHammer noted that they'd like to see
a version of spec that also includes two other data elements:
Wolf suggested that we could even put forth a new specification that was dCBOR instead of Envelope. It would be built to work with Envelope, but wouldn't be Envelope itself, which would make it easier to specify as a BIP.
The community generally thought it worthwhile for Blockchain Commons to put together this new descriptor output format in CBOR and to code examples. They suggested it be prioritized.
Take Aways:
DESC_BIRTHDATE: The wallet birthdate in blocks, encoded as a compact integer.
)Also see SeedHammer's summary.
Envelope CLI
A new Rust version of the Envelope CLI is available at bc-envelope-cli-rust.
Blockchain Commons had planned a demo for today, but after the long discussion of output descriptors decided to skip it. Basically, it works the same as the existing Swift version, but in Rust instead of Swift, with a few syntax changes.
(They may demo next meeting if there's a request for that.)
CSR Depository
Blockchain Commons also announced their work on CSR Depository, a share server for CSR. It's still in process, but they hope to have a full demo at the next meeting.
This is all in service to the goals of maintaining user independence and privacy. Users should be able to make the choice about how their secret shares are stored, which is not the case currently in Ledger Recover.
Recent Musings
A lot of Blockchain Commons' big-picture architectural thoughts can be found in Christopher Allen's Musings from a Trust Architect articles. They can be found at Blockchain Commons or in Christopher's recently updated blog Life with Alacrity.
Recent discussions covered self-sovereign computing, methodologies for minimizing data access, and an introduction to Schnorr.
Thanks to everyone for great feedback and discussion at a great meeting.
Beta Was this translation helpful? Give feedback.
All reactions