Paul C's Blog

To be funny,to grow up!

0%

Conflux-Notebook6

从12月起,这个命名格式用于保存老师提出的问题和解答

1
2
3
4
5
6
7
8
9
10
11
0.延迟执行,导致矿工打包老鼠屎,这个时候的矿工奖励。
1.确认一个块,等待多少个epoch,是6吗?这个时候的安全性是多少。
2.每笔交易大小
3.安全性系数出自哪篇论文
4.生成一个epoch的时间是多久?
5.矿工打包时做的具体校验工作
6.cfx对底层网络带宽的要求,为什么低带宽还能获得高tps,在保证安全性的同时。
7.cfx的一个块的广播时间,指的是它被多少比例的节点收到。
8.块怎么算无效,无效怎么办
9.一个代码的合约里,一个交易是多大。
10.保留哪些块,丢了哪些块。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0.延迟执行,导致矿工打包老鼠屎,这个时候的矿工奖励。
1.确认一个块,等待多少个epoch,是6吗?这个时候的安全性是多少,证明过程。

2.每笔交易大小
3.安全性系数出自哪篇论文
4.生成一个epoch的时间是多久,一个block是0.25s,大概包括1500笔交易,更具体?
5.矿工打包时做的具体校验工作
6.cfx对底层网络带宽的要求,为什么低带宽还能获得高tps,在保证安全性的同时。
7.cfx的一个块的广播时间,指的是它被多少比例的节点收到。
8.块怎么算无效,无效怎么办
9.一个代码的合约里,一个交易是多大。
10.id到底是怎么确立的?
11.保留哪些块,丢了哪些块,先不看数学证明。回答:不删除无效块。
其中,2和9可以合并;
0和8、11有关联,问题4、10未解决

主要参考Conflux Specification中的第四章,以及[A Decentralized Blockchain with High Throughput and Fast Confirmation]

[TOC]

0.延迟执行,导致矿工打包老鼠屎,这个时候的矿工奖励。

矿工奖励包括区块奖励交易奖励+存储维护奖励(存储押金的利息)

image-20201202094455038

1.基础区块奖励的数值由 Conflux 系统生成的总区块数量确定。系统运行时间越长,基础区块奖励越低。

2.惩罚系数由光锥外区块数决定。

Conflux不希望看到,由于激励机制没有对未遂的攻击行为做出任何惩罚,导致矿工随意违反共识规则甚至尝试发起攻击。惩罚传播不及时的区块——无论这个区块是生成以后没有被及时广播,还是生成的时候故意无视了一部分已经收到的区块。

image-20201202094148217

3.交易奖励+存储维护奖励的总思路:整体计算,按比例分发。

每个 epoch 中所有产生的存储押金利息,将在同 epoch 的区块之间,以各区块的基础奖励为权重平分。也就是说,如果一个区块受到了来自光锥外区块的惩罚,这个惩罚同样会影响它第二部分存储抵押利息奖励的分配。

对于交易奖励和存储维护奖励,无效交易被忽略、被跳过,在相同块中的其他交易可以仍然有效。而在以太坊中,无效交易导致整个块无效。

T被首次成功执行时,T被分发给EPOCHi(交易T被首次执行时的epoch)中所有合适地包括了T的块。T B and B belongs to EPOCHi

image-20201202093426906

T的分发根据B’在epochB中的基础块收益占比计算。

  • 冲突和重复执行的交易在最后总排序后丢弃即可。

    对于存储维护奖励,这和基础奖励有关。和这个块的块奖励占这个块所处epoch的的奖励比例有关。

    image-20201202092756596

1.0.25 s一个块,300KB的最大块限制下,确认一个块,等待多少个epoch?

等待一个权重差,或者慢确认下的6个块,不等epoch。

确认策略:

获得和区块链中等6个块同样的安全性。

  • 相应子树的总权重比其同级兄弟的所有子树大一个系数;这个系数根据协议状态,不是预设的。在实验中,采取的是20~30;

  • 如果在慢确认体制下,等6个大权重的块。

确认时间影响因素:带宽、节点数、出块速度(出块间隔)、块大小。

image-20201202021925446

image-20201202022253862

image-20201202020612334

当T被执行的第一个块最终确认时,一个交易被最终确认。充分不必要条件

  • 反过来,一个交易可能早于T被执行的第一个块的确认。例如:交易T的执行不会影响到pivot chain的协商时。更具体的,在竞争的块里不存在与T相矛盾的或者依赖于T的交易。

  • 第一个包含T的块被最终确认是不充分条件,因为Conflux允许无效交易?

image-20201202011524602

例如,确认epochB里的B’时,对B‘的最终确认归纳为对B的确认。

前提假设,实验结论:

1.t时刻块生成,那么d=10s后所有诚实节点收到块,没有收到块的被认为是恶意节点。

2.早于B的pivot chain上的块已经被确认。

3.在2d的时间,也就是20s以前C就已经在pivot chain了 ???这一步是为什么?

没有攻击存在(q<=0.2)时,快确认阶段,即自从A创建后,在P(B)=A的子树上的8000个块的产生过程中,GHAST的权重调整未激活。

一种简化的风险计算方法,这种方法得到的确认时间值比真实值更长。

-

2018年8月论文数据,

40M带宽下, 4.5-7.4 minutes确认交易。一个块4MB,2.5s,q<0.25,攻击者有小于0.01%的概率逆转交易时,平均5.68分钟确认一笔交易。5.76GB/h=1.6MB/s;

4M/5s时,2.88GB/h , 3200bps,平均10分钟确认一个块。

当改为4M/10s时,2W用户下,确认时间<10.7分钟;720MB/h,780bps;

2020年4月论文数据,

20Mbps,

300KB×4block/s,9.6Mbps的数据量,23s的延迟,47.75-51.54 s的确认速度,即在一分钟以内

1392,3480bps

image-20201202023837225

image-20201202023851441

image-20201202023913682想·

New Question Conflux允许无效交易?

获得不可逆信心需要的等待时间攻击者掌握算力用户愿意承受风险三者之间的关系。

  • 随时间降低,但是>0

2.每笔交易大小

平均每笔250bytes;6400bps的由来;

Conflux 创建的合约代码上限是 49152 字节=48KB <200KB的块(336bytes会被块头占用)大小,比以太坊多一倍。

image-20201202100114341

3.安全系数的由来

安全性系数 = 平均生成一个区块的时间 / 区块广播时间。

安全性系数出自 Rafael Pass, Lior Seeman, and Abhi Shelat. “Analysis of the Blockchain Protocol in Asynchronous Networks.” EUROCRYPT 2017.

论文下载链接

4.生成一个epoch的时间是多久,一个block是0.25s,大概包括1500笔交易,更具体?

5.块的具体校验工作

块的校验有4种结果:悬挂状态(部分无效和TimerDis(B;G) < 240,),接受,拒绝,待定(引用的块还没出现)。

引入计时器链,估计过去的时间。直观地讲,计时器链是(如果块生成速度较慢或等效地仅考虑高质量块时) 将生成的最长链。

B成为timer block条件:本身是完全有效的块+QUALITY(B) 180 ·Bd

块通过工作量证明校验和引用块校验(等待所有过去的块被执行)后,就赋给它权重。

image-20201202101315384

其中,image-20201202101505099

校验有4个部分:校验步骤可调换可并发

1.校验块头

image-20201202105603490

校验块时没被校验的四个域在blaming机制中被校验。对无须状态的承诺的责备,会导致失去奖励,不会影响块的有效性。

image-20201202100850831

2.引用的块的校验

3.容量/块大小校验

4.块头与交易一致+每个交易本地合法(形式审查)

image-20201202103702559

image-20201202103640188

6.cfx对底层网络带宽的要求,为什么低带宽还能获得高tps,在保证安全性的同时。

20Mbps+,NKU的网速大致是10Mbps。

采取了短ID, 对于交易的SHA-3值做SipHash,得到一个3位长值再加一个1位的nonce。

具体参考CFX5-3\交易转发中的带宽优化。

Aumasson JP. and Bernstein D.J. Siphash: Afast short-input prf. Progress in Cryptology - IN**DOCRYPT, 2012.

7.cfx的一个块的广播时间,指的是它被多少比例的节点收到。

image-20201202095643119

d大约20s左右,到达50的节点不足10s。

d指全部的块到达大于99%的节点;

每个全节点,平均有10个邻居。

8.有效、部分有效和无效

8.1 通过所有校验就有效

8.2 部分有效

两种情况:P(B)部分有效;B的Header除了下面的这些项外,通过了对header的所有校验:

image-20201202104438932

image-20201202100229180

H是否有效只与块总顺序共识的建立有关,不依赖

deferredStateRoot, deferredReceiptsRoot, deferredLogsBloomHash and blame

image-20201202100659174

8.3 无效是指没有通过4步校验,将被丢弃