BlockchainCommons / BlockchainCommons/GordianSigner-Android
This flow needs new home
- 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
Assessment
This issue has not been assessed yet.