mirror of https://github.com/status-im/swarms.git
116 lines
4.6 KiB
Markdown
116 lines
4.6 KiB
Markdown
---
|
|
id: 150-gas-abstraction
|
|
title: Gas Abstraction
|
|
status: Draft
|
|
created: 2018-02-01
|
|
category: core
|
|
lead-contributor: 3esmit
|
|
contributors:
|
|
- 3esmit
|
|
- richard-ramos
|
|
- iurimatias
|
|
- alexvandesande
|
|
exit-criteria: no
|
|
success-metrics: yes
|
|
clear-roles: yes
|
|
future-iterations: no
|
|
---
|
|
|
|
# Gas Abstraction
|
|
|
|
## Preamble
|
|
|
|
Idea: 150-gas-abstraction
|
|
Title: Gas Abstraction
|
|
Status: Draft
|
|
Created: 2018-02-01
|
|
Requires: 145-identity
|
|
Replaces: 073-economic-abstraction
|
|
|
|
## 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 Identity balance of selected token to refund proportional used gas to a incentivezed ETH owner to include that message in a transction.
|
|
|
|
## Swarm Participants
|
|
|
|
- Lead Contributor: Ricardo Guilherme Schmidt
|
|
- Contributor: Richard Ramos
|
|
- Contributor: Iuri Matias
|
|
- UX (Mist): Alexandre Van de Sande
|
|
- UX (Status): (help needed)
|
|
|
|
|
|
## 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.
|
|
- Configuration for tokens accepted and types of contract willing to interact with.
|
|
Important as fundamental pivot actor.
|
|
|
|
Identity Gas Relay adaptor:
|
|
- include smart contract terms for accepting ethereum signed messages representing authorization to call by/for Identity owner offering a gas price refund for relayer.
|
|
- Identity UI should allow user to choose what token it wants to use as gas price.
|
|
Important for gas abstraction of call.
|
|
|
|
SNTController Gas Relay adaptor:
|
|
- include smart contract terms for accepting ethereum signed messages to call `IdentityGasRelayFactory` and for moving the tokens from there using SNT controller contract.
|
|
- a "wizard" UI would make the calls to create a Identity and send user SNT to Identity (so it can be used as ether gas).
|
|
Important for opt-in gas abstraction without ever holding ether.
|
|
|
|
|
|
### Requirements & Dependancies
|
|
|
|
Idea [145-identity](https://github.com/status-im/ideas/pull/145) is important to seamless and safe integration of gas abstraction for any type of call, so identity can become `msg.sender` for other contracts.
|
|
|
|
### Minimum Viable Product
|
|
|
|
Goal Date: 2018-05-15
|
|
Description:
|
|
- Users can use Identity paying gasPrice in any token.
|
|
- Users can create Identity using SNTController and paying with SNT.
|
|
- Users can earn tokens running a node that include other's messages
|
|
|
|
#### Identity Gas RelayIdentity UX should allow user to choose what token it wants to use as gas price.
|
|
|
|
|
|
Goal Date: 2018-04-20
|
|
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: 2018-04-27
|
|
Description:
|
|
- Gas Relay Node implements watching messages for SNTController
|
|
- User interface for creating Identity (pay gas in SNT)
|
|
- Moving SNT to other address from SNTController terms (paying gas in SNT)
|
|
|
|
#### UX Integration
|
|
|
|
Goal Date: 2018-05-15
|
|
Description:
|
|
- User can create Identity paying in SNT.
|
|
- User can select differnt tokens in gasPrice when using Identity.
|
|
|
|
## 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/).
|