Skip to content
This repository has been archived by the owner on Jun 3, 2020. It is now read-only.

Proposal: Cosmos transaction signing support #386

Open
tarcieri opened this issue Dec 30, 2019 · 6 comments
Open

Proposal: Cosmos transaction signing support #386

tarcieri opened this issue Dec 30, 2019 · 6 comments
Labels
enhancement New feature or request help wanted Extra attention is needed question Further information is requested

Comments

@tarcieri
Copy link
Contributor

tarcieri commented Dec 30, 2019

EDIT: this issue has been moved to iqlusioninc/tmkms#54

@tarcieri
Copy link
Contributor Author

Regarding building Cosmos SDK-compatible transactions from Rust, it looks like the deep_space crate is capable of this, but is a bit rough around the edges.

@tarcieri tarcieri added enhancement New feature or request help wanted Extra attention is needed question Further information is requested labels Dec 30, 2019
@jleni
Copy link
Contributor

jleni commented Dec 30, 2019

About your open question wrt Ledger devices..
The cosmos app already does everything that is needed, however for security reasons, at the moment always requires manual confirmation.

Extending the rust driver to support both Tendermint and Cosmos apps, should be fairly easy.

The only change the app needs is to have a menu option so users can enable/disable "sign without confirmation". BUT, I am not sure Ledger will accept this feature unless it is released with a big warning.

I would prefer to limit by protocol which tx types can be signed without confirmation. That way the check can be done inside the secure element and not in the KMS software layer.

@tarcieri
Copy link
Contributor Author

tarcieri commented Dec 30, 2019

@jleni would it be possible to compose and upload some sort of ACL which can be displayed on the device, confirmed, and then stored to enable subsequent "sign without confirmation" usage?

@gaia
Copy link

gaia commented Dec 30, 2019

(Maybe not the place for this suggestion, and definitely too early. LMK I will remove it)

Reading in #361 that proposal would give the ability to sign messages: please structure this so that (down the line) messages can be stored in IPFS (for larger files, such as PDFs) or similar file storage protocol. A digital notary is a real world business use case with large demand. The current landscape for PAdES-Long Term Validation PDF signature/certification is an oligopoly maintained by Adobe and a few trusted partners (AATL), with complex implementation, exorbitant costs, and outdated technology.

PS: I would be interested in using a PDF digital notary for my other (non blockchain related) company.

@tarcieri
Copy link
Contributor Author

tarcieri commented Dec 30, 2019

@gaia to the extent this can be used as a digital notary service, I think the main idea here would be notarizing things as Cosmos transactions, which are validated and stored by a Tendermint application which understands the Cosmos SDK transaction format.

Anything more general than that, beyond generalizing something which could be used to produce Cosmos SDK-compatible transactions, I'd suggest discussing on #361 instead.

@jleni
Copy link
Contributor

jleni commented Dec 30, 2019

@tarcieri yes, it should be possible. It should be quite simple due to hardware constraints.. but we could design some grammar + set of rules: and, not, field matches value, field greater than X, etc.

tarcieri pushed a commit that referenced this issue Dec 31, 2019
Support for ECDSA (secp256k1) account keys, with the goal of using them
to support KMS-backed Cosmos transaction signing (#386)
tarcieri pushed a commit that referenced this issue Jan 3, 2020
Support for ECDSA (secp256k1) account keys, with the goal of using them
to support KMS-backed Cosmos transaction signing (#386)
tarcieri pushed a commit that referenced this issue Jan 24, 2020
Support for ECDSA (secp256k1) account keys, with the goal of using them
to support KMS-backed Cosmos transaction signing (#386)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants