[Ethereum] Gas Station Network (GSN) eip-1613 与 Gas Relay Network (GRN) eip-1077

在 Ethereum dapp 中,任何涉及状态改动的交易都需要消耗 Gas,这限制了很多没有钱包或者 ETH 的用户对 dapp 的采用。
理念
让非以太用户能够访问智能合约 (如dapps),允许合约接受“接听来电”,即为来电付费。
让合约在可公开访问的渠道上“监听”(例如web URL)。鼓励节点运行 “加油站” 来促进这一点。不需要网络更改,只需最小的契约更改。
概述
目前,与dapps通信需要支付 ETH 的 Gas 费用,这限制了 Ethereum 用户对 dapp 的使用。
因此,合约所有者可能希望支付 Gas 以增加用户获取,或者让他们的用户用法定货币支付 Gas。
或者,第三方可能希望补贴某些合约的 Gas 成本。
类似 EIP-1077 中描述的解决方案可以允许来自没有 ETH 的地址的事务(为合约调用转发 Gas)。
加油站网络是遵循 EIP-1077 的,它通过鼓励节点运行加油站来解决这个问题,在加油站,没有 Gas 的交易可以“增加燃料”。
该网络由一个被所有参与 dapp 的合约所信任的单一公共合约和一个分散的中继节点(加油站)网络组成,这些节点被激励去监听 web 或 whisper 等非以太接口,为交易付费,并从该合约中获得补偿。
任何人都可以验证受信任的契约,否则系统就是不可信的。
只要有至少一家诚实的加油站,加油站就不能审查交易。
破坏这一制度的企图可以被证明是连锁的,违反者将受到惩罚。
EIP-1613 动机
1. 提高用户对合约的采用
消除用户获取 ETH 的麻烦。交易仍由 ETH 支付,但费用可由 dapp 承担或由用户通过其他方式支付。
消除与区块链直接交互的需要,同时保持分散和审查阻力。契约可以在多个公共通道上“侦听”,用户可以通过通用协议与契约进行交互,即使在严格的环境中,通常也允许使用通用协议。
2. Ethereum 节点在不需要采矿设备的情况下获得收入来源。整个网络都受益于拥有更多的节点。
3. 不需要修改协议。加油站网络通过智能协议自组织,dapps 通过实现接口与网络交互。
具体
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1613.md#specification
原理
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1613.md#rationale
向后兼容性
加油站网络是作为智能契约和外部实体实现的,不需要任何网络更改。
Dapp 添加加油站将保持向后兼容已有的应用和用户。添加的方法应用于现有的方法之上,因此不需要对现有的应用程序进行更改。
实现 GSN 兼容的合约
https://docs.openzeppelin.com/contracts/2.x/gsn
Refer:Gas Station Network
Link:https://www.cnblogs.com/farwish/p/12532659.html
[Ethereum] Gas Station Network (GSN) eip-1613 与 Gas Relay Network (GRN) eip-1077的更多相关文章
- [LeetCode] Gas Station 加油站问题
There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. You ...
- PAT 1072. Gas Station (30)
A gas station has to be built at such a location that the minimum distance between the station and a ...
- Leetcode 134 Gas Station
There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. You ...
- 【leetcode】Gas Station
Gas Station There are N gas stations along a circular route, where the amount of gas at station i is ...
- [LeetCode] Gas Station
Recording my thought on the go might be fun when I check back later, so this kinda blog has no inten ...
- 20. Candy && Gas Station
Candy There are N children standing in a line. Each child is assigned a rating value. You are giving ...
- LeetCode——Gas Station
There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. You ...
- Gas Station
Description: There are N gas stations along a circular route, where the amount of gas at station i i ...
- Gas Station [LeetCode]
There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. You ...
- 【LeetCode OJ】Gas Station
Problem link: http://oj.leetcode.com/problems/gas-station/ We can solve this problem by following al ...
随机推荐
- 记录--7个Js async/await高级用法
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 7个Js async/await高级用法 JavaScript的异步编程已经从回调(Callback)演进到Promise,再到如今广泛使 ...
- 任何样式,javascript都可以操作,让你所向披靡
前言 习惯了在 css 文件里面编写样式,其实JavaScript 的 CSS对象模型也提供了强大的样式操作能力, 那就随文章一起看看,有多少能力是你不知道的吧. 样式来源 客从八方来, 样式呢, 样 ...
- 这里有你不得不了解的Java 11版本特性说明
「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...
- C# 强大的网页处理类NSoup
地址: https://github.com/GeReV/NSoup using System; using System.Collections.Generic; using System.Comp ...
- redis安装启动脚本
#!/bin/bash # sudo yum install -y gcc # sudo yum install -y ruby build-essential BASE=/usr/local ps ...
- Java解析json数据(fastjson2)
Json数据 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.它以易于阅读和编写的方式来表示结构化数据,常用于在不同系统之间进行数据交互和传输. JSON使 ...
- Advanced .Net Debugging 6:程序集加载器
一.简介 这是我的<Advanced .Net Debugging>这个系列的第六篇文章.这篇文章的内容是原书的第二部分的[调试实战]的第四章.这章主要讲的是程序集加载器,比如:CLR 加 ...
- 实际项目中如何使用Git做分支管理
前言 Git是一种强大的分布式版本控制系统,在实际项目开发中使用Git进行分支管理是非常常见的做法,因为它可以帮助团队高效的协作和管理项目的不同版本,今天我们来讲讲在实际项目中最常用的Git分支管理策 ...
- #线性基,差分,线段树#洛谷 5607 [Ynoi2013] 无力回天 NOI2017
题目 分析 考虑区间修改比较难操作,将数组差分一下,转化成两次单点修改. 这样查询前缀的异或值就是该位置的异或值,线性基可以用线段树维护, 那么取出 \((l,r]\) 所在的线性基,再将 \(a[l ...
- OpenHarmony创新赛人气投票活动,最佳人气作品由你来定!
12月1日至12月15日 十大入围作品线上投票激战正酣 最佳人气作品,由你来定! 投票链接:https://forums.openharmony.cn/forum.php?mod=viewth ...