2021年618京享红包 - 618大促主会场
九阳 Joyoung电磁炉 电陶炉 2200W大功率 家用火锅套装 旋转控温 红外光波加热 H22-x3 赠烤盘
凯迪仕电子锁618狂欢购
有健康 更热爱
美丽雅品牌会员周

十分钟搞懂什么是区块链与比特币?

创可贴 9天前   阅读数 14 0

想知道的问题

什么是hash码?hash函数?

举一个最简单的hash函数:%100(对100取余):

输入5,那么它的hash码就是5;输入156,hash码就是56…

hash函数的作用就是对输入的数据做一个复杂的函数计算,输出另一个数据(一般是字母数字的组合),而且对于不同的输入,输出很大可能是不会相同的(不能有同样的身份证)。

hash函数输出的结果就是hash码,代表输入这个个体的唯一ID。

注:hash函数是单向的,从结果无法反推输出

什么是区块链?

区块链就是一个不断增长的全网总账本?伪造需要拥有超过51的算力;

区块链由一个个区块构成的单向链表,其中每个区块指向前一个区块:

img

并且每个区块都记录了一些重要参数,如下:

img

  • 区块hash码是区块的唯一标识,类似于身份证号,全网唯一。值得注意的是,区块哈希码不是直接记录在某个区块,而是由区块的头部数据计算hash所得,区块的头部数据主要包括:

img

  • 上一区块是该区块前一个区块的hash码;

  • MerkleHash是用来确保交易记录没有被更改

  • 区块的主体部分就是一系列的交易数据,Coinbase是挖矿奖励,其他是各个区块之间的交易信息

MerkleHash可以保证交易?

MerkleHash是对该区块链记录的所有交易信息的hash,若一个区块记录有四个交易信息:tx1、tx2、tx3、tx4,两两进行hash得到b1、b2,再对b1和b2进行hash计算得到最终的MerkleHash值如下:

img

其中任何一个发生变动,最终算出来的MerkleHash就不一致了。而且之前介绍了一个区块哈希值就是由MerkleHash以及其他数据计算出来的,如果MerkleHash不一致,最终的区块哈希也就不一致,这个区块就是不被信任的,没法用了

什么是比特币?

数字货币是基于加密技术的不可伪造的数字货币系统,电子货币只是纸质货币的电子化?

比特币是基于区块链技术实现的分布式数字货币系统;

相比于传统由中心政府发放货币,而后统一记账的货币体系,比特币是基于区块链技术实现账本完全公开,无需中心机构处理交易;

比特币怎么交易?

比特币的交易基于P2P。啥?P2P?

P2P即(Peer-to-Peer),不像传统有国家或者某银行来专门进行交易的记录,而是两个节点之间直接进行交易——那这…可信嘛?只要满足条件,就是可信的。

举个例子,小明说自己给了小红1万元:

img

只要能验证小明确实做了这样的事情,并且他有1万块钱,那么这笔交易就被认为是有效的。那么问题来了——如何验证是小明说的呢

通过数字签名的方式,可以验证小明到底有没有说过这样的话。

签名就类似于以前在合同上写自己的名字,不过数字签名是通过加密解密手段实现的:用户有两个密钥——公钥和私钥,公钥全网可见,私钥自己保管好,如果某条信息用公钥加密,那么只有用私钥才能解释出原来的信息;如果用私钥加密,那么只有公钥才能解释。关于签名算法具体可以参考:数字签名算法

比特币怎么交易的?

说起比特币的交易就有点意思了,**有点反人类,**下图是一小段区块链:

img

其中in表示给钱的人out表示钱给谁了。左边第一个区块第一行就表示小明给了小红2个比特币。

但是,如果小明自己努力挖矿,资产高达50比特币,只给小红2个,那么就不能像上面那样写,必须这样

img

因为比特币规定所有的资产必须一次性花完,自己给自己也算花钱。

如果小红收到另一个小伙子小军的1.5比特币,然后都想给小白,那就得这样:

img

这是比特币规定的多输入1输出的情况。

另外在交易过程中还会产生手续费,这些手续费会付给当前正在挖矿的人。

如何验证一个交易呢?举个例子?

当我们要简单验证某个交易的时候,例如,对于交易f36abd,它记录的输入是3f96ab,索引号是1(索引号从0开始,0表示第一个输出,1表示第二个输出,以此类推),我们就根据3f96ab找到前面已发生的交易,再根据索引号找到对应的输出是0.5个比特币,所以,这笔交易的输入总计是0.5个比特币,输出分别是0.4个比特币和0.09个比特币,隐含的交易费用是0.01个比特币

img

注意!注意!比特币的地址是通过比特币持有者通过公钥计算Hash所得出来的仅提供地址并不能让其他人得知公钥。通常来说,公开公钥并没有安全风险。实际上,如果某个地址上有对应的资金,要花费该资金,就需要提供公钥。如果某个地址的资金被花费过至少一次,该地址的公钥实际上就公开了

有关比特币交易更详细的可参考

  • 怎么挖比特币?

在比特币的P2P网络中,有一类节点,它们时刻不停地进行计算,试图把新的交易打包成新的区块并附加到区块链上,这类节点就是矿工。因为每打包一个新的区块,打包该区块的矿工就可以获得一笔比特币作为奖励(还记得之前说过交易有费用么?这就来了)所以,打包新区块就被称为挖矿

  • 为什么比特币这么贵?
  • 硬盘挖矿又是什么?

(未完待续)

参考资料

廖雪峰的网站
https://www.liaoxuefeng.com/wiki/1207298049439968/1207298477260480


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: