Summary of Gordian Developer Meeting @ February 7, 2024 #125
shannona
started this conversation in
General & Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
The February 7th Gordian Developers Meeting focused on Gordian Seed Tool, which was recently released in a new 1.6 version.
Much of the demo focused on Gordian Envelope: why it's useful, and what it's important. This is one of the cases where the video is worth a thousand words, but here's a synopsis of the main elements demoed (and a few other topics covered at the meeting).
Gordian Seed Tool Demos
The purpose of Gordian Seed Tool is to help developers test a variety of functionality.
Gordian Seed Tool is meant to be an exemplar for how things work, not an end-user wallet. It's all open-source, so you can actually download it from GitHub.
Gordian Requests & Responses
Gordian Seed Tool uses Envelopes to encapsulate requests for certain seeds or keys and to respond to those responses.
Demoed how Envelopes and URs can be used to generate a request for a key with a specific derivation path and then send a response of a key that has that derivation path.
There are other ways to send requests:
We would like to have requests for sharding and reconstruction in future!
PSBTs
Similarly, Gordian Seed Tool can hold a seed and receive a REQUEST for a signature as part of a PSBT.
Gordian Seed Tool can automatically respond to the request and prepare a PSBT to send back to the network coordinator!
Why Request & Response?
We wrote a Smart Custody book that showed how to protect your single-signature keys in 2018-2019.
We then expanded that in 2022 to support multisigs. A coordinator (Sparrow) managed transactions, with seeds/keys held by three disconnected devices.
It's a very secure setup, buut people told us it was too complex and they wouldn't use it even when they had substantial money on a key!
So we need an easier way to allow people to maintain #SmartCustody!
The answer is Request & Response.
It automates interactions between multiple devices.
Sharding
Gordian Seed Tool also supports a variety of Shamir's Secret Sharing scenarios. It will generate shares from seed for export in a variety of ways!
They can then be shared by printing, by NFC, or other methods. What's exported is an Envelope with an SSKR share.
Can then recover from QR codes of shares!
Because of use of Envelope, this recovers EVERYTHING including notes, names, and any other metadata we might have. (This is why Envelope is important! Just recovering a seed may not tell you how it was used, and thus you could spend forever trying to find the right derivation path for your keys!)
Seed Creation
Can generate seed by flipping coins, drawing cards, rolling dice.
Also can input via BIP39, Bytewords, and others means.
BIP39 entry has new UX in 1.6 that makes it easy to know you're entering the right words!
Bytewords works similarly, but is even easier
Key Derivation
Can derive multiple paths (master, cosigner, segwit, custom) or even different cryptocurrencies (Bitcoin, Ethereum, Tezos)
Gordian Seed Tool can outputs private key, public key, address, can also output an output-descriptor or account-descriptor (which is a bundle of output-descriptors).
Storage
Backups of seeds with Envelopes can store considerable metadata, including an output descriptor, which is important for creating a watch-only wallet or for restoring a key used in a multisig.
Can elide some of the information if it's too big, particularly for printouts (also relevant for NFC cards). But retain hash, so that if the data is restored, you know it's the correct data!
More on Envelopes
As we finished up the Gordian Seed Tool demo we talked some more on the usage of Envelopes, which are increasingly important for being able to store all of your metadata.
Encryption
Any element of an Envelope can be encrypted!
Depo Servers
Envelopes can now be used with our Depo Servers! Allows storage of Shares of Seeds on Remote Servers!
Allows for user choice of share storage!
Java Card
We had some discussions of using JavaCards with crypto currencies. This is an up-and-coming topic at Blockchain Commons.
There in particular was some discussion of limitations:
But there's a lot of opportunity for open development of JavaCard code for hardware wallets!
Next Month
FROST + Taproot!
Beta Was this translation helpful? Give feedback.
All reactions