背景:2008年,国际金融危机下,人们因为金融体系崩溃而失业,有的甚至破产。这时,一个互联网极客看到这人间悲剧的一幕,暗自骂了自己一句:为什么华尔街这些家伙做的恶,需要全世界来买单?我想改变这种情况。
于是,这个现代侠客开始了他的计划。他在2008年首次在互联网上发表了《比特币:一种点对点的电子现金系统》,一场伟大的社会实验开始了。
比特币的本质是一个去中心化的电子记账系统。
一般来说,我们通过银行记账,银行是国家背书的。所以大家都愿意信任银行,把钱存进去。
比特币的设计原理规避了银行的集权结构。
基本原理描述:
现在举个例子,有四个人A \\ B \\ C \\ D,如果他们之间有交易(比如A给了B10比特币,B给了C3比特币等等。),信息会公开告诉大家,然后大家都要记账。所以问题来了:
1.为什么要1。ABCD记账?
2.最终以谁的账本为准?
3.如何防止假冒?
4.如何防止重复支付?
5.如何防止篡改?
接下来,让我们一个接一个地看看中本聪是如何解决这些问题的。
1.为什么要1。ABCD记账?
记账有奖励。如果你想让某人做某件事,你只是想让他有回报。这是人之常情。
1)记账员会得到手续费。比如,A会支付B10元,C会记账,C会得到一定的手续费。
2)包奖励,只有一个人可以完成包,会有人对包进行奖励。完成包装的人将获得50个比特币(BTC)的奖励
打包:中本聪的设计账本记录需要在10分钟左右打包完毕。打包结果称为一个块(一个块中大约有4000条交易记录)。根据上面我们可以算出比特币有多少,20 * 6 * 24 * 365 * 4 * 1 1/2 (1/2) 2.=2100万。
2.最终以谁的账本为准?
工作证明的简单理解就是系统会解出一道很难的数学题,谁先解出谁就有奖励。但是这道数学题太难了,我们只能用穷举法一个一个试出答案,试出答案的过程就叫挖掘。
扩展:哈希函数sha256 (\’Beauty\’)=256位二进制数
这个函数的特点是,输入任何东西都可以快速得到一个256位二进制数。
打个比方来说明:对于x 5 log2x=y,如果输入X=a,Y
可以很快算出来,但是给你Y,让你计算x,会困难很多,而且哈希函数比这个困难很多。
采矿原则:
D-D-D-D-…
上面每个D代表一个块,每个块包含的信息:前一个块的表头话单信息,时间戳,随机数=字符串(不用管字符串怎么来的)
Hash一个字符串HASH=SHA256 (string)=256位二进制数
对于256位二进制数,通常要求第N位为0(通常设置难度就是设置N的大小,调整N的大小来控制阻塞时间)。谁先试出这个结果,谁就有资格打包。这个幸运的人可以在上面的区块链上连接一个新的D(块),获得相应的奖励。
如何算出这个256位数,需要矿工(矿工)不断尝试上面公式中的随机数,直到算出来。
注意每个人计算的难度不一样,因为每个人记录的账单信息,时间戳,个人信息都不一样。但一般来说,谁的计算能力更强,也就是谁尝试的更快、更多,谁挖到的概率就更大。
3.如何防止假冒?
先说身份认证。传统的身份认证方式有签名\\指纹\\人脸等。但是不够安全,现实中容易被伪造。
如何解决这个问题?
电子签名!
如何:随机数-私钥-公钥-地址
公钥和地址可以公开。比如你想让某人给你转账,你可以把公钥和地址给他。但是私钥要保密,不能给!
私钥可以计算公钥,但公钥不能计算私钥。在密码学中,这种关系被称为非对称加密。
通过例子理解:
举个例子,A把一个比特币转给B,A会把A的信息哈希到B 1 BTC得到一个摘要,然后用私钥加密这个摘要得到密码。然后A将该信息广播到全网A到B 1的BTC公钥密码
比如听到广播后,C会验证这条消息是否真的发生过。c将A哈希到B 1 BTC得到摘要1,同时使用A提供的公钥密码得到摘要2。如果abstract 1=abstract 2,说明这条消息确实是A用自己的私钥加密的。如果不一样,说明这个消息是伪造的,A没有发起这个交易。
4.如何防止重复支付?
1)首先,了解余额核对-追溯法。比如你要给别人付钱,你至少要证明你有足够的钱。比如A转了1个比特币给B,你可以在历史区块链上看到过去的记录,看看历史上A有没有收到过1个比特币。
2)什么是双重支付,也叫双重支出,就是同一笔钱你用了两次。比如A同时发两条消息,1-A付给B 1 BTC,2-A付给C1 BTC。在网络上收到这两条消息的人时间不一样。这时,比如D先收到1-A支付给B 1 BTC并解出数学题,然后把方块打包连接起来。这时候1-A支付b。
5.如何防止篡改?
我们先来了解一下最长链原理。如果网络中的A和B几乎同时解出数学题,然后打包了怎么办?这时,链中会出现两个分支。这时候我们就通过时间来解决,看一段时间后两个链条哪个最长。越来越多的人会站在最长的链条上,直到最后大家都抛弃短链。
了解之后,我们再来看如何防篡改。
比如A之前有过A到B 1比特币的交易,但是A想篡改这个记录怎么办?
回到我们的连锁D1-D2-D3-D4-…
例如,A想要篡改的交易发生在D2街区,他需要从D1开始篡改。这个工作量会是巨大的,相当于一个人对抗全世界。理论上,如果A的计算能力超过其他所有人,他就可以完成篡改。但是这个概率会很小。首先,没有人有这么大的计算能力,至少在可预见的未来没有;其次,如果他有这么大的计算能力,他可以为了钱继续挖矿(除非他是疯子或者科学怪人)或者他不会做分叉。
综上所述,通过以上五个问题的解决,中本聪探索出了一条不需要银行等中间人实现人人认可的记账方案。这是一项伟大的发明,它将对未来人类社会产生巨大的影响。比特币只是区块链的一个应用,就像电灯对电的发明一样。其实底层技术是区块链技术,会大大降低人与人、点到点之间的信任成本,从而降低社会运营的成本。
其实还有很多细节没有提到。感兴趣的同学可以了解一下拜占庭一般问题——如何解决恶意节点以保证信息的一致性。
本文内容借鉴了李永乐老师的视频内容,个人理解。仅用于学习和分享,不用于任何商业目的。我希望与有缘人分享区块链的知识。
笼罩