• Algorand算法实现(一)


    判断节点是potential leader的条件:

    HSigr, 1, Br-1)) <= 1 / size(PKr-k)

    size(PKr-k)为第r-k轮中网络中参与区块共识的公钥个数(也就是钱包的数目)

    verifier的选择

    定义回看参数k,概率p

    输入参数:(r, s, Br-1: 其中r为第r轮,s为第s步,Br-1为上一轮的Q

    判断方法:对于i,如果 HSig(r, s, Br-1)< p,则iverifier

    Br的计算

    如果leader_r存在而且在给定的时间内发布了对应的credential

    Br = H(Sigleader_r(Br-1), r-1),即首先用leader对于Br-1的签名,再对签名和r-1计算哈希

    否则: Br = H(Br-1, r-1),即对Br-1r-1计算哈希

    Gossip通讯协议

    共识算法BA*(轮循批量共识)

    参数种子生成算法(VRF)

    Algorand的测试情况

    MIT计算机科学和人工智能实验室对Algorand进行了模拟测试[Gilad, Yossi, Rotem Hemo, Silvio Micali, Georgios Vlachos, and Nickolai Zeldovich, 2017, “Algorand: Scaling Byzantine Agreements for Cryptocurrencies”. 本节引用的图均来自这篇文章。他们的测试在亚马逊云上进行,使用了1000EC2虚拟机,发现:

    第一,Algorand能在1分钟内确认交易,而且确认交易的时间随着用户数量的增加,变化不大。 

    第二,将用户数固定在5万,测试不同区块大小对通量(throughput,可以用产生一个区块的平均耗时来衡量)的影响。可以看出,区块越大,构建区块的耗时越长,但对拜占庭协议BA*的运行时间影响不大。

  • 相关阅读:
    Nginx 禁止IP访问
    Nginx服务优化详解
    adb不响应
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
    【翻译】Android避免内存泄露(Activity的context 与Context.getApplicationContext)
    内存泄露情况
    AndroidManifest笔记
    RecyclerView设置verticalSapcing等
    Fragment回调顺序及getActivity()为NullPointerException解决方法
    git tag
  • 原文地址:https://www.cnblogs.com/sigmod3/p/9674020.html
Copyright © 2020-2023  润新知