Summary of Gordian Developer Meeting @ July 10th #130
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
-
Blockchain Commons' July Developer Meeting had updates on our two newest CLIs, Seedtool for Rust (all new!) and Envelope for Rust (now updated!) as well as a feature presentation on Gordian Sealed Transaction Protocol (GSTP)
Seedtool in Rust
Seedtool-cli is now in Rust
Available in a Blockchain Commons repo, now with a user manual.
Blockchain Commons has always felt seeds were the root of the tree for various cryptographic operations. So the new seedtool-cli-rust is one of three seedtool apps (others in C++ (deprecated) & iOS.)
The whole idea is to have a very fully featured command line tool.
There was some discussion of making sure inputs produce the same outputs for testing purposes. The
-d
deterministic flag is the main way to support that, though dice and coin flips may be used to test consistent results as well, including at Ian Coleman's site.The Rust Seedtool is now on the leading edge of Blockchain Commons' development, but they're considering more additions, such as descriptors, attachments, and BIP-85.
Envelope in Rust
BC is updating envelope-cli-rust for new SSH functionality.
Why SSH?
Traditionally, SSH keys were just for auth, mostly for logging in to UNIX boxes.
But now they can be used for code signing, driven by work from GitHub!
Use of SSH keys in Envelope also demonstrates flexibility of Envelope!
Envelope-CLI-Rust Expansions
This is another Rust/cargo tool.
Schnorr is the default for signing in Envelopes
ecdsa
and a variety ofssh
signaturesThere's a lot of depth, as shown in our new Signingchapter for the Envelope CLI.
Well-used libraries are the heart of the SSH code, so Blockchain Commons is inheriting any attack surfaces & any protections
Doesn't do hardware or FIDO yet, but is enough to demo SSH usage!
One of the advantages of using Envelopes is that users can add additional attributes to
a key, such as an expiration date! Or precommit of future keys that are elided at the time!
Gordian Sealed Transaction Protocol (GSTP)
This project is supported by Foundation Devices, who have made advances available to the whole community.
Support for GSTP is in the
bc-envelope
crate in the Blockchain Commons Rust stack.GSTP is built on REQUESTS and RESPONSES
Goals & Key Components:
Benefits
Function Layer
Requests & Responses are distributed function calls
Request/Response Layer
To encapsulate a function in a request, Envelope generates an apparently random ID (ARID)
Same pattern with response
Authentication Layer
GSTP then adds an authentication layer
For Request:
senderPublicKey
senderContinuation
(what we expect back!)recipientContinuation
if we have oneEncryption Layer
GSTP then adds an encryption layer
For Request:
SealedMessage
key, which encrypts symmetric key with recipient's public keyReversing the Process
RECIPIENT then reverse sprocess
RECIPIENT then reverses process again to send a response to original sender
GSTP & The Future
This is foundation for a wide variety of protocols. Depo is the first use case, but can be used with many more protocols: Git depos, supply-chain, etc.
Lots of opportunity for advanced protocols!
There's a lot of flexibility for future
Trust on First Use (TOFU) Pairing
How do things get started?
The TOFO method is used by Blockchain Commons' depo.
Process starts with SERVER sending a discovery message: their open public key
Client now has server public key
Server now has client public key
Next Month
Back to First Wednesday
Presentation on BIP-85!
Demo of using SSH with Envelope & Git
If you would like to present something related to wallet interop, let us know!
Beta Was this translation helpful? Give feedback.
All reactions