DAPP:只需要支付0.5元就可以撤回链上交易?这给DApp带来了无尽的麻烦

在生活中,防不胜防。

子们牢牢抓住受害者的心理活动,假冒公检法的身份来突破受害者的心理防线,再罗织一些罪名就能让受害者乖乖交出自己的钱财,等受害者反应过来,子们早已逃之夭夭。

作为一种应对策略,各大银行纷纷给出了转账次日到账,期间可撤回的解决方案,给用户反悔的余地。这种操作对于中心化的银行来说并非难事,而在去中心化的区块链上能做到么?

乍一想,在区块链上反悔撤回交易就像是天方夜谭,但结果却是可以的!就像鲁迅先生所说:世上本没有路,走的人多了,也便成了路。

正是许多用户有着在区块链上撤销交易的需求,所以慢慢地出现了一种通用的撤回方案,但是,这种给用户行的方便却给DApp和DApp开发者带来了无尽的麻烦。

掌柜调查署 | Bondly CEO Brandon:我们的产品能让用户只需不到五分钟就把任何一种数字产品代币化:在今日举行的《掌柜调查署 | Bondly重新定义“价值”与“交易”》直播中,针对“传统托管市场存在哪些问题?Bondly如何改变市场现状?”的问题,Bondly CEO Brandon表示,通过我个人经验以及多年体验线上商品和服务交易的经验,我注意到传统托管服务成本高昂且效率低下。当卖方与买方就价格达成协议之后,中间商会收取10%的高额费用,而且卖方优势可能需要等待10多天才能收到货款。我们想让每一个用户都能使用Bondly的产品进入自己的数字货币交易市场,

销售数字商品和服务的市场潜在价值高达4万亿美元,涉及社交媒体帐户、网站域名,数字业务等。理论上来说,买卖双方应该自己掌握交易权力。所以我问自己,为什么现在买卖双方的交易能力会受到限制?如果交易不是由用户执行的,那么一定是交易过程存在问题。就在上个月,一个中国抖音账户以超过100万美元的价格售出。去年11月,一个Instagram账户以超过8400万美元的价格售出。这个市场只是刚刚开始增长,但是目前还没有解决方案来处理这些资产的支付和转移。我们的产品能让用户只需不到五分钟就把任何一种数字产品代币化,市场数据库就能对他们的产品进行估值,并上架需要销售的产品。卖方可以直接从销售中获得收益,无需向传统托管服务提供商支付各种费用,也避免了其他各种麻烦。[2021/1/5 16:30:20]

你开发的DApp是否向用户展示了不正确的信息?不要急着否认,因为很可能会出现这样的情况,而且是在你完全不知情的前提下。

Uniswap创始人:Uniswap每天只需消耗42万美元交易费:Uniswap创始人Hayden Adams发推表示:Uniswap每天消耗42万美元交易费,这样一来我们每年只需支付1.5亿美元的汽油费。这让以太坊二层扩容解决方案的重要性变得非常清楚。[2020/12/11 14:53:03]

自今年年初以来,有技术团队对主流的DApp进行了多达30余次的交易可用性审计,其中每次审计都涉及50多个定制化的量化指标和定性评估。然而出乎意料的是:我们还没有碰到哪个DApp可以很好地处理交易被取消的场景。交易本是每个DApp的重中之重,可为什么会出现这样的现象呢?

在我们深入研究交易被取消带来的影响以及为什么大多数的DApp都没有解决这个问题之前,你需要了解什么是被取消了的交易。

什么是被取消了的交易?

在以太坊上,取消一笔交易的操作就是用一笔新的交易覆盖即将被处理的这笔交易。需要注意的一点是,这种取消交易的机制并不是以太坊的正式标准,而是人们约定俗成的惯例。

动态 | 拥有绝大多数莱特币只需要189个地址:据News.bitcoin消息,加密研究公司Clovr发布一项对四种主要加密货币(比特币,以太币,比特币现金和莱特币)和140,000个加密地址的新研究,发现只需很少的帐户即可形成许多代币的所有权。在四大加密货币中,BTC的财富不平等程度最低,其次是BCH。莱特币的财富分配可能是最不平等的,十个最富有的莱特币账户拥有莱特币所有财富的十分之一,拥有绝大多数LTC只需要189个地址。从2018年到2019年,以太坊的财富不平等增加了13%。研究指出,代币的市值越高,与其他代币相比,财富分配越有可能平均分配。[2019/12/19]

新的交易与被取消了的交易相比,通常都具有以下几个特征:

拥有一个相同的随机数,

由同一个钱包地址发起,

都被发送到一个外部帐户中,

分析 | 只需在典型投资组合中增加10%比特币就可以获得更高收益:数据研究机构 TradeBlock 在研究投资组合收益率时发现,只要在典型的投资组合中增加 10% 的比特币就可以在 2019 年获得更高的收益,但增加了风险和波动率。TradeBlock 采用的对比组是典型投资组合,包含 60% 的股票和 40% 的债券,而增加比特币配置的组合包含55%股票、35%债券和10%比特币。该对比的初始投资额为1000美元,在接近2019年底,拥有比特币的资产组合收益率超过了典型投资组合。夏普比例是衡量风险调整后的收益率,比率越高说明该资产可以在风险更小的情况下获得更高的收益,典型投资组合的夏普比例为0.66,而增加比特币配置的组合为0.46。[2019/12/18]

交易的燃料费用至少要高出10%,

但是交易的金额为0,

这笔新的交易在原始交易被区块链确认之前由用户签名并提交。

俄罗斯首都莫斯科某交易所,只需出示身份证,就可以用现金进行比特币交易:据Bitcoin.com报道,俄罗斯首都莫斯科某交易所,只需出示身份证,就可以用现金进行比特币交易,此乃首都首例。据悉,俄罗斯当局并未明确数字货币的监管规则,业界对此交易所做法有分歧,但此交易所仍在正常营业。[2018/4/5]

这种机制为什么会奏效呢?由于矿工会优先处理燃料费用更高的交易,因此在这笔新的交易被确认之后,矿工们才会处理那笔将要被取消的交易,即使那笔交易更早进入到矿工们存放未处理交易信息的交易池中。

句话说,取消交易的机制有点像是一种概率的游戏。

如何取消一笔交易?

大多数以太坊钱包都可以帮你取消交易。就比如说,在基于浏览器插件的以太坊轻钱包MetaMask中,你可以这样来取消一笔交易:首先先找到这笔待处理的交易,点进去显示交易的详细信息,然后单击“取消交易”按钮。整个操作如下所示:

如何在MetaMask中取消交易

图中的PENDING表示交易正在处理中,点击交易详情,其中的Cancel按钮表示取消交易。弹出的对话框说明:取消这笔交易需要支付0.08美元的燃料费用。在这里点击取消交易并不能保证你原始提交的交易100%取消成功。但如果取消成功了你需要支付上述的燃料费用,要不要试试?

虽然说这个取消交易的功能可能看起来有些废柴,但事实证明它是用户在使用那些功能复杂的DApp时必不可少的一个工具,因为这些DApp中的用户往往习惯于仔细审查自己的交易并主动管理燃料成本。

就这么简单直接?

并不是这样的!

在取消交易时存在一个致命的问题:你的DApp。当用户参与到你开发的DApp中并进行交易时,用户的取消交易操作只发生在用户和他的数字钱包之间,也就是说,在这个环节中你的DApp完全没有参与。

如何识别一笔被取消了的交易?

在知晓了被取消交易的特征之后,你是否能在下图的第四笔和第五笔交易中发现些什么?

被取消了的交易示例

在理想的情况下,第五笔交易会覆盖第四笔交易,也就是说第四笔交易将会被取消。

第四笔和第五笔交易的随机数是相同的,而且第五笔交易:

缴纳了更多的燃料费用。

交易的金额为0。

具有与前一笔交易不同的时间戳。

具有与前一笔交易不同的交易哈希值。

前三项是取消交易机制的核心,而第四项对于DApp和DApp开发者来说都是一个棘手的问题。

被取消了的交易,将如何影响DApp的用户体验?

由于原始的交易和之后覆盖它的新交易具有不同的哈希值,而且你开发的DApp也没有参与到这笔新交易的创建过程中,所以你的DApp并没有什么方法来与这笔新交易产生联系。

通常情况下,你的DApp会认为原始的交易正在被处理,并一直向用户显示处理中的状态,这种说法有一些生硬,接下来我们用一个例子来说明这到底是怎么一回事,下面是我们团队最近在审计DApp时发现的一个例子:

图中的第一笔交易已经被取消了

但是DApp并不知道,还是将它显示为“处理中”

事实上,在第一笔交易已经被矿工加入交易池中待处理时,第二笔交易捷足先登,覆盖并取代了它。

由于DApp并没有与第二笔交易建立联系的方法,因而DApp永远也不会知道第一笔交易的状态是被确认了还是失败了,相反的是,DApp只会显示第一笔交易正在处理中。

随着以太坊网络的发展,取消交易的操作变得越来越普遍。所以在这里我们强烈建议所有的DApp开发者都构建出可以处理这种情况的前端功能。

如果你使用的DApp可以很好地处理交易被取消的问题,欢迎在文末留言告诉我们!

来源|hackernoon

编译|?Guoxi

责编?|?Carol

出品|区块链大本营

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

[0:0ms0-0:986ms