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

Open
k06a opened this Issue Mar 9, 2019 · 11 comments

Comments

Projects
None yet
7 participants
@k06a
Copy link

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

This comment has been minimized.

Copy link

deacix commented Mar 9, 2019

Here we go :)

@yoav-tabookey

This comment has been minimized.

Copy link
Contributor

yoav-tabookey commented Mar 9, 2019

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

This comment has been minimized.

Copy link

crazyrabbitLTC commented Mar 9, 2019

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

@radotzki

This comment has been minimized.

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

This comment has been minimized.

Copy link
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

This comment has been minimized.

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

This comment has been minimized.

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

This comment has been minimized.

Copy link

deacix commented Mar 15, 2019

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

@snjax

This comment has been minimized.

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

This comment has been minimized.

Copy link
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

This comment has been minimized.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.