BlockchainCommons / BlockchainCommons/GordianSigner-Android

This flow needs new home

Open
#1 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Kotlin
Stars
1
Forks
4
PR merge metrics
No merged PRs in 30d

Description

From our HackMD today:

From Signers Perspective

Gordian Signer: Useful tool that allows users to participate in a multisig by adding a signature to an otherwise unsigned or partially signed transaction (PSBT), where they did not initiate the transaction. (a real wallet is need to both initiate an account map and to initiate a transaction).

1. Account
a. POLICY: PSBT without any xpubs but POLICY. Impossoble to create addresses. No inputs, no outputs, empty amounts.
b. PARTIAL ACCOUNT MAP:
b. ACCOUNT MAP: PSBT with all xpubs published. Can create addresses. No inputs, no outputs, empty amounts.
2. Transaction
a. All inputs need to be established, Primary (external) & Change (internal) Outputs are established with amount each
c. INCOMPLETE: PSBT all xpub, missing one or more required xprvs (.pbst files & QRs)
d. UNSENT TRANSACTION: PSBT with all signers. (.psbt, QRs, or final tx)
e. SENT
f. CONFIRMED

Confirm Account

2. I get asked to participate in co-signing under a policy by someone I know.
a. Receive an POLICY PSBT (1a)
b. Review that policy
c. Accept policy by providing a NEW xpub to requestor
b) review other account maps agreed to
a) GordianSigner may restore a seed or xprv to do so.
c. Sent xpub back as PARTIAL ACCOUNT MAP (QR, .psbt, or clipbard.
d. Store PARTIAL ACCOUNT MAP (with xpubs) at minimimum, probably xprv the xprvs seed BIP32DERIVS (from BIP174) (with finterprint and path), maybe seed. (technically optional).
e. store metadata for account map, who, etc.
f. optionally allow you to backup seed, FINGERPRINT, account maps
g. Remove one or all of the private keys seeds.

Confirm Transaction

3. I recieve a INCOMPLETE PSBT to sign
4. Do I have an ACCOUNTMAP on file such that can maybe I can sign it?
a. If my account map is PARTIAL, this is the first time you've done a transaction with this account, so update my internal ACCOUNTMAP's xpubs, maybe ask for additional confirmation if this happen, in particular of unknown xpubs
6. Will I agree to participate in this transaction?
a. Does the policy match what I have on file?
c. Who initiated it or signed so far?
b. Do I agree with transaction inputs, outputs and amount? Metadata?
6. Do I have the actually have the private keys locally.
a. If yes, sign it
1. If keys offline, request restore so that I sign
7. Tell user status, return as INCOMPLETE or COMPLETE PSBT.
8. keep tx fingerprint & metadata, especially if COMPLETE to warn if multiple attempts to sign

(UX research)
when signing:
* I'm first signer of an empty PSBT with inputs and output
* I'm the last signer and the PSBT will be complete.
* I'm in the middle.

Seeing an xpub that is not yours:
* Petnames for first time seeing a new xpub, and showing them
* Maybe a someday a DID lookup

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.