Mina中的交易及经济白皮书
Posted mutourend
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mina中的交易及经济白皮书相关的知识,希望对你有一定的参考价值。
1. 引言
Mina中主要有3个角色:
- 1)Verifiers:网络中的大多数参与者都是验证者。Mina使用recursive zk-SNARKs来持续证明state有效性,通过简单的下载一个zk-SNARK即可实现全节点安全性,该zk-SNARK仅为几百字节,仅需要几微秒即可完成验证。该zk-SNARK可证明共识信息和a Merkle root to a recent ledger state。当前,验证者会请求Merkle paths to relevant parts of the state。通过检查该Merkle path,验证者可确认他们关心的state(如其account balances)确实已包含在由该zk-SNARK证明的同一账本内。
- 2)Block Producers:Mina中的产块者,类似于其它链协议中的miners或stakers。产块者受block rewards或coinbase transactions 以及 用户交易手续费激励。Mina采用Ouroboros Proof of Stake共识,对其产块者没有slash惩罚措施。个人可将其stake委托给其他产块者,即支持delegate to stake。
产块者可选择在下一区块中包含的交易。为了使Mina链succinct,产块者还需承担额外的责任:在区块内每增加一笔交易,需增加相应数量的previously added transactions’ SNARKs。若不包含同等数量的SNARK,则其区块无法满足共识规则,将被其它节点拒绝。可将其想象为a queue of transactions。若产块者想要往队列末尾添加10笔交易以赚取手续费,他还必须在该队列前面添加10笔交易SNARK。这些SNARK可由产块者自己生成,也可从snarker marketplace中购买。 - 3)Snarkers:是指生成zk-SNARKs that verify transactions的参与者。通过bids来获得补偿,若其SNARKs被采用在区块内,产块者将从其总交易手续费中向Snarker支付相应的bids费用。
同一笔交易可能有多个Snarkers报价,产块者可选择最便宜的包含在其区块内。
Snarkers不会影响Mina网络的活性或抗审查性。
2. Mina中的交易生命周期
Mina中的交易类型有:
- Coinbase交易:给产块者激励和手续费的交易,为内部交易。
- Fee_transfer交易:给snark worker手续费的交易,为内部交易。
- Payment交易:支付交易,为用户交易。
- Delegation交易:委托交易,为用户交易。
- apply_parties_unchecked交易:。。。
其中singed_command交易分为了payment交易和delegation交易。
let apply_transaction ~constraint_constants
~(txn_state_view : Zkapp_precondition.Protocol_state.View.t) ledger
(t : Transaction.t) =
let previous_hash = merkle_root ledger in
let txn_global_slot = txn_state_view.global_slot_since_genesis in
Or_error.map
( match t with
| Command (Signed_command txn) ->
Or_error.map
(apply_user_command_unchecked ~constraint_constants ~txn_global_slot
ledger txn) ~f:(fun applied ->
Transaction_applied.Varying.Command (Signed_command applied))
| Command (Parties txn) ->
Or_error.map
(apply_parties_unchecked ~state_view:txn_state_view
~constraint_constants ledger txn) ~f:(fun (applied, _) ->
Transaction_applied.Varying.Command (Parties applied))
| Fee_transfer t ->
Or_error.map
(apply_fee_transfer ~constraint_constants ~txn_global_slot ledger t)
~f:(fun applied -> Transaction_applied.Varying.Fee_transfer applied)
| Coinbase t ->
Or_error.map
(apply_coinbase ~constraint_constants ~txn_global_slot ledger t)
~f:(fun applied -> Transaction_applied.Varying.Coinbase applied) )
~f:(fun varying -> Transaction_applied.previous_hash; varying )
module Parties_applied = struct
[%%versioned
module Stable = struct
module V1 = struct
type t =
accounts :
(Account_id.Stable.V2.t * Account.Stable.V2.t option) list
; command : Parties.Stable.V1.t With_status.Stable.V2.t
3. Mina交易的经济性
4. Mina供应量及激励规划
参考资料
[1] Mina经济白皮书
[2] Crypto Deep Dive: Understanding Mina Protocol The Succinct & Secure Blockchain Project
附录1. Mina系列博客
Mina系列博客有:
- Mina概览
- Mina的支付流程
- Mina的zkApp
- Mina中的Pasta(Pallas和Vesta)曲线
- Mina中的Schnorr signature
- Mina中的Pickles SNARK
- Mina中的Kimchi SNARK
- Mina Kimchi SNARK 代码解析
- Mina Berkeley QANet测试网zkApp初体验
- Mina中的Poseidon hash
- Mina中的多项式承诺方案
- Recursive SNARKs总览
- Mina技术白皮书
- Mina代码解析
- Mina中的Snark Worker
- Mina中的Scan State
- Mina中的VRF
- Mina中的delta_transition_chain_proof/delta_block_chain_proof
- Mina中的stake delegation
- Mina如何实现22KB?
- Mina中的stake_proof
- Mina中的genesis_proof
以上是关于Mina中的交易及经济白皮书的主要内容,如果未能解决你的问题,请参考以下文章