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

EIP-1837 Explicit transaction fees #1837

Closed
k06a opened this issue Mar 9, 2019 · 13 comments
Closed

EIP-1837 Explicit transaction fees #1837

k06a opened this issue Mar 9, 2019 · 13 comments
Labels

Comments

@k06a
Copy link
Contributor

k06a commented Mar 9, 2019

EIP: 1837
Title: Explicit transaction fees
Author: CryptoManiacs team: Anton Bukov <k06aaa@gmail.com> and Sergej Kunz <info@deacix.de>
Type: Core
Category: Core
Created: 2019-03-09
Updated: 2019-03-09

This EIP was started as part of ETHParis 2019 hackathon project: https://devpost.com/software/qrtoken

Simple Summary

Let's allow Ethereum users to pay fees over smart contract by sending funds directly to miner via block.coinbase during zero-gas-price transaction execution.

Abstract

We would like to propose a safe way for existing Ethereum nodes to consider transactions with zero gas price to be included in blocks due to their ability to pay fees directly to miners over block.coinbase. This would allow users to pay fees in any desired token, using on-chain exchanges (Bancor Network, Kyber Network, Uniswap, 0x). And would allows IoT devices to avoid problems with topping up their ETH balances and pay fees from the managing smart contract.

Motivation

  1. IoT devices without ETH balance interacting with the managing smart contracts
  2. Ability to send tokens without having any ether, involving paying fees in the token or by using any on-chain exchange

Specification

Ethereum miners should consider zero gas price transactions as one's possible to pay directly to them over smart contract. And since EVM checks of this payments are much harder than cheks gas_limit * gas_price <= sender_balance we have to propose several cases to protect from a cheap flood, so we found 2 approaches at that moment:

  1. On-chain registration of wallets which would like to send this kind of transactions and blacklists of these wallets on nodes, which tries to send free transactions without any payments.

  2. Off-chain HashCash of transactions by tweaking their signatures until Tx with enough number of leading zero bits in hash found.

@k06a k06a changed the title Explicit transaction fees EIP1837 Explicit transaction fees Mar 9, 2019
@k06a k06a changed the title EIP1837 Explicit transaction fees EIP-1837 Explicit transaction fees Mar 9, 2019
@deacix
Copy link

deacix commented Mar 9, 2019

Here we go :)

@yoav-tabookey
Copy link
Contributor

Consider using the gas stations network, which solves the same problem without requiring miners to learn new skills. See EIP 1613 or Google 1-800-ethereum. Already deployed on ropsten if you want to use it during the hackathon.

@crazyrabbitLTC
Copy link

I second @yoav-tabookey suggestion, gas stations network can handle this use case pretty effectively.

@radotzki
Copy link

radotzki commented Mar 9, 2019

And - you can use Portis and get an out-of-the-box solution with the gas stations network:
https://docs.portis.io/#/gas-relay

@k06a
Copy link
Contributor Author

k06a commented Mar 9, 2019

@yoav-tabookey @crazyrabbitLTC @radotzki Portis gas station looks working solution but requires smart contracts adoption. I still prefer to modify nodes software to make it possible for every Etheruem user.

@deacix
Copy link

deacix commented Mar 12, 2019

I agree with @k06a! The miner client needs only small changes in the transaction sort function, to allow to pay the fee from smart contract.

@gluk64
Copy link

gluk64 commented Mar 15, 2019

The necessity to adjust smart contracts is a barrier for adoption. @radotzki, you can onboard more users in Portis if it's not application-specific.

@k06a you should talk to the mining pools first. They are the only people who you need to convince and the number is limited.

@deacix
Copy link

deacix commented Mar 15, 2019

@gluk64 Thank you for the feedback! May you can provide some contacts to the mining pools?

@snjax
Copy link

snjax commented Mar 15, 2019

I think HashCash will not work in general case, because GPU or ASIC miners of attackers will have much more power to produce the hashes.

But if we make hashcash mining process like ethereum mining and bring it to 3rd party (so, there are two reward transfers inside the block: one transfer for block.coinbase, another transfer to hashcash provider address, which is set with additional blinding parameter to get the hash), it seem to be viable.

@k06a
Copy link
Contributor Author

k06a commented Mar 15, 2019

@snjax but I think ASIC miners will have not enough incentive to block valid gas-less transactions. Are you talking about generalizing transaction mining by 3rd parties? This would allow wallet owners to mine their client's transactions with some pools cooperation and earn on this.

@snjax
Copy link

snjax commented Mar 15, 2019

@k06a yes, I said about generalizing transaction mining.

Also, there is another way how to provide gas-less transactions: wallet contracts.
dex can setup such contracts to their users. After that, the user can sign some instructions for such a contract and send it to somebody who executes the instructions at the contract.

@github-actions
Copy link

There has been no activity on this issue for two months. It will be closed in a week if no further activity occurs. If you would like to move this EIP forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review.

@github-actions github-actions bot added the stale label Nov 20, 2021
@github-actions
Copy link

github-actions bot commented Dec 4, 2021

This issue was closed due to inactivity. If you are still pursuing it, feel free to reopen it and respond to any feedback or request a review in a comment.

@github-actions github-actions bot closed this as completed Dec 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants