LocalMonero will be winding down
- Effective immediately, all new signups and ad postings are disabled;
- On May 14th, 2024, new trades will be disabled as well;
- After November 7th, 2024, the website will be taken down. Please reclaim any funds from your arbitration bond wallet prior to that date, otherwise the funds may be considered abandoned/forfeited.
加密货币里面的output,中文译作输出,这个概念到底什么意思,又为什么门罗币转账后余额显示错误要等待二十分钟
像其它加密货币一样,门罗币使用output作为资金核算的手段,中文中output经常被直译为输出,本文中输出就是output,output就是输出.很多精通加密货币的用户可能已经听说过这个术语,但是并不一定明白它的意思和工作方式. 正如我们在另一篇关于环形签名的文章中所探讨的那样,output是区块链上交易双方实际交换的单位. 类似于美元的钞票,但是金额不是固定的面额,可以把output理解成不同面额的钞票.
让我们举几个现实生活的例子帮助大家理解区块链的output和转账逻辑,假设你工作的薪水为每小时16美元,你工作一小时后,老板给你支付这16美元的报酬,分别由一张一美元的钞票,一张五美元的钞票和一张十美元的钞票, 你收到了16美元,但钱包里有3张不同的钞票组成.如果你想向某人支付6美元,则可以使用5美元和1美元,或者钱包里的10美元,让对方找零4美元,但是如果你想向某人支付8美元,则只能使用10美元,然后获得2美元的找零. 最后一种情况,如果你想付给某人14美元,则必须使用这三张钞票,并且会收到2美元的找零,但是这个过程中,当你交出这三张钞票,并且对方还没有给你找零时,钱包那时候没有钱,直到把找零放回钱包,钱包里才会显示2美元.
门罗币的工作与此类似. 假设你经营一家商店,销售了三个不同的商品. 假设销售收入分别为1.5 XMR,2.25 XMR和5.25 XMR,总计9 XMR,但是你的钱包中的9xmr,其实是这三个面额不用的门罗币组成的. 这时候再假设一种情况,你现在要向某人支付3 XMR. 那么你有两种方法,一个是可以把钱包里面额为5.25 XMR的门罗币给他,然后他给你找零1.75 XMR,也可以将钱包里的1.5XMR和2.25 XMR的output合并给他,然后他找给你的0.75 XMR.
但是,一旦你发送交易,你所使用的那个output将被置于锁定状态,这意味着在你收回找零前它们是不可使用的,这时候你钱包里的余额也是显示不准确的.门罗币主网协议层会在10次确认后,也就是现实生活里大约20分钟后解锁资金,也就是退还你的找零. 就像一旦您将百元大钞票从钱包中递给收银员一样,你将无法再次使用这张钞票,直到你从收银员那里收到他找给你的零钱,你钱包的余额才会正常,你也才能再次支付下一单.
让我们回到向某人发送3 XMR的例子,假如你给了对方5.25 XMR输出. 现在要等20分钟等他给你找零回来2.25xmr,在主网确认前,你都无法使用它,钱包余额这时候也是不准的. 但是等待找零的这个过程中,你仍然可以使用1.5 XMR和2.25 XMR的输出,因为这些输出还在你的钱包里. 再用美元的例子重复一遍这个故事,你钱包里有三张钞票,面额1元,5元,10元,也就是说你一共有16元,如果你像上文举例中那样向某人支付了8元,理论上16元减去8元,还剩8元可以继续买东西,可在支付的过程里,你只能把你的10元钞票给对方,假设店员找零钱的时间要等20分钟,那么这20分钟里,你的钱包余额只有1元和5元可以用,也就是6元,而不是8元,直到找零结束后,钱包才能恢复正常余额,但在等待找零的过程里,你仍可以用钱包里没花的1元和5元钞票买东西. 门罗币和其它加密货币的output,和上面的纸币同样的原理.
对于新的门罗币用户而言,这点通常让人困惑. 假设某个用户可能在钱包中只有一个来自交易所或朋友的输出. 假设此输出金额为20 XMR.他们的钱包里没有其他输出.他们现在想向他们最喜欢的两个慈善机构捐款.当他们将5 XMR发送给第一个慈善机构,然后发现钱包余额不正确,虽然理论上他们手里还剩15个 XMR,但他们无法立即转账另一笔捐赠给第二个慈善机构. 读者到这里可能已经猜到了,这是因为他的15 XMR被锁定了,换句话说,他钱包里的20元花了5元,可剩下的15元找零要20分钟以后才到账,除非找零被退回,否则无法使用. 反之,他们才能够发送第二笔转账.
这里再罗嗦一遍,假如他钱包里的20xmr不是由一个输出组成的,而是多个output,例如两个面额10 XMR输出,他就不会有这个问题. 他将能够捐了5个XMR后,无需等待,马上捐第二个,即便第一次捐赠的找零要20分钟以后才能解锁,但是钱包里的第二次捐赠可以使用另一个10个XMR 的output完成.这里译者额外举一个例子,想象一下,你有20元去买早点,你花了5元买包子,理论上你有15元可以继续去买煎饼果子,可你的20元是一张面额为20元的纸币组成的,包子店老板太忙要20分钟之后给你找钱,这个过程里,你就不能去买煎饼果子,可如果你钱包里的20元,是由两个10元组成的,那么你花5元买包子,即便老板找钱很慢,可你钱包里还有另一张10元,可以去买煎饼果子无需等待.所以output,中文里面的输出,不应该理解成金额,而是这里有不同面额的纸币.
一些加密货币钱包具有被称为output管理的功能,该功能不光向用户显示其当前拥有的余额,还展示了这些余额是由哪些输出组成的,该钱包还允许他们选择在支付的时候,选择使用钱包里的哪些输出.
到目前为止,门罗币的 GUI钱包会自动为用户选择输出,因为用户自己选择的输出通常会引起混乱,或者在某些情况下会损害隐私. 但是,正在开发中的钱包,例如新的Feather钱包项目,将包含这些输出管理功能.
说了好半天发送方的那部分了,其实在接收端也发生了一些令人着迷的事情. 回到之前的例子,我们向某人发送3 XMR并在交易中使用1.5 XMR和2.25 XMR的输出.接收方并不会接收到1.5 XMR和2.25 XMR的两个输出, 而是他们会直接收到一个3 XMR输出.
在后台,门罗币协议层将用于支付的所有输出合并,只向接收方提供付款额的一个输出,然后将另一个零钱输出发送回发送方. 因此,无论发送人是否使用两个,三个或十个输出来发送转账,收款人都是收到一个output,同时发送者也将收到一个作为找零的一个输出.
我们希望这篇文章可以消除一些有关输出概念的混乱 概述协议层内部会计的工作方式,以及澄清普通用户在遇到锁定资金时面临的疑惑.在另一篇文章中,我们将探讨如何管理你的输出,以最大程度地减少在发送另一笔交易之前必须等待解锁资金的时间.