Share Dialog
Share Dialog
在Mina中,付款在被认为是经过验证和完成之前要经过几个步骤。本文件旨在通过一个简化的概述来了解单笔付款的情况,以帮助用户了解一些关于Mina付款的工作原理。这不是一个全面的技术概述,而是为用户提供一个简化的操作指南。对于希望了解代码库的开发人员来说,更详细的技术概述,请查看支付的技术生命周期。
注意:Mina使用八卦协议(gossip protocol),以确保信息能及时可靠地传送给网络的所有其他成员。
支付是一种交易类型,要求将价值从一个账户转移到另一个账户,以及发送方愿意为支付通过而支付的相关费用。
让我们来看看这样一个场景:发送方Bob想给接收方Alice发送一些Mina。
网络的任何成员都可以创建一个付款并与Mina网络分享。付款用私钥进行加密签名,以便验证发件人的账户。然后,它被发送到网络上的对等人那里进行处理。对等体收到付款后,将存在于他们的本地交易池中,该交易池是该等体在网络上听到的所有交易的内存存储器。
在网络上为一个给定的时间段选择一个区块生产者节点。当前活跃的生产者根据支付费用选择飞行中的付款,并将它们放在一个称为过渡块的列表中进行处理。区块生产者通过构建这些区块赚取Mina。生产者生成一个SNARK,定义与前一个区块相比,过渡区块的结构(但还没有验证这些新的支付)。生产者将这些新信息传送给snark工人进行处理。
网络上的Snark工作者节点开始对新过渡区块的每一步进行Snark计算。这些是每笔支付的单独证明,然后是相邻支付的合并证明。最终,所有的支付都被验证了。斯纳克工人可以通过生成这些证明来赚取货币,由区块生产商从他们的区块奖励中支付。这些证明在网络上被传送出去。
一旦整个区块被证明,区块生产者将发送一个过渡区块的确认。然后网络上的成员节点将变化应用到他们的本地账户余额,以反映这些变化。
随着每一个后续区块的出现,收件人有更大程度的信心,认为付款实际上已经完成,而且网络对该区块有共识。然而,像大多数区块链一样,据说付款在一定数量的区块后被确认,也被称为交易最终性。
在比特币网络中,一个交易在6个区块(60分钟)后被确认,假设攻击者不太可能积累超过10%的速率。
槽(slot)的持续时间为3分钟,并假设90%的诚实赌注,下表显示了区块的最终结果,产生相应的区块数量所需的平均时间,以及支付将被确认的信心。
Finality (in blocks) Average time for finality Finality confidence (%) 8 33 mins 98.6709 15 60 mins 99.9231 23 1hr 32mins 99.9965 30 2hrs 99.9998 38 2hrs 32mins 100
平均时间是根据决定每个纪元填充的槽数的共识常数计算的。目前,这个常数被设置为75%。
建议交易确认的等待时间为15个区块,这为交易不会被逆转提供了99.9%的信心。
有几个原因导致与对等节点共享的交易可能不被接受。
该交易从根本上说是无效的。意味着发件人的账户不存在,没有足够的资金,签名与账户不匹配,或者交易中的nonce没有被递增。
网络中可能存在敌对节点,它们串通一气,拒绝为网络中的特定发件人提供服务。然而,这种行为是非常不可取的,一个诚实的节点就足以防止这个问题。
如果一个交易是有效的,而且网络是诚实的,那么在所有的可能性中,一个交易将进入一个区块。然而,有一种情况是,交易可能会被从交易池中丢掉:
如果交易池达到了它的容量,或 max_txpool_size,那么它将驱逐池中费用最低的交易,导致它从内存中被抛弃。如果发生这种情况,发件人将需要根据当时的市场动态,以更高的费用重新发送该交易。
原文:
https://docs.minaprotocol.com/en/architecture/lifecycle-payment
在Mina中,付款在被认为是经过验证和完成之前要经过几个步骤。本文件旨在通过一个简化的概述来了解单笔付款的情况,以帮助用户了解一些关于Mina付款的工作原理。这不是一个全面的技术概述,而是为用户提供一个简化的操作指南。对于希望了解代码库的开发人员来说,更详细的技术概述,请查看支付的技术生命周期。
注意:Mina使用八卦协议(gossip protocol),以确保信息能及时可靠地传送给网络的所有其他成员。
支付是一种交易类型,要求将价值从一个账户转移到另一个账户,以及发送方愿意为支付通过而支付的相关费用。
让我们来看看这样一个场景:发送方Bob想给接收方Alice发送一些Mina。
网络的任何成员都可以创建一个付款并与Mina网络分享。付款用私钥进行加密签名,以便验证发件人的账户。然后,它被发送到网络上的对等人那里进行处理。对等体收到付款后,将存在于他们的本地交易池中,该交易池是该等体在网络上听到的所有交易的内存存储器。
在网络上为一个给定的时间段选择一个区块生产者节点。当前活跃的生产者根据支付费用选择飞行中的付款,并将它们放在一个称为过渡块的列表中进行处理。区块生产者通过构建这些区块赚取Mina。生产者生成一个SNARK,定义与前一个区块相比,过渡区块的结构(但还没有验证这些新的支付)。生产者将这些新信息传送给snark工人进行处理。
网络上的Snark工作者节点开始对新过渡区块的每一步进行Snark计算。这些是每笔支付的单独证明,然后是相邻支付的合并证明。最终,所有的支付都被验证了。斯纳克工人可以通过生成这些证明来赚取货币,由区块生产商从他们的区块奖励中支付。这些证明在网络上被传送出去。
一旦整个区块被证明,区块生产者将发送一个过渡区块的确认。然后网络上的成员节点将变化应用到他们的本地账户余额,以反映这些变化。
随着每一个后续区块的出现,收件人有更大程度的信心,认为付款实际上已经完成,而且网络对该区块有共识。然而,像大多数区块链一样,据说付款在一定数量的区块后被确认,也被称为交易最终性。
在比特币网络中,一个交易在6个区块(60分钟)后被确认,假设攻击者不太可能积累超过10%的速率。
槽(slot)的持续时间为3分钟,并假设90%的诚实赌注,下表显示了区块的最终结果,产生相应的区块数量所需的平均时间,以及支付将被确认的信心。
Finality (in blocks) Average time for finality Finality confidence (%) 8 33 mins 98.6709 15 60 mins 99.9231 23 1hr 32mins 99.9965 30 2hrs 99.9998 38 2hrs 32mins 100
平均时间是根据决定每个纪元填充的槽数的共识常数计算的。目前,这个常数被设置为75%。
建议交易确认的等待时间为15个区块,这为交易不会被逆转提供了99.9%的信心。
有几个原因导致与对等节点共享的交易可能不被接受。
该交易从根本上说是无效的。意味着发件人的账户不存在,没有足够的资金,签名与账户不匹配,或者交易中的nonce没有被递增。
网络中可能存在敌对节点,它们串通一气,拒绝为网络中的特定发件人提供服务。然而,这种行为是非常不可取的,一个诚实的节点就足以防止这个问题。
如果一个交易是有效的,而且网络是诚实的,那么在所有的可能性中,一个交易将进入一个区块。然而,有一种情况是,交易可能会被从交易池中丢掉:
如果交易池达到了它的容量,或 max_txpool_size,那么它将驱逐池中费用最低的交易,导致它从内存中被抛弃。如果发生这种情况,发件人将需要根据当时的市场动态,以更高的费用重新发送该交易。
原文:
https://docs.minaprotocol.com/en/architecture/lifecycle-payment

Subscribe to chezhe

Subscribe to chezhe
<100 subscribers
<100 subscribers
No activity yet