比特派作为钱包商,也出过帮用户代付矿工费的解决方案。 中心化的解决办法说白了就是用户用代币换中心化公司的主链币,甚至用户可以用人民币来换。 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就禁用了。 (责任编辑:admin) |