浅析区块链——从比特币说起

      比特币的发明者“中本聪”是一个叫“密码朋克(Cypherpunk)”的邮件组里的成员,在这个邮件组里有许许多多的大牛,包括但不限于

 

       在这个邮件组里,大牛们经常讨论关于数字货币的发明,这些讨论激发了中本聪的灵感。2008年,中本聪在邮件组里发表了一篇名为《比特币:一个点对点的电子现金系统》的论文,就此宣告比特币的诞生,2009年1月3日,第一个比特币被成功挖出。

       比特币是一种数字货币,同时也是一种去中心化的记账系统,所谓的去中心化,就是比特币的数据不存在于某一台大型服务器,而是存在于全球所有的服务器中。当众多服务器中某一台服务器的比特币数据由于人为或客观原因,与其他的服务器的数据不一致时,该怎么去验证账本的正确性?这里先说一下哈希函数,根据百度百科的定义,“一般的线性表,树中,记录在结构中的相对位置是随机的,即和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较“的基础上,查找的效率依赖于查找过程中所进行的比较次数。 理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。”这个对应关系f,便是哈希函数。简单地说,哈希函数具以下特点:1、同样的原始信息用同一个哈希函数得到的摘要信息是完全一致的;2、如果原始信息发生了变化,哪怕变化再微小,也会哈希出完全不一样的摘要信息;3、从哈希得到的摘要信息中是无法逆推出原始信息的。哈希函数的这三个特点在区块链技术中占有及其重要的地位。现在有一个账本哈希交易信息得到摘要信息,与其他的账本哈希出的摘要信息进行比对,如果摘要信息不一致,则说明该账本出现了错误,只有相同的账本信息才能得到相同的哈希值。

       所谓的区块的结构如下图所示:

 

      在添加新的账本时,会把现在的账本的哈希值作为原始信息,与新添加的账本进行哈希,从而得到一个新的哈希值。

 

       由此形成了一个由区块组成的链条,在核对账本信息的时候,只需要核对上一个区块的信息便可以知道账本是否错误。

       在比特币的账户中,比特币的拥有者的账号本身是一个地址,例如在以下这笔比特币交易信息中,付款地址向收款地址转了0.2个比特币,谁能用这个付款地址进行比特币支付,谁就拥有这个账户的所有权,而每一个地址又对应拥有一个私钥,私钥相当于账户的密码,是需要账户的拥有者妥善保管的,需要强调的是,私钥经过两次哈希可以推导出地址,而地址是无法推导出私钥的。

 

       私钥证明了某个人对该账户拥有所有权,但是在证明的过程中,由于私钥的隐私性,不可能把私钥公开进行证明,需要用非对称加密技术对交易进行签名,这个过程为:

       1、对交易进行哈希得到摘要

 

        2、用私钥对摘要进行签名,得到签名信息


       完成签名后,服务器会向全网广播,广播的内容为“付款地址向收款地址支付了x个比特币,签名为3cdferdadgadg“,其他服务器收到广播信息后会对签名进行验证,验证过程如下:

 

       实际上,签名和验证为逆运算,写成公式即为:

       签名=摘要+私钥=哈希(付款方地址)+私钥

       验证=解密(签名+付款方地址)=摘要,在此,付款方地址也称为公钥。

        记账=对交易过程进行哈希打包。记账会消耗算力,系统会奖励比特币给一段时间内第一个记账成功的节点,那么所谓的记账成功指的是什么呢?前面说到,在添加新的账本时,会把现在的账本的哈希值作为原始信息,与新添加的账本进行哈希,从而得到一个新的哈希值。为了提高记账的难度,比特币系统会要求哈希出的新哈希值以n个0开头,那么为了实现哈希出以n个0开头的哈希值,在哈希的过程除了上一个哈希值和新的交易记录,还要加入一个随机数,如下图所示:

       计算机在进行运算的时候,主要就是求解这个随机数,直到得到满足条件的哈希值,这个过程也就是人们所说的挖矿。第一个找到满足条件的随机数的用户,就可以得到该节点的唯一记账权,系统就会奖励一定的比特币给该用户,而其他用户就只能复制这个结果,没有任何奖励。如果这时候有两个用户同时得到了满足条件的随机数,那么这两个满足条件的新哈希值A和B会同时向全网广播,这时候还无法判定这个节点的记账权的归属,如果这时候有接收到哈希值A的用户根据哈希值A又哈希出了下一个节点A+,那么这一节点的记账权就归哈希出A的用户,这就是以链条长为准的原则。

       随着比特币越来越火爆,人们发现比特币的底层技术例如时间戳、点对点的网络、加密技术和工作量证明等也可以应用到其他领域,将这些技术提炼出来,便成了今天的区块链技术。那么为什么叫区块链呢?因为在比特币的数据是以一个个区块的形式存储并且以哈希的方式连接,由此形成了一条条区块的链条,因此叫区块链。

       基于区块链技术的特点,应用前景包括:1、基于区块链的资产特性,可应用在数字资产发行、支付(跨境)、交易、结算;2、基于记账的特性:可应用在股权交易、供应链金融、商业积分;3、基于不可篡改特性,可应用在溯源、众筹、医疗证明、存在性证明;4、基于点对点的特性,可应用在共享经济、物联网;5、基于隐私的特点,可应用在匿名交易等。


发布了14 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Luncles/article/details/80490783