美文网首页区块链研习社
区块链的前世今生

区块链的前世今生

作者: 悟空不是佛 | 来源:发表于2018-04-17 14:23 被阅读0次

    区块链(blockchain)是现在最火的一个名词,现在很多大公司和金融机构都设立了相关的技术部门去研发区块链产品,区块链技术被无数媒体和专家评为最有可能颠覆未来互联网格局的技术。

    现在让我们来看看什么是区块链以及它为何会被“神话”。

    区块链是在比特币(bitcoin)火之后进入大众视野中的,之前人们只知比特币而不知区块链。

    通俗讲,区块链是一个公共记账簿,而比特币是区块链最成熟和运行最稳定的一个应用。

    通过了解比特币我们就能了解区块链的前世今生。

    比特币是一种数字货币,它没有专门的发行机构,它的发行是由每个节点挖矿产生的,并且每隔大约4年(严格来说是每210,000个区块)生产量减半,例如2009年1月开始每个区块产生50个比特币,而到2012年11月减半为每个区块产生25个比特币,比特币作为一种流通的数字货币,已经在德国和日本合法化,目前在中国还不属于货币,只能算是一种流通商品。

    比特币的发行和流通完全基于p2p网络,因此没有一个中心机构,以此达到了去中心化,去中心省去了一大笔中心机构的维护费用,同时也避免了中心机构的腐败和垄断给客户造成的损失,比特币的每个全节点(之所以强调全节点,是因为有些节点并不参与挖矿,所以他们并不维护整个账本)都维护了一本相同的公共账本,这样就避免了单一节点遭受数据损失或黑客攻击造成的客户损失,这便是去中心化的好处。

    比特币的区块链是由许多的区块(block)组成的一条链,一个区块包含了从上一区块生成到这个区块生成时间段内的所有交易,严格来说不一定能包含两个区块生成时间段内的所有交易,因为区块的容量是1M,如果这个时间段内交易太多,剩余的交易将被打包到下一个区块,每个区块生成时间大约是10分钟,所以一笔交易被确认的时间也就是10分钟至20分钟。

    比特币依赖于工作量证明(pow)的共识机制和交易验证系统确保交易记录无法被篡改,保证了比特币系统的安全,同时又避免了数字货币的一个弊端“双重支付”,而这些都是通过挖矿来维持的。

    那么什么是挖矿?怎么进行挖矿?

    比特币网络中的挖矿是指全节点通过不断改变随机数Nonce进行哈希碰撞产生一个符合条件的哈希值,以此争夺记账权和奖励的行为。

    在每个全节点,时刻监控着比特币网络中发生的每一笔交易,所有发生的未确认交易都会被节点保存在交易池中,当这个节点收到一个从其他节点传播过来的一个新区块时,他将立即对新区块进行验证,验证通过后会把这个区块添加到本地节点的区块链上,并传播给下一个节点,同时为了参与下一个新区块的挖矿,他将马上把交易池中已经被验证的区块中的交易删除,以确保交易池中的所有交易都是未被验证的交易,接下来他把交易池中的所有交易打包到一个新区块中,这个区块被称为候选区块,之所以被称为候选区块,是因为这个区块只是一个未被验证的无效区块。

    我们来看看一个区块的区块头信息。如下图:

    每个区块的区块头都记录了前一区块的哈希值,这样就形成了一条链,可以无限往前追溯,查询到每一笔交易的所有关联交易。

    难度目标是一个拟设定的目标哈希值,工作量算法机制就是要找出一个比目标哈希值更小的哈希值,这个被找出的哈希值将成为这个区块的哈希值,会被记录到下一区块的区块头中。

    为什么找这个哈希值这么难呢?

    举个栗子,掷骰子,假如目标值是12,两个骰子要掷出小于12的点数,很简单,只要两个骰子不同时掷出6就可以达到。现在目标值降到6,要掷出小于6的点数仍有一半的概率,如果目标值降到3,就要掷出2的点数,概率小到了1/36。

    而要找到这个低于目标值的哈希值所需要的运算量比掷骰子大得多,而且没有规律,所以只能不断改变随机数去进行哈希碰撞。并且这个难度是可以随机调整的,比特币协议会根据全网的算力水平去动态调整难度来使得大约每十分钟生成一个新区块。

    区块中的第一笔交易称为创币交易(coinbase),这笔交易是向矿工的比特币钱包地址支付25个比特币的奖励和矿工费合计。那么如果我是一个矿工,我能不能把25改成1000或10000个比特币呢?答案是不能。

    这里就要引入比特币的交易验证系统,比特币的每个矿工节点在收到新的区块后会对该区块的交易数据按照协议规定的规则进行校验,只有校验通过该区块才是有效的,否则就会被抛弃,正因为每个节点都遵循相同的校验规则,所以就避免了单一节点作弊的可能,那些不遵守规则的矿工将受到白白浪费电力和时间的惩罚。

    因此比特币的成功正是由于解决了去中心化,数据安全,几乎难以被篡改,数字货币的双重支付,和网络共识这些问题。区块链被“神话”也正因如此。

    但是目前来看,区块链的缺点也是显而易见的,那就是每秒处理的交易量太弱(目前一个区块容量为1M,大概也就500~600笔交易的数据,所以才出现了眼下关于比特币扩容的争议),每笔交易需经过10分钟~20分钟才能被确认,要想满足金融银行系统每秒上千万的交易量还差得很远。

    虽然缺点存在,但是科学的发展历史告诉我们,每一项改变时代的技术刚出现的时候都是优点和缺点共存,再由后来人慢慢去完善,并普及开的。区块链现在正处于萌芽阶段,我们期待一个杀手级的应用。

    相关文章

      网友评论

        本文标题:区块链的前世今生

        本文链接:https://www.haomeiwen.com/subject/jydukftx.html