十分钟搞懂什么是区块链与比特币?
Posted 苍山有雪,剑有霜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十分钟搞懂什么是区块链与比特币?相关的知识,希望对你有一定的参考价值。
文章目录
想知道的问题
什么是hash码?hash函数?
举一个最简单的hash函数:%100(对100取余):
输入5,那么它的hash码就是5;输入156,hash码就是56…
hash函数的作用就是对输入的数据做一个复杂的函数计算,输出另一个数据(一般是字母数字的组合),而且对于不同的输入,输出很大可能是不会相同的(不能有同样的身份证)。
hash函数输出的结果就是hash码,代表输入这个个体的唯一ID。
注:hash函数是单向的,从结果无法反推输出。
什么是区块链?
区块链就是一个不断增长的全网总账本?伪造需要拥有超过51的算力;
区块链由一个个区块构成的单向链表,其中每个区块指向前一个区块:
并且每个区块都记录了一些重要参数,如下:
- 区块hash码是区块的唯一标识,类似于身份证号,全网唯一。值得注意的是,区块哈希码不是直接记录在某个区块,而是由区块的头部数据计算hash所得,区块的头部数据主要包括:
-
上一区块是该区块前一个区块的hash码;
-
MerkleHash是用来确保交易记录没有被更改;
-
区块的主体部分就是一系列的交易数据,Coinbase是挖矿奖励,其他是各个区块之间的交易信息;
MerkleHash可以保证交易?
MerkleHash是对该区块链记录的所有交易信息的hash,若一个区块记录有四个交易信息:tx1、tx2、tx3、tx4,两两进行hash得到b1、b2,再对b1和b2进行hash计算得到最终的MerkleHash值如下:
其中任何一个发生变动,最终算出来的MerkleHash就不一致了。而且之前介绍了一个区块哈希值就是由MerkleHash以及其他数据计算出来的,如果MerkleHash不一致,最终的区块哈希也就不一致,这个区块就是不被信任的,没法用了。
什么是比特币?
数字货币是基于加密技术的不可伪造的数字货币系统,电子货币只是纸质货币的电子化?
比特币是基于区块链技术实现的分布式数字货币系统;
相比于传统由中心政府发放货币,而后统一记账的货币体系,比特币是基于区块链技术实现账本完全公开,无需中心机构处理交易;
比特币怎么交易?
比特币的交易基于P2P。啥?P2P?
P2P即(Peer-to-Peer),不像传统有国家或者某银行来专门进行交易的记录,而是两个节点之间直接进行交易——那这…可信嘛?只要满足条件,就是可信的。
举个例子,小明说自己给了小红1万元:
只要能验证小明确实做了这样的事情,并且他有1万块钱,那么这笔交易就被认为是有效的。那么问题来了——如何验证是小明说的呢?
通过数字签名的方式,可以验证小明到底有没有说过这样的话。
签名就类似于以前在合同上写自己的名字,不过数字签名是通过加密解密手段实现的:用户有两个密钥——公钥和私钥,公钥全网可见,私钥自己保管好,如果某条信息用公钥加密,那么只有用私钥才能解释出原来的信息;如果用私钥加密,那么只有公钥才能解释。关于签名算法具体可以参考:数字签名算法。
比特币怎么交易的?
说起比特币的交易就有点意思了,**有点反人类,**下图是一小段区块链:
其中in表示给钱的人,out表示钱给谁了。左边第一个区块第一行就表示小明给了小红2个比特币。
但是,如果小明自己努力挖矿,资产高达50比特币,只给小红2个,那么就不能像上面那样写,必须这样:
因为比特币规定所有的资产必须一次性花完,自己给自己也算花钱。
如果小红收到另一个小伙子小军的1.5比特币,然后都想给小白,那就得这样:
这是比特币规定的多输入1输出的情况。
另外在交易过程中还会产生手续费,这些手续费会付给当前正在挖矿的人。
如何验证一个交易呢?举个例子?
当我们要简单验证某个交易的时候,例如,对于交易f36abd,它记录的输入是3f96ab,索引号是1(索引号从0开始,0表示第一个输出,1表示第二个输出,以此类推),我们就根据3f96ab找到前面已发生的交易,再根据索引号找到对应的输出是0.5个比特币,所以,这笔交易的输入总计是0.5个比特币,输出分别是0.4个比特币和0.09个比特币,隐含的交易费用是0.01个比特币:
注意!注意!比特币的地址是通过比特币持有者通过公钥计算Hash所得出来的,仅提供地址并不能让其他人得知公钥。通常来说,公开公钥并没有安全风险。实际上,如果某个地址上有对应的资金,要花费该资金,就需要提供公钥。如果某个地址的资金被花费过至少一次,该地址的公钥实际上就公开了。
有关比特币交易更详细的可参考。
- 怎么挖比特币?
在比特币的P2P网络中,有一类节点,它们时刻不停地进行计算,试图把新的交易打包成新的区块并附加到区块链上,这类节点就是矿工。因为每打包一个新的区块,打包该区块的矿工就可以获得一笔比特币作为奖励(还记得之前说过交易有费用么?这就来了)。所以,打包新区块就被称为挖矿。
- 为什么比特币这么贵?
- 硬盘挖矿又是什么?
(未完待续)
参考资料
廖雪峰的网站
https://www.liaoxuefeng.com/wiki/1207298049439968/1207298477260480
以上是关于十分钟搞懂什么是区块链与比特币?的主要内容,如果未能解决你的问题,请参考以下文章
区块链与比特币基础知识——北京大学肖臻老师《区块链技术与应用》公开课笔记
(转)关于区块链与比特币 来源于嘶吼: http://www.4hou.com/info/news/6152.