代币经济是公链最大的应用,但发送代币需要主网币作为矿工费这点很反人类习惯。以太坊上的Erc20代币需要ETH作为矿工费,比特币上的omni代币需要btc作为矿工费,比特币现金上的slp代币需要BCH作为矿工费。这些都很烦人。 有很多人愿意持有usdt稳定币,但不持有比特币和以太坊。我曾经卖过少量的BTC和ETH给人作为矿工费,原价10块钱,卖20块钱。 我们付人民币,支付美元,从来不需要黄金作为矿工费。为什么付usdt-Erc20代币需要用ETH作为矿工费,烦死。有没有办法让支付代币免于主链币矿工费? 公链为什么一定需要矿工费 在链上发送交易,无论是主网币还是链上代币,都需要支付主网矿工费。这主要是为了防止DDoS,试想如果不需要矿工费,一个人生成两个地址,写个脚本无限相互转账,每天产生几亿几亿的交易数据发到链上,整个区块链不得爆掉啊。 发送链上代币能不能默认不使用主链币作为矿工费呢?为什么没有哪条公链会设计成发送代币使用代币本身作为矿工费? 代币是可以随意生成的,如果一个人发了一个代币,它本身没有价值,然后用这个代币无限在链上发交易,这不也把链给搞死了吗? 有没有办法让发代币不需要主链币作为矿工费,而且还能免于DDoS? 以太坊的解决方案 以太坊是最大的代币经济平台了,目前币圈主流的代币都跑在以太坊,以太坊也最迫切需要一个免ETH发代币的解决方案。 其实理论上,以太坊是非常容易解决这个矿工费的问题的。因为以太坊是一个智能合约平台,只需要写一个专门为代币交易支付ETH矿工费的合约即可解决问题。 以太坊分别有一为代币支付ETH矿工费的提案EIP965(https://github.com/ethereum/EIPs/issues/965),还有一个未分配到EIP代号的提案:ERC865(https://github.com/ethereum/EIPs/issues/865) 以太坊解决这个问题的基本思路是这样的: 设计一个智能合约。 往合约里预存一些ETH。 合约设计一个白名单ERC20代币列表。 在白名单内的ERC20代币,用户发送代币交易时调用该合约。(这需要钱包设计好) 用户的交易需要给合约支付一笔所发送的代币作为矿工费。 合约会给用户发送交易时支付一笔ETH矿工费,这样交易就可以被矿工打包了。 本质上以太坊的免矿工费发代币是设计一个合约商店,让用户使用代币换ETH。 但以太坊的这一解决方法一直没有流行,相反,以太坊普遍采用了中心化的解决方案。 中心化解决方案 交易所其实都解决了这个问题,我们在交易所提任何代币都不需要主链币作为矿工费的,交易所直接帮我们扣代币,然后交易所自己会添加主链币作为矿工费。 比特派作为钱包商,也出过帮用户代付矿工费的解决方案。 中心化的解决办法说白了就是用户用代币换中心化公司的主链币,甚至用户可以用人民币来换。 BCH的解决方案 BCH的代币经济系统slp协议现在开始慢慢进入主流了,也需要解决发代币免使用BCH作为矿工费的问题,以提高用户体验。 BCH开发者提出一个叫slp邮资协议的解决方案。(slp-postage-protocol:https://github.com/simpleledger/slp-specifications/blob/master/slp-postage-protocol.md) 使用slp邮资协议发交易的基本构成如下: 用户使用anyonecanpay发送slp交易,交易输入至少两个: Input1:用户需要发送的slp币 Input2:空留一个bch输出,留给邮资协议服务商补齐 Input3:一般邮票金额是固定的,如果用户的交易尺寸比较大,就需要贴多张邮票,就需要空留多个Input给邮资协议服务商贴邮票。 交易输出至少三个: Output1:用户发送的slp币的目标地址 Output2:服务商的收币地址,用户使用slp币支付给邮资协议服务商的邮票 Output3:邮资协议服务商的地址,input2的BCH金额-output3的BCH金额=矿工费。如果有多张邮票,就会有output4这些。 补充一点Anyonecanpay的交易格式知识。 如其名,就是任何人都可以支付的交易。一般交易钱包组装交易时会把所有的输入输出都写好,并把输入的签名写好,然后发送出去。 钱包组装anyonecanpay交易时,允许第一个发送者只组装部分输入并签名和所有输出,并且空缺若输入,或者在脚本上设置满足多少金额的输入后即生效。然后其他钱包在收到这个交易时可以主动添加后续输入并签名,但不能添加输出。然后再广播给矿工打包,矿工可以验证交易是否合法。 有了以上知识就可以描述邮资协议的基本逻辑了: 邮资服务器设立slp代币白名单列表。 在白名单内的slp用户使用anyonecanpay交易格式发送slp代币。 邮资服务器收下一部分代币。 服务器给交易贴邮票,即添加BCH矿工费,追加到用户的交易里。 交易成立,矿工验证并打包。 因为邮资协议是公开的,任何人都可以搭建邮资服务器,但需要钱包端的支持。钱包需要用户能够构建anyonecanpay交易,并且默认添加slp矿工费给邮资服务器。 邮资协议是在2019年末提出的,我只看到面包钱包集成了。但随着slp代币的流行,估计其他钱包也会跟随的。 BTC能能使用邮资协议吗? 邮资协议需要BIP70的支持,BIP70是一个支付协议,细节不用关心了。BTC禁用了BIP70,所以BTC不能使用邮资协议。 BTC生态总体思路是场景收缩,集中于实现去中心化和储值。BTC的一个设计理念就是交易格式越来越少,集中做那些交易尺寸小的交易。比如和本文中提到的anyonecanpay格式相对应的还有一个叫anyonecanspend的交易,BTC就禁用了。 像邮资协议这种把交易搞的更复杂,去适应更多的场景的协议,BTC生态都不怎么爱搞,有人提也得不到支持。 —- 编译者/作者:闪电HSL 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
如何使用代币本身作为矿工费?EIP965和slp邮资协议或可解决
2020-07-24 闪电HSL 来源:区块链网络
LOADING...
相关阅读:
- 浩瀚读币:ETH单边上涨涨幅高大饼2020-08-02
- 古瑞:8.2以太坊在高铁上2020-08-02
- 币圈摘星:8.2比特币以太坊再创新高2020-08-02
- Tether打印了数亿美元的USDT,以转移到Binance和Bitfinex,鲸鱼是否在推高比2020-08-02
- 以太坊的价格跃升至400美元,继续创下两年来的新高。2020-08-02