-
Notifications
You must be signed in to change notification settings - Fork 5.4k
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
EIP1035: Transaction execution batching and delegation #1035
Comments
I would personally prefer this to be an EVM layer change, rather than contract layer. It feels silly that the person authorizing the transaction has to be the same person paying fees for the transaction. Miners care whether they get fees, they don't care about who they get fees from. Users care about other people not being able to use/spend assets under the control of their private keys, they don't care about how the transaction ends up in a block. I would like to see transactions be two layers, the outer layer is signed by the fee payer and contains The above scheme would allow users to pay for "transaction submission services" off-chain via other mechanisms (e.g., monthly subscription, pre-paid, paid with fiat, add-on benefit to other services, etc.). It would also indirectly enable gas payments in non-eth if batching was supported, as the |
@MicahZoltu the more I think about this proposal the more I see this is the solution for tx batching to replace ERC827 (and ERC1003). Ethereum also can provide default smart contract (0x05?) for batching transactions with the methods like this:
|
This EIP will help a lot in inter-chain development. |
Yay! That would greatly help with off-chain scaling schemes like state channels. |
Strongly related to #1077 by @alexvandesande. Have you considered collaborating on this one @k06a? |
@PhABC thanks, I'll dig into it! |
I agree with @MicahZoltu , I think we should allow any Ethereum transaction to have gas payment delegated, with no need of in contract function. I think this proposal is related to #1228 and #865 . |
If someone is looking for ETH, ERC20 batch sender - feel free to use: |
Is this EIP continuing? I am especially interested in details pertaining to the EVM change described above. It would simplify the creation of a retroactive metatransactions upgrade to all existing tokens and contracts. relevant to EIPs: 1776, 965, 985. |
@AlexeyAkhunov has been pushing recently for changing the transaction protocol so it can evolve over time. It may be worth considering #1035 (comment) in that design. |
@MicahZoltu I stumbled upon this EIP while having similar discussions regarding enabling meta transactions on the Zilliqa blockchain. My overall goal is driving towards subscription-based recurring payments that would drastically benefit from transaction batching. I've linked your comment to justify work breaking out the messaging standard like so. In that regard, I'd like to stay in the loop and contribute as I can to the Ethereum effort. Kudos to you ETH guys for discussing and innovating in the open... Zilliqa really needs an EIP repository. |
what if the ERC20 token already existed,Could implement the feeless contract? if can ,how |
If all it takes is just one public address to delegate the transaction, how is the security maintained ? |
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. |
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. |
If anyone is looking to send ETH, tokens, and NFTs in batches, a good option is OGP Bulk Sender |
eip: EIP1035
title: Transaction execution batching and delegation
author: Anton Bukov (@k06a) [email protected]
discussions-to: [email protected]
status: Draft
type: Core
category: Core
created: 2018-04-25
updated: 2018-04-26
relates: #901
Simple Summary
It will be great to allow trustless delegated execution of the transactions inside EVM. I mean some account can sign
target
, calldata
, accountnonce
, networkchain_id
and pass them to any other, who will be able to perform this call and pay Ethereum fees like this:This also will allow batching/chaining account transactions and many other features. One more use case: sender of any ERC20 tokens can signed necessary call and pass it to receiver, and receiver (exchange?) will be able to pay fees for this transaction.
Abstract
Abstract implementation of
target.authorizedcall(data, account, nonce, chain_id, signature)
method should perform:nonce
of theaccount
to be validchain_id
to be valid for this networksignature
oftarget|data|nonce|chain_id
and extractsigner
signer
is the same asaccount
data
call ontarget
withmsg.sender == account
Motivation
Specification
From solidity side this should looks like function on every smart contract:
Test Cases
Test cases for an implementation are mandatory for EIPs that are affecting consensus changes. Other EIPs can choose to include links to test cases if applicable.
Implementation
This is working example: https://github.com/bitclave/Feeless
Complete code:
Usage:
Signing call data:
Delegated execution by any other account:
The text was updated successfully, but these errors were encountered: