swarms/ideas/073-gas-abstraction.md

79 lines
3.6 KiB
Markdown
Raw Normal View History

2018-04-07 02:13:16 +00:00
## Preamble
Idea: 73
Title: Gas Abstraction
Status: In Progress
Created: 2018-02-01
Requires: #145
## Summary
Enable Status users to pay gas fee with any token that is valueable to society.
Users would sign a message request to contracts which will use user's balance of selected token to refund proportional used gas to a incentivezed ETH owner to include that message in a transction.p
## Swarm Participants
- Lead Contributor: @3esmit
- UX: @alexvandesande
- Contributor/Testing: @iurimatias
- Contributor/Testing: @richard-ramos
## Product Overview
A barrier for user adoption to blockchain through Status would be the need of holding two tokens for paying fees, ether gas for moving the [SNT](https://etherscan.io/address/0x744d70fdbe2ba4cf95131626614a1763df805b9e#readContract) fee from user balance to decentralized service provider.
The product solve this by emulating a gas abstraction by adding "Gas Relayer Actor" in top of smart contracts as: [Identity](https://github.com/status-im/contracts/blob/73-economic-abstraction/contracts/identity/Identity.sol)[GasRelay](https://github.com/status-im/contracts/blob/73-economic-abstraction/contracts/identity/IdentityGasRelay.sol), MultiSigWallet, [SNTController](https://github.com/status-im/contracts/blob/73-economic-abstraction/contracts/status/SNTController.sol#L82) (updated from SNTPlaceHolder).
- Allows SNT holder to broadcast ethereum signed messages to anyone with ETH to validate them in the GasRelay smart contracts, and offering a refund of gas used in a gas price set in SNT.
- Whoever have ether could verify if the gas price worth the SNT gas price offered.
- This becomes a micro trade of ETH->SNT.
- Allow user to use any token they want (even ETH, or ETH stored in Identity).
### Product Description
Gas Relay node: Status Destkop extension or an independent node can include messages by making automatic transactions calls to smart contracts to earn tokens being offered as gas price refund.
Fundamental pivot.
Identity Gas Relay adaptor: include terms for accepting ethereum signed messages representing authorization to call by/for Identity owner offering a gas price refund.
Important for gas abstraction.
SNT Controller Gas Relay adaptor: include terms for accepting ethereum signed messages to IdentityGasRelay facotory and for moving the tokens from there using SNT.
Important for accounts that never held ether, just SNT.
### Requirements & Dependancies
Idea [#145](https://github.com/status-im/ideas/pull/145) is important to seamless and safe integration of gas abstraction for any type of call.
Implemention of [EIP#191](https://github.com/ethereum/EIPs/issues/191) is somewhat important, specially for making signature verification slightly gas cheaper.
### Minimum Viable Product
Goal Date:
Description:
- Users can call EVM by paying gas in a selected token.
- Users can join gas abstraction by SNTController terms
- Users can earn tokens by including other's messages
#### Identity Gas Relay
Goal Date:
Description:
- Gas Relay Node that recieve whisper messages from Identity owners,
- Identity User Interface with Gas Relayed option of calls
#### SNT Gas Relayer
Goal Date:
Description:
- Gas Relay Node implements watching messages for SNTController
- User interface for creating Identity+ENS register (pay gas in SNT)
- Moving SNT to other address from SNTController terms (paying gas in SNT)
## Success Metrics
Users are able to use Ethereum Virtual Machine and Status Network with only ever holding SNT.
## Supporting Role Communication
## Copyright
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).