磨链(mochain)-3.14分享

磨链 (mochain): 区块链技术非盈利组织

“磨链”---取磨炼之意,旨在普及区块链技术,磨炼技术,更好投身区块链行业。有兴趣一块琢磨联系笔者微信(jackyjin09)

关于mochain社区文化:

注册域名: mochain.info,mochain.group,mochain.tech

Github 组织:https://github.com/mochain

Gitter 房间:https://gitter.im/mochain

知识星球:磨链 https://t.zsxq.com/M3BMVZN

专题:https://www.jianshu.com/c/7713057aaebd

磨链(mochain)-3.14分享_第1张图片

相关分享

群内分享讨论

分享一 :浅谈闪电网络

https://mp.weixin.qq.com/s/1G728M5bXDEKzn3Gr6zvaw

分享二: 区块链技术应用加速拓展

https://mp.weixin.qq.com/s/aszUWOC1OmSk9YzaciolKg

分享三:区块链共识机制分析——论PoW,PoS,DPos和DAG的优缺点

http://www.8btc.com/blockchain-concensus-mech?from=groupmessage&isappinstalled=0

分享四:区块链大神与技术,附赠超全开发资料

https://mp.weixin.qq.com/s?__biz=MzI1NTcxNjcyNg==&mid=2247484920&idx=1&sn=bebfb9486b1b2ce1b51f799321ba3628&scene=21#wechat_redirect

分享五:CryptoKitties源码详解:手把手教你撸出自己的区块链游戏

https://mp.weixin.qq.com/s?__biz=MzU2MTE1NDk2Mg==&mid=2247484662&idx=1&sn=b2d9c242e7fa993a5beb793deea47172&scene=21#wechat_redirect

纪念霍金

http://view.inews.qq.com/a/NEW201803140251510U

相关讨论

磨链计划相关

磨链计划9-区块基础

POW共识机制 

* 在bitcoin中挖矿目的不是创造新的bitcoin,这是一种激励机制,这种机制也实现了分布式的安全。 

* 参考一:https://www.jianshu.com/p/b23cbafbbad2 

* 参考二:《精通比特币》

POW机制简介

POW(Proof of Work),工作量证明机制。我们最直观的理解就是,一份证明,这个证明确认你做了一定的工作量,类似于现代生活中一些检测考试,通过检测考试你就取得了一份证明,只不过这个证明是一个工作量的证明。

工作量证明一开始是以工作量证明系统提出,这个概念来自Cynthia

Dwork 和Moni Naor

1993年在学术论文中,是一种拒绝服务攻击和滥用服务的对策,要求发起者需要消耗一定量的计算机资源来进行计算。那么POW这个词汇在1999年

Markus Jakobsson 和Ari Juels的文章中正式提出。

提到工作量证明,一般都会说到hash现金,亚当·贝克(Adam

Back)在1997年发明的,用于抵抗邮件的拒绝服务攻击及垃圾邮件网关滥用。在比特币之前,哈希现金被用于垃圾邮件的过滤。哈希现金也被哈尔·芬尼以可重复使用的工作量证明(RPOW)的形式用于一种比特币之前的加密货币实验中。另外,戴伟的B-money、尼克·萨博的比特金(Bit-Gold)这些比特币的先行者,都是在哈希现金的框架下进行挖矿的。

工作量证明原理

首先工作量证明需要客户端做一个有难度的工作且得出一个结果,这个结果公布后,验证的一方需要很快能进行验证。这是不对等的。比如我们在一个字符串后加一个随机数(nonce),对这个字符串进行SHA256计算,然后得到的结果用16进制来表示,我们要求这个计算后的16进制表示的初始几位为:0000,那么才能算通过了验证。这种规则就需要计算机去不断的尝试,当然你可以记得其中一些,但是这个概率毕竟是很小的。正常情况下需要不断的输出计算尝试,直到出现正确的要求结果。

数学期望值,计算过程中会统计实际的计算次数,平均后得到的计算的次数,这个数学期望就是要求的“工作量”,当然这是一个符合数学统计学中的概率事件。

bitcoin中的POW共识机制

bitcoin的出现让人们开始了解到POW共识机制,在bitcoin中,把挖矿生成一个新的区块并把交易数据写入区块看做是一道 工作量证明的数学难题,那么这道题目中有四个重点:

1.工作量证明函数:bitcoin中使用的就是SHA256算法,这个算法是输出256位的hash函数(本文不对hash函数和SHA265函数做具体说明)。目前还未出现针对SHA256算法的有效攻击方法,当然通过算法算法漏洞攻击这里不展开讨论。

2.区块头:bitcoin中的一个区块由区块头和区块中包含的交易列表组成(大小为1M),这里简述下区块头的组成:

区块头大小为80字节。

4字节的版本号。

32字节的上一个区块的散列值。

32字节的Merkle Root Hash,体现区块头和区块中的交易的关系,区块中包含的交易列表,通过Merkle Tree算法生成Merkle Root Hash。

4字节的时间戳。

4字节的当前的难度值。

4字节的随机数(nonce)。

3.难度值:difficulty,这是一个指标,不恒定。它最为关键的作用就是决定了bitcoin网络中,矿工需要经过多少次hash运算才能获得记账权生成区块,进而获得区块奖励(12.5bitcoin)。bitcoin中区块产生的平均速率是10分钟一个,每经过2016个区块后,节点按照公式:新难度值

= 旧难度值 * ( 过去2016个区块花费时长 / 20160 分钟

)调整难度值。控制区块的平均产生时间,如果产生区块速率比10分钟快,那么增加难度值,比10分钟慢就降低难度。

4.目标值:target,目标值公式:目标值 = 最大目标值 / 难度值 

最大目标值是一个恒定值: 

0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF。目标值的大小和难度值是一个反比的关系。在bitcoin中矿工计算出来的区块的hash值必须小于这个目标值。换个说法方便理解:工作量证明过程中不断尝试变换nonce进行SHA256的计算,那么尝试的目的是为了找到一个指定前面有一定数量000的值,这个时候前面要求的0越多,那么表示你的难度越大。 

(为什么0越多难度越大?你尝试下用不断扔一对骰子以得到小于一个特定点数的游戏。第一局,目标是12。只要你不扔出两个6, 你就会赢。然后下一局目标为11。玩家只能扔10或更小的点数才能赢,假如目标降低为了2,那就难度可想而知。)

工作量证明过程

整个工作量证明过程其实不复杂。

1.生成币基交易coinbase。

2.打包交易,组成一个交易列表。

3.通过Merkle Tree算法生成Merkle Root Hash。

4.组装区块头。

5.区块头作为工作量证明的输入,不断变换nonce值,通过公式:SHA256(SHA256(Block_Header))双重SHA256计算。结果不断和当前网络的目标值进行比对,一旦发现小于了目标值(target),那么工作量证明完成。

广播区块到网络中,网络中节点验证。

验证后等待后续区块生成确认(一般6个)。

大致介绍了POW共识机制。

磨链计划相关

磨链计划

计划具体内容

1.白皮书、黄皮书解读以太坊、超级账本等相关白皮书黄皮书解读,分享自己理解,整理讨论输出

2.以太坊源码解读深入以太坊运行原理、对相关模块定位到源码解读。

3.以太坊项目实践包括环境搭建,开发环境搭建,及相关实践开发

4.以太坊课程设计,相关以太坊内容整理以太坊课程、包括智能合约基础、编写、开发,考虑整理以太坊具体内容编辑成书籍。

5.bitcoinbitcoin相关内容,目前比特币自问自答

6.超级账本超级账本相关内容。具体待细化

7.IPFS相关内容PFS filecoin相关内容

8.DAGDAG,字节雪球相关内容

9.区块链基础知识包括密码学、算法、共识机制、P2P网络等相关内容

10.区块链相关政策解读与商业应用跟踪区块链相关政策解读与商业应用跟踪内容,包括最新新闻信息分析分享

11.挖矿相关挖矿原理、挖矿相关内容

12.EOS相关EOS相关内容

13.区块链技术文档翻译区块链技术文档翻译,以太坊,solidity,truffle,超级账本等相关文档

+

你可能感兴趣的:(磨链(mochain)-3.14分享)