区块链概念及比特币基础简析

0. 为什么satoshi要发明比特币这个虚拟货币?它有什么价值?

0.1 简述哈希算法

1. 区块链记账原理

2. 什么是比特币?(2100w的总数)

3. 比特币是如何产出的?它的交易流程是什么

4. 区块链安全:拜占庭将军问题(哲学层面的安全问题)(随机数恶性扩散蠕虫病毒)

 

 

 

零   为什么要发明虚拟货币?它有什么价值?

在这里需要先简单谈一谈货币的基本概念:

货币

货币(Currency,CCY)是度量价格的工具、购买货物的媒介、保存财富的手段,是财产的所有者与市场关于交换权的契约,本质上是所有者之间的约定。

——百度百科

货币本身是没有价值的,只是一纸空文,一个虚无的概念,但是当货币在存在的那一刻,便对应了某种契约关系时,他就体现出了它自身的 “ 符号价值 ” ;

经济学中一件物品的价值归根结底是与他的 “ 必要劳动时间 ” 成正比:

必要劳动时间

必要劳动时间指劳动者的劳动时间中用于生产维持劳动者自身及其家庭生活所必需的生活资料的那部分时间。在必要劳动时间内,生产必要产品或必要价值。与 “ 剩余劳动时间 ” 相对。

举个栗子:印度人想要从美国买一艘航母,花了4000亿刀,钱给了美国,航母开了回来

相比较我们中国需要航母的时候会选择自己造,假设航母“造价”相同,我们宣城市花了4000亿刀,这么一看,我们和印度没有什么区别,但是仔细分析起来,我们在造航母上所花的钱,工人的工资,最后花在了生活的柴米油盐上,柴米油盐都是商品,在本国生产本国缴税的,本国生产柴米油盐的人,再往下就是土地资源的消耗(不往下深究了);造航母的材料费上,需要上万吨的金属冶炼,金属冶炼原料产自本国,去挖掘金属原料的工人,花的是自己身体的劳动和时间....

所以归根到底,我们造一艘航母,根本没花4000亿刀,而是人民必要劳动时间和本国的自然资源

通过这个例子只是想阐述一下货币与价值的对应关系,通过这样去描述,应该能更好理解为什么会出现 “ 虚拟货币 ” 这种东西以及它身上所包含的价值。(本人非专业经济学,只是把随便的想法说了说而已,勿喷,专业人士笑笑就好)

 

 

 

零点壹   简述哈希算法

哈希算法是一种不可逆的加密算法,全称“哈希散列函数”。其最大的特点就是把任意长度的输入通过散列算法转变为固定长度的输出,该输出值就称为 “ 散列值 ” ;这种转换是一种信息的压缩映射,散列值的空间远小于输入值的空间,从信息论的角度来说是会损耗信息量;而且输入值的微小变动都会引发最终散列值的巨大波动的雪崩效益

区块链概念及比特币基础简析_第1张图片

这就是哈希算法的原表达式

其中a[n]是一个字符串数组,s为一随机数,但是通常我们要加密的字符串都是ASCII编码的数据,其最大数为127,因为哈希算法最终结果是一个求余计算,所以我们通常加密时都把s取大于127的最小质数,即131

对于哈希算法不在深究,我也不怎么会,喜欢的朋友可以下去自行查资料研究

 

 

 

壹   区块链记账原理

区块链1.0指的是一个不可篡改的,分布式,去中心化账本,没有谁是中央登记员,因为大家都是中央登记员,大家的账本写的东西都一模一样,记着大家所有人的资产信息

区块链2.0是在分布式账本基础上引入智能合约概念,强化了区块链的应用逻辑,这里不详细阐述,可以参考:https://learnblockchain.cn/article/1011

区块链记账,会把上一次交易的账页信息(交易序号,记账(交易)时间,交易记录)作为原始信息,hash之后的值与本次的账页信息结合在一起,就成了一个区块;(这个数据结构类似于链表

继续推导,下一个区块也会包含本次交易的账页信息hash值,和下一次交易的账页信息,这样一来,每一个区块都包含着上一次的账页信息,根据hash算法的雪崩效益以及不可逆向递推性质,从而达到区块链本身设计之初要达到的:不可篡改性

当一个区块更新之后,这个区块会把本次交易的所有信息,通过互联网同步给每一个在区块链之中的区块,每个区块在短时间内同步账本,使得区块链中所有区块的账本一致,就达到了区块链设计之初的:不可抵赖性

这就是区块链1.0的运行原理

 

 

 

贰   比特币的挖矿原理

上一章简述了区块链基于hash算法的链式增加原理,于是我们把每一次区块链的链式增加(增加一个链)成为一次记账

https://www.blockchain.com/    参考全世界最权威的比特币交易中心网站

 

首先我们需要明白他的奖励机制:

每一次记账,都会给记账的区块所有人一定数量的比特币:

比特币设计人中本聪在设计之初就做了如下牛逼的规定:大约每十分钟,在整个区块链中有一个人记一次账,每记210000次账后,奖励减半。

第一个区块的奖励是50个比特币,到了第210001个区块,奖励25个bitcoin,第420001个区块,奖励12.5个bitcoin....如下类推

PS:因为比特币的最小单位是satoshi(没错就是中本聪的名字),100,000,000 satoshi = 1 bitcoin,最高只能除33次,就到最小单位了,所以,世界上差不多只有2100w个bitcoin,以10分钟一个,差不多能挖到2140年....

区块链概念及比特币基础简析_第2张图片

区块链概念及比特币基础简析_第3张图片

 

 

再来看看每个区块的记账是如何被“挖”出来的:

这里我们需要引入一个概念:工作量证明

就是间接的证明你是不是真的“挖”矿了,我们再来看看当初那个牛逼的bitcoin规定:大约每十分钟,在整个区块链中有一个人记一次账,每记210000次账后,奖励减半;   

所以,我们需要控制住这个巧妙的时间点:10分钟左右,就必须提高记账的难度;

为了提高难度,中本聪satoshi这个瘪三在每个区块的hash值中引入了十位十进制的一个随机数,把哈希值变成了这个样子:hash(上一个hash,账页信息,随机数

通过改变这个随机数,从而让每一个区块的hash值的前18位都为0!

我们通过海量的穷举hash运算去找到这个随机数的值(大约在10分钟之内),谁先找到这个随机数,谁就获得这一次记账的奖励(比特币)

挖矿的实质,其实就是不断地穷举这个随机数的值

因为比特币的挖出来的速度与全世界参与挖矿的算力有关,所以在区块链2.0里面,hash值内引入了一个复杂度参数,用于动态规划每一个hash的复杂程度,用于精确控制每一个bitcoin挖出来的速度都约等于10分钟

 

验证与同步表阶段

当某一个区块(矿场)率先挖出了该次的随机数的话,就会想扩散路由表一样吧这个随机数的值扩散到每个区块内,每一个区块都回在本地对这个随机数进行一次验证,要是验证通过,就会停止本轮运算,将验证后的hash作为下次运算的基数hash值,继续开始新一轮的随机数猜测穷举。

 

截止发文时,最新的一个区块信息:

区块链概念及比特币基础简析_第4张图片

自上而下看:

  • 本区块的hash值;
  • 记账时间戳
  • 区块高度(第640298个区块)
  • 随机数(致富经)
  • 本次奖励的比特币(这是第三个210000个区块,所以奖励是50/2/2/2=6.25bitcoin)

 

以下附上最近的交易价格和记账时间,记账所有者

区块链概念及比特币基础简析_第5张图片

区块链概念及比特币基础简析_第6张图片

 

 

 

叁   区块链安全问题

安全理论里面,只要一个系统的复杂度到达了某一地步,就一定会存在安全问题,无论这个系统设计的多么完美,使用多么不可破解不可逆的算法云云...

在这里简述一个逻辑学上的复杂难题:拜占庭将军问题

拜占庭帝国要去攻打一个城邦,排除了10支军队,但是这个城邦理论上一定可以扛住五支军队及以下的攻击,所以,在那个书信很慢车马很远一生只够爱一个人的年代,想要同一时间段成功派出六支以上的军队,是一个验证信任上的难题

这里假设所有书信并都能成功传递进攻时间点的消息,我们需要考虑的难题主要就是叛徒,间谍所发的虚假情报

中本聪在比特币所应用的区块链中就提出了工作量证明机制,有效地缓解了区块链安全中的拜占庭将军问题(并非解决)

 

 

 

肆   小结

区块链安全中存在很多的问题,大都是信任机制上面的,历史证明,一个恒古不变的复杂协议,根据墨菲定律,总有一天会被爆出漏洞等安全问题(参考TCP/IP协议的DDOS攻击),所以想要一个复杂的系统永远维持在相对安全的状态,就需要不断地去优化协议,优化算法,才能最终做到相对安全的系统

 

 

 

 

 

 

本文参考于:

https://zhuanlan.zhihu.com/p/33666461

https://learnblockchain.cn/2017/10/25/whatbc/

https://learnblockchain.cn/2017/11/04/bitcoin-pow

https://mp.weixin.qq.com/s?__biz=MjM5MjI2MzkyNw==&mid=2652126324&idx=1&sn=2a0b4c57dcd7e7ecb145dc32efc4a483&chksm=bd4867ec8a3feefac1bd2449733f4161cf29d11a8a03253c68a058453e88156edf72fc0e900e&scene=0&key=240d40e83da786d02af45ca6d88ed2215ef457252b48ca2b6bebdcf2321a7505a8462d46933e3cfaef8be01a6db864d114867492ea4b4321def1df33c95278c6e328812f1fd0e3a77e47fd4df5d36faf&ascene=14&uin=MjU4MTMzMjMwMQ%3D%3D&devicetype=Windows+10+x64&version=62090529&lang=zh_CN&exportkey=A7q7mwyBiWu75K3anjSlZQM%3D&pass_ticket=hCSwfW5NADo4XkYal%2BEaS0652WtGbqprMcw1%2BBBmsEvqlsTZ4jJmhH0W6ltgK8Sj

https://www.zhihu.com/question/20507188

https://www.zhihu.com/question/63487924

https://en.bitcoin.it/wiki/Controlled_supply

 

 

事件的复杂和暧昧之处,不在于真相本身,而在于了解真相之后,该怎么办

————《利刃出鞘》

 

 

你可能感兴趣的:(web安全理论)