美文网首页
区块链网络中的信任

区块链网络中的信任

作者: HivePM | 来源:发表于2018-10-17 16:08 被阅读0次

       前面两篇文章我们简单说了下什么是区块链,区块链和比特币的关系以及比特币的交易机构,今天想简单聊下比特币中是如何验证交易的,也就是说怎样保证整个交易是真实可信的。

 比特币钱包地址中的交易记录

       如上一篇文中所描述的内容,交易已经按照约定好的输入,输入等字段打包成一个数据结构。以交易003小牛转给小王1个比特币为例,我们怎么样确定这笔交易的两个主体是小牛和小王而不是其他人呢。目前银行体系要求,所有的银行卡开户时都需要本人携带身份证进行实名开户。那么在区块链的世界中,是通过非对称密码学,数字摘要,数字签名来完成的。

       下面我们先来依次介绍下这几个密码学概念

非对称加密算法

       在比特币的世界里,每个人都一个公钥-私钥对,这也是非对称加密算法的特点。大家可以将其理解成两把钥匙,只不过比特币世界中的每一个人都有一把你的公钥钥匙,而私钥钥匙只有你一个人拥有。通过公钥进行加密的信息,只有与其配对得私钥可以解开,同理,通过私钥进行签名的信息,也只有对应的公钥可以解开。

       而真实情况下,公钥和私钥其实就是一串无规则的数字字母组合。当我们注册比特币钱包后,会拥有一个比特币钱包地址,这个地址其实就是对我们的公钥重新编码后获得的,很多文章中还将公钥和钱包地址混用,如果想进行比特币交易首先就必须拥有自己的比特币钱包地址。

数字摘要

       数字摘要是指一段信息,一个文件等通过哈希函数,摘要成一段固定长度的字符串。数字摘要的特点是,文件或者信息中有任何小的改动,都会使摘要结果完全不同。同一个信息或文件,摘要多少次都是一样的结果。

数字签名

       数字签名是数字摘要和非对称加密算法的一种应用。就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。用发送者私钥进行的签名,只有发送者的公钥才可以解开。

       那么了解了这几个密码学概念后,我们来看下在区块链中是如何确定转账这和收款人身份的。

如何确定是小牛发起的交易

1、小牛将该笔交易进行哈希运算,得到该笔交易的数字摘要,在用自己的私钥对数字摘要进行加密。并将自己的公钥附在消息的末尾。

2、小牛将交易,数字签名和自己的公钥一同广播到网络中,收到该消息的节点用小牛的公钥解密出消息的摘要A,在通过讲消息进行哈希运算得到摘要B,对比A和B若相同遍可以得知该交易确实是小牛发起的。整个过程如下图所示

如何确定是是小牛本人发起的交易

如何确定小牛有权使用这些输入

       在比特币交易中每一笔输入的交易都有唯一的哈希值和索引能够唯一的指向该笔交易,输入交易的输出内容,我们可以将其理解为是一个脚本,类似:

OP_DUP OP_HASH160abcd1234...9876OP_EQUALVERIFY OP_CHECKSIG

       其中abcd1234...9876就是小牛的公钥,整个脚本的意思是谁能让这个脚本运行通过,谁就能花费这笔交易。

       那么同样的,当小王准备花费这笔交易时,也需要进行相同的验证。验证通过后,交易才被认为是有效的交易。

       被确认的交易被放入本地的交易池中,等待被打包确认。

       通过以上的叙述,我们大概理解了在比特币的世界中交易是如何实现的,那么我们常说,交易是存储在区块上的,区块又练成了链,那么交易在区块上是如何存储的呢。下一篇文章我们就聊一下区块链的数据结构和挖矿到底是怎么一回事

相关文章

网友评论

      本文标题:区块链网络中的信任

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