# Mina--协议架构（付款的生命周期）

By [chezhe](https://paragraph.com/@v2y3x4) · 2021-11-12

---

在Mina中，付款在被认为是经过验证和完成之前要经过几个步骤。本文件旨在通过一个简化的概述来了解单笔付款的情况，以帮助用户了解一些关于Mina付款的工作原理。这不是一个全面的技术概述，而是为用户提供一个简化的操作指南。对于希望了解代码库的开发人员来说，更详细的技术概述，请查看支付的技术生命周期。

> 注意：Mina使用八卦协议（gossip protocol），以确保信息能及时可靠地传送给网络的所有其他成员。

付款
==

支付是一种交易类型，要求将价值从一个账户转移到另一个账户，以及发送方愿意为支付通过而支付的相关费用。

让我们来看看这样一个场景：发送方Bob想给接收方Alice发送一些Mina。

### 第一步: 创建付款 - Bob 点击 ‘send’

网络的任何成员都可以创建一个付款并与Mina网络分享。付款用私钥进行加密签名，以便验证发件人的账户。然后，它被发送到网络上的对等人那里进行处理。对等体收到付款后，将存在于他们的本地交易池中，该交易池是该等体在网络上听到的所有交易的内存存储器。

### 第二步: 产生一个区块 - Bob 的付款被放入一个待办事项清单中

在网络上为一个给定的时间段选择一个区块生产者节点。当前活跃的生产者根据支付费用选择飞行中的付款，并将它们放在一个称为过渡块的列表中进行处理。区块生产者通过构建这些区块赚取Mina。生产者生成一个SNARK，定义与前一个区块相比，过渡区块的结构（但还没有验证这些新的支付）。生产者将这些新信息传送给snark工人进行处理。

### 第三步: 交易 Snark 证明 - Bob 的交易被 snark-signed

网络上的Snark工作者节点开始对新过渡区块的每一步进行Snark计算。这些是每笔支付的单独证明，然后是相邻支付的合并证明。最终，所有的支付都被验证了。斯纳克工人可以通过生成这些证明来赚取货币，由区块生产商从他们的区块奖励中支付。这些证明在网络上被传送出去。

### 第四步: 支付验证 - Alice 和 Bob 的账户显示转账结果

一旦整个区块被证明，区块生产者将发送一个过渡区块的确认。然后网络上的成员节点将变化应用到他们的本地账户余额，以反映这些变化。

### 第五步: 支付信任度--Alice 确信转账已经完成

随着每一个后续区块的出现，收件人有更大程度的信心，认为付款实际上已经完成，而且网络对该区块有共识。然而，像大多数区块链一样，据说付款在一定数量的区块后被确认，也被称为交易最终性。

在比特币网络中，一个交易在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](https://docs.minaprotocol.com/en/architecture/lifecycle-payment)

---

*Originally published on [chezhe](https://paragraph.com/@v2y3x4/mina-5)*
