大话区块链与比特币

1、区块链和比特币是什么?

区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。

区块链是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术。

2008年由中本聪第一次提出了区块链的概念。比特币白皮书英文原版其实并未出现 blockchain 一词,而是使用的 chain of blocks。最早的比特币白皮书中文翻译版中,将 chain of blocks 翻译成了区块链。这是“区块链”这一中文词最早的出现时间。

2、了解区块链

区块链的本质是一个分布式的公共账本,任何人都可对这个账本进行核查,但不存在单一的用户可以对它控制。在区块链系统中的参与者共同维持账本的更新:它只能按照严格的规则和共识进行修改

举例:如果张三借了李四100块钱,这个时候,张三在人群中大喊“我是张三,我借给了李四100块钱!”,李四也在人群中大喊“我是李四,张三借给了我100块!”此时路人甲乙丙丁都听到了这些消息,因此所有人都在心中默默记下了“张三借给了李四100块钱”。这个系统中不需要银行,也不需要借贷协议和收据,严格来说,甚至不需要人与人长久的信任关系(比如李四突然又改口说“我不欠张三钱!”,这个时候人民群众就会站出来说“不对,我的小本本上记录了你某天借了张三100块钱!”)。

       这是一个去中心化的系统,整个系统中没有了权威的中心化代理,信息的可信度和准确性便会面临问题。

 可能你已经发现了,在上述的模型中,所谓的“100块钱”已经不重要了。换句话说,任何东西都可以在这个模型中交换,甚至你可以凭空杜撰一个东西,只要大家承认,你就可以让你杜撰的东西流通。比如:我在人群中高喊一声“我创造了10个查克拉!”,我甚至不需要知道查克拉是什么,也不需要关心世界上是不是真的有查克拉,只要大家都听到,然后在自己的小本本上记下“某某有10个查克拉”,于是我就真的有10个查克拉了。从此以后,我便可以声称我给了某人1个查克拉,只要路人甲乙丙丁都收到并且承认了这一信息,那我就算完成了这次交易,哪怕世界上没有查克拉。又比如:“比特币”,区块链是比特币的底层技术,真正的区块链和比特币比上述的模型复杂太多,细节也丰富太多。

 但是存在以下问题:

       假设过了很长一段时间,凭空创造的查克拉已经在这个系统中流通了起来,大家都开始认可了查克拉。但是这个系统中一共就只有10个查克拉,于是有人动了坏心思,他在人群中高呼“我有10个查克拉!”怎么办?大家是直接在本本上记下他有10个查克拉么,这样不是人人都可以伪造查克拉了么?

为了防止这种现象发生,决定在我创造查克拉的时候给我的查克拉打上标记(更准确地说,我是给我喊的那句“我创造了10个查克拉”打上标记,比如标记为001),这样以后在每一笔交易的时候,我在高喊“我给了某某1个查克拉!”的时候,会附加上额外的一句话:“这1个查克拉的来源是记为001的那条记录,我的这句话标记为002!”。我们再抽象一点,某人喊话的内容的格式就变成了:“这句话编号xxx,上一句话的编号是yyy,我给了某某1个查克拉!”,这样就解决了伪造的问题。其实上述模型就变成一个简化的中本聪第一版比特币区块链协议

 “凭啥?”

     “凭啥你喊一句话我就帮你记?我的小本本不要钱么?”。为了激励大家帮我传话和记账,我决定给第一个听到我喊话并且记录在小本本上的人一些奖励:第一个听到我喊话并记录下来的人,你就凭空得到了1个查克拉,这个查克拉是整个系统对你幸苦记账的报酬,而你记录了这句话之后,要马上告诉其它人你已经记录好了,让别人放弃继续记录这句话,并给你自己的记录编号让别人有据可查,然后你再把我的话加上你的记录编号一起喊出来,供下一个人记账。

当这个规则定下以后,这个系统中一定会出现一批人,他们开始竖着耳朵监听周围发出的声音,以抢占第一个记账的权利。比如概念 “比特币挖矿”。毕竟2019年5月1比特币=45000元

比特币挖矿机,就是用于赚取比特币的电脑,这类电脑一般有专业的挖矿芯片,多采用烧显卡的方式工作,耗电量较大。用户用个人计算机下载软件然后运行特定算法,

“听谁的?”

在这个系统中,如果我和张三几乎同时地喊出一句:“为了艾泽拉斯!”。由于听众所处的位置不同,一定会有人先听到我说的那句话,而另外一些人则先听到张三的那句话,如果我们规定只能有一个人说出这句话,那到底这句话是谁说的?

       如果不加任何条件,那么上述的情况一定会这样发展:一部分人认为这句话是我说的,在听到这句话之后开始记账,之后他们所做的所有事情都是基于这个事实,并且随着这个信息一次次的传下去,这条信息链会越来越深;而另外一群认为是张三先说这句话的人,也会按照这样的趋势发展。这样,原本是一条唯一的信息链在我们喊出“为了艾泽拉斯”这句话之后,分叉了?

现在的规则是,新节点总是采用最长的那条区块链。如果区块链有分叉,将看哪个分支在分叉点后面,先达到6个新区块(称为”六次确认”)。按照10分钟一个区块计算(后面会讲为什么是10分钟),一小时就可以确认。

3、区块链的应用

从前的信任靠的是信誉、靠百年老店、权威机构等,如果运用上区块链的技术,就能从技术的角度实现的,例如:个人信用,防伪溯源手段、货币等。同时区块链具有多方共识,交易溯源,不可篡改等技术特点,使它在确保信息可信、安全、可追溯等方面具有传统技术不可比拟的优势。

4、从技术角度简单理解区块链

(1) 区块链的本质

区块链是一种特殊的分布式数据库

首先,区块链的主要作用是储存信息。任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库。

其次,任何人都可以架设服务器,加入区块链网络,成为一个节点。区块链的世界里面,没有中心节点(去中心化),每个节点都是平等的,都保存着整个数据库。你可以向任何一个节点,写入/读取数据。

(2) 区块链的最大特点

区块链没有管理员,它是彻底无中心的其他的数据库都有管理员,但是区块链没有。如果有人想对区块链添加审核,也实现不了,因为它的设计目标就是防止出现居于中心地位的管理当局。

没有了管理员,人人都可以往里面写入数据,怎么才能保证数据是可信的呢,这就是区块链奇妙的地方。

(3) 区块

区块链由一个个相连的区块(block)组成。区块很像数据库的记录,每次写入数据,就是创建一个区块。

每个区块包含两个部分:

区块头(Head):记录当前区块的元信息

区块体(Body):实际数据

(4) Hash 的不可修改性

区块与 Hash 是一一对应的,每个区块的 Hash 都是针对”区块头”(Head)计算的。

区块头包含很多内容(包括上一个区块的Hash、当前区块体的Hash等,见上图)。这意味着,如果当前区块的内容变了,或者上一个区块的 Hash 变了,一定会引起当前区块的 Hash 改变。

如果有人修改了一个区块,该区块的 Hash 就变了。为了让后面的区块还能连到它,必须同时修改后面所有的区块,否则被改掉的区块就脱离区块链了。Hash 的计算很耗时,同时修改多个区块几乎不可能发生。

正是通过这种联动机制,区块链保证了自身的可靠性,数据一旦写入,就无法被篡改。这就像历史一样,发生了就是发生了,从此再无法改变。

(5) 采矿

区块链的发明者故意让添加新区块,变得很困难。他的设计是,平均每10分钟,全网才能生成一个新区块,一小时也就六个。

这种产出速度不是通过命令达成的,而是故意设置了海量的计算。也就是说,只有通过极其大量的计算,才能得到当前区块的有效 Hash,从而把新区块添加到区块链。由于计算量太大,所以快不起来。

这个过程就叫做采矿,因为计算有效 Hash 的难度,好比在全世界的沙子里面,找到一粒符合条件的沙子。计算 Hash 的机器就叫做矿机,操作矿机的人就叫做矿工。

原文出自:https://www.cnblogs.com/zhuweiheng/p/8206188.html

猜你喜欢

转载自blog.csdn.net/zhangjian8641/article/details/92743329