第3讲 | 浅说区块链共识机制
第3讲 | 浅说区块链共识机制
讲述:黄洲君
时长09:44大小5.58M
分布式系统的经典问题: 拜占庭将军问题
什么是区块链共识机制?
最经典的入门型共识机制:PoW 工作量证明
PoW 工作量证明的补充:解决双花攻击
总结
赞 4
提建议
精选留言(48)
- 朱显杰2018-03-30PoW算法的特色是结合了经济学上理性人的假说,发明了激励机制,让做好人的奖励大于做坏人的获利。但我觉得比特币每4年递减的特点可能会导致这个天平被打破,比特币奖励越来越少,而比特币总量越来越多,是否意味着某一天可能作恶的收益要大于做好人的收益呢?
作者回复: 1. 可能的,不过这个周期非常长,临界点可能在这个世纪末,但由于不确定因素非常多,多因素综合,例如到时比特币100万美金一个,即使低收益只要可以覆盖成本即可,而且作弊是概率的,只有期望值。所以足够的时间会发现新的算法来修正PoW,或切换其他共识 2. 比特币的总量是恒定的
19 - 酱了个油2018-03-30对六次确认的描述比较困惑...18
- 4Neutrino2018-05-25老师好,有点疑问,算力强大的单位,就算难度提升了,那他挖矿成功的概率还是高啊?这似乎没有解决中心化问题吗
作者回复: 问题是这些算力有没有进入门槛,如果没有,普通人也可以介入,那么就是公平的,算力中心化的威胁只有51%攻击,实际上达到51%,矿工的攻击动机也是不足的,因为很容易被发现,攻击成功会造成用户流失,短期收益很高,但是断了自己的长期财路,矿工一般不会选择攻击。所以问题就演变成攻击是否可以被公众感知。
8 - 静。安2018-03-31老师作为一个软件开发人员区块链技术应该向什么方向学习呢,还有前景问题,望老师解惑,谢谢!
作者回复: 1. 公链开发。偏底层 2. 区块链应用开发。 偏智能合约 两个都需要区块链基础知识作为支撑,先打好基础,再找方向ο(=•ω<=)ρ⌒☆。
8 - Alexcsl2018-03-30关于双花问题,如果双花交易同时出现在两个区块中,那应该根据挖矿难度的大小,自动舍弃一个区块,保证只有一次花费被确认。这和算力,连续六次记账的概率有什么关系呢?是因为进行双花攻击的时候,是把两笔交易记在同一个区块里,一旦由另一个节点进行merkel树检验,会发现异常,必须由攻击节点连续记录六个区块么?还请老师解惑
作者回复: 已在其他回复中回答。
7 - finch2018-03-30pow跟一般分布式算法的区别在于,pow是有激励机制,并且作弊是要有代价的,代价与激励之间的博弈使得比特币过得安全。个人见解。7
- 酱了个油2018-03-30分布式存储的一致性的算法并不判断数据真伪的问题,不具备防篡改的能力,抛出备份数据,它维护的是仅一套数据,它本身是中心化系统的一部分,与区块链有本质区别。存储方式上来看,更像“只存储数据为主的cdn”。5
- 席彬2018-03-30陈浩老师好,有两个问题请教 1双花攻击中后一个区块如何验证前一个区块是否“作弊” 2区块链产生分叉后,新产生的区块如何“选择”加入哪一个分支
作者回复: 你好。 1. 每一笔交易记录都是有前向输入的,如果已经被花费过,则状态已经变更为已花费,再次话费共识验证的代码会检验不过,拒绝被打包。这个我曾经在比特币上干过,修改本地节点代码后发起攻击,交易不会被打包,除非全球的矿池同时重启,也是概率会成功,仅限未被确认的交易。 2. 通俗说法叫做所有节点跟随最长的一条分叉链,共识代码规定的。专业的说法叫做“难度”累积最大的一条链。
3 - 荔荔要去看世界2018-05-14交易算作确认的条件 1.交易存在于最长分的一个区块中 2.后面至少有5个区块被验证过
作者回复: 是的,这是比特币的确认条件。
2 - TaoLEE2018-05-01为什么说共识机制有"民主性"?
作者回复: 共识机制狭义上指分布式一致性,实际上也可以拓展到区块链治理共识。
2 - 流星🌠火箭🚀蛋�...2018-04-12老师,您好,请教一下:看了文章和您在讨论区的一些回复,还是没搞明白挖矿和比特币的关系,您打的比喻:挖矿产生的区块相当于数据库,而比特币相当于积分,这个怎么理解呢?这是说比特币是写在对应区块的一笔交易记录吗?还有是不是每产生一个区块就会派发一个比特币?比特币归属怎么来记录呢?每个区块里边是不是可以无限追加交易记录?我这还没入门,希望老师赐教哈
作者回复: 1. 积分记录在数据库的表中,谁有权利创建新表,谁就能获得积分。 2. 比特币是表中有效的未花费记录 3. 一个区块就是一张新表,表可以哈希后串起来 4. 不是无限的,有区块容量限制
共 2 条评论2 - Hollis2018-04-03我有个问题想问下: 工作量证明的题是谁出的?如何保证节点收到的题是一样的?
作者回复: 细节我们会在深入技术一章中讲。 每次难题都是基于当前全网的状态和上个区块作为输入,所以每个人得到的难题都一样。
2 - 昊2018-03-31你好,请教一个问题,比特币中的币和对应区块链的区块是一个东西吗,如果不是,那币具体是什么
作者回复: 币是业务逻辑,区块是技术逻辑。币是网站积分,区块是数据库的表。
2 - 蜡蜡2018-03-30陈老师,您好,认真看了五遍,还是不太懂共识机制和工作量证明的原理。望陈老师指点: 共识机制是为了全网形成形成正确的共识: 1)原文易被篡改; 2)收信人无法验证原文是否被篡改; 其中工作量证明相当于去猜福利彩票双色球的中奖号码:你只要趴在桌上写啊写,就一定能够写中下一期的中奖号码,只是要花点力气而已。展开
作者回复: 原交易不被篡改是由非对称加密保证的,这里说的共识是大家达成一致记录,不被扰乱的过程。 工作量证明与彩票,可以这么理解。重点是中奖之后的逻辑。
2 - 风2022-04-20老师,这讲说的是成本与收益的角度考虑,正常人不会做亏本的买卖,但如果有人就是为了搞破坏,就愿意花100万给墙上砸个钉子,这样也是有问题的吧?怎么避免这种问题的产生呢?1
- Geek_435bc92021-12-19大佬,你说得拜占庭将军问题的可以在中文社区找到资料,是哪个社区呢?小白刚上路1
- Happy2018-10-09大佬您好 所謂一個区块被打包 需要6次确认 是判断拥有6次记账权?还是什么意思 ,所谓的6次确认是怎么确认的 谢谢
作者回复: 一次确认就代表已经刚刚被打包进区块,两次确认就代表又产生了一个新块引用这个区块,链式引用,引用越多就代表被篡改的可能性越小,6个确认是在概率上认定为基本不可能被篡改了,所以6次只是一个建议,由用户自己选择的,当前比特币网络很稳定,一般1~2就可以认定有效,以太坊一般是12个。
1 - hk2018-07-20我有一个问题:用户的当前token数量是怎么维护的,是要从当前区块一直回溯到创世区块,遍历所有和自己相关的Transaction才能计算出来吗?
作者回复: 是的,后面有一篇文章 《数字货币钱包服务》里有介绍扫块
1 - 匿名用户2018-06-16如果币全部被挖掘出来,那么旷工是不是没有存在的意义了???那么之前讲过每笔交易都要旷工加一个信封,那币挖完之后要继续交易的信封怎么办?
作者回复: 可以改共识,形成微通胀模型。 也可以通过提高手续费
1 - 糖堆儿2018-06-01规则二中,如果两笔交易在不同包里,即是先后接收到已确认的交易呢?处理机制请问是什么呢
作者回复: 你好,接受到区块以后,里面包含的交易会被从交易池删除,重复的区块会被废弃。
1