follow the Satoshi算法

跟随Satoshi算法由李启威在2012年提出,用于区块链中的权益选择。该算法通过构建Merkle树,根据权重随机选择权益所有者作为区块生产者。算法包括构建Merkle树、随机选择和验证三个步骤。随机选择过程中,从根节点开始,使用伪随机数在子树间选择,直至选出叶子节点,即权益所有者。验证过程同样利用随机数序列比较节点哈希。该算法在Cardano中应用,每个slot 20秒,权益计算不影响当前epoch的出块者选择。
摘要由CSDN通过智能技术生成

follow the Satoshi

follow-the-satoshi算法是李启威在2012年发明的,算法的原理非常简单:将所有的权益组成一棵Merkletree,其形式是非叶子节点的权重为左右子树的权重之和,叶子节点的权重即为某个权益所有者的权益值。然后根据随机数在左右子树中进行选择。

例如上图选择:

  • 随机数是65,左边权益是50,那么65>50所以选择右边
  • 执行伪随机得到20,左边权益37,20<37,选择左边
  • 执行伪随机得到15,左边权益27,15<27,选择左边,所以最终选择出A4作为这一轮的stakeholder。

构建

通过质押或其他方式产生一组满足一定条件(达到一定质押比例)的Stakeholder作为叶子节点,其质押量作为其权重,用于构建一个Merkle树。,将Stakeholder作为叶子节点,其质押量作为其权重,用于构建一个Merkle树。

pub fn create_merkle_tree(stakeholders: Vec<Stakeholder>) -> Vec<Arc<Node>> {
    let mut tree: Vec<Arc<Node>> = Vec::new();
    tree.resize(stakeholders.len() * 2,Arc::new(Node::default()));
    pr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值