Mina 开发者文档
区块生产是一个复杂的过程,需要一个节点连接到互联网。如果私钥在一台连接到互联网的机器上可用,钱包就被称为“热”。更谨慎的区块生产者可能希望避免与自己有重大利害关系的热钱包,以降低黑客入侵其系统的风险。
如果私钥从来没有在互联网上出现过,那么钱包就被称为“冷”。与大量质押相关的钱包更喜欢冷存储,因为如果这些系统从未出现在互联网上,黑客就更难以侵入它们。这可能就像在关闭互联网的笔记本电脑上生成一个密钥对,或者使用一个像ledger设备这样的硬件钱包那样容易。
Mina的协议要求区块生产者使用一个热钱包来持股(参见本文最后一节的原因)。 然而,有一些机制允许谨慎的区块生产者将他们的大部分质押份额保留在冷钱包中。生成的区块以及与生成区块相关的所有收益都通过委托从这个冷钱包转移到热钱包来实现。
本文的下一部分将描述有效地生成区块所需的操作,而您的大部分质押也要开始并保留在一个冷钱包中。
在运行您的区块生成器之前,您至少需要两个帐户:一个冷钱包和一个热钱包。
请参阅关于生成密钥的文档页面。请注意,因为这是一个热钱包,您不应该为这个密钥对使用ledger硬件钱包或任何其他HSM。
记录这个热公钥。
您的热钱包必须在用于质押之前出现在共识账本之中。如果您的热钱包地址存在于创始账本,则不需要采取进一步的行动。但如果不是,那么您必须获得至少足够的mina代币来支付帐户创建费用,并将这些代币发送到此公钥。
请参阅关于生成密钥的文档页面。请注意,由于这是一个冷钱包,您应该尽可能使用最安全的机制来生成密钥,最好是在与网络断开连接的机器上。
当委托给您热钱包时,您的冷钱包必须出现在共识账本中,然后才能计算它的收益。如果您的冷钱包地址在创始分类帐中存在,那么不需要采取进一步的行动。否则,您要获取足够的代币去有效地参与共识,并将其发送到这个冷钱包地址。
接下来,确保您已经把您的冷帐户委托给您的热帐户。如果您已经设置了您的帐户委托到初始分类帐的正确位置,那么不需要采取进一步的行动。否则,如果密钥是在计算机上生成的,则可以使用mina client delegate-stake命令进行委托。另外,请参阅Mina ledger自述文件中的委托说明以了解更多信息。
使用热钱包密钥连接网络页面中的“启动节点”说明。
您可能会想:为什么我不能在Mina的协议中直接从一个安全的enclave或其他HSM设备创建区块?
区块生产的两个组件需要以有趣的方式使用私钥:赢得一个slot和创建区块链SNARK。在安全硬件中创建SNARK尤其困难,目前的技术很难满足我们的协议对于性能的要求。
区块生产者可以通过使用自己的私钥计算VRF(可验证的随机函数)来确定自己是否赢得了slot。VRF需要为您的帐户和委托给您的每个帐户对于本epoch内所有slots进行计算。据我们所知,还没有人在HSM上实现过VRF,但这可能不是太难。
当一个区块生产者赢得一个slot,除了创建和广播一个区块之外,区块生产者必须创建一个新的SNARK证明,从而证明区块链包括这个新的区块是有效的。SNARK证明在将VRF信息嵌入证明时使用私钥。这个证明代替了其他协议要求验证者简单的验证签名。创建这种复杂的证明在计算上非常昂贵,并且依赖于大量的高级密码学。即使有人花时间在它们身上实现SNARK证明算法,市场上也没有一家HSM能够足够有效地创建这种SNARK证明。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!