Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Future Account Actor / Wallet ideas #580

Open
eshon opened this issue Oct 21, 2019 · 0 comments
Open

Future Account Actor / Wallet ideas #580

eshon opened this issue Oct 21, 2019 · 0 comments

Comments

@eshon
Copy link

eshon commented Oct 21, 2019

[Perhaps for much later on... e.g. when user-defined smart contracts are enabled.]

The spec currently has a MultiSig Account Actor which can support backups and sharing funds. Below are 2 additional types of advanced Wallet constructions popular in the Ethereum community (although many wallets are still simple HD wallets). The Gnosis Safe wallet, uPort, 3Box and Status among others implement some variation of these features and they inspire dapp developers with improved on-boarding and persistent identity for their end-users.

Proxy Identity Contracts

Proxy contracts enable identity addresses and metadata to be persisted, while their Controller contracts that manage them can change when keys are rotated or lost. Controller Contracts control access control and recovery logic while forwarding messages to the proxy that initiates transactions.

Simple Proxy Account (ERC-725)
“The proxy has 2 abilities: (1) it can execute arbitrary contract calls, and (2) it can hold arbitrary data through a generic key/value store. One of these keys should hold the owner of the contract with long-lasting identifiable profiles.”

Verified Claims (EIP 735) can be attached to the Proxy Contract which enables identity verifications signed by other parties.

  • Persistent identity and metadata
  • Key rotation as a security best practice
  • Digital Signatures
  • Reputation
  • Signing with secp256k1 to a proxy that uses BLS?

Meta Transactions and Relayers

Executable Signed Messages & Transaction Relayer (EIP-1077)
Embedding a signed transaction as the payload of another transaction. Allows users to sign a message to show intent, but a 3rd party Transaction Relayer submits it to the chain & a proxy contract on chain checks the signature and executes it on the original user’s behalf. (Use Cases, Implementation)

  • “Gas as a Service” - users can submit signed transactions to a relayer that pays gas on behalf of the user
  • Batching multiple transactions so users only have to sign once
  • Disposable keys and Burner Wallets for easier on-boarding
  • End-users not having to acquire FIL on an exchange before use
    Later:
  • Other types of tokens as gas (e.g. stablecoins)

If there's interest in this we can collect more research on implementations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants