“比特币交易”比特币的交易原理

  初识 - 交易的认证

  如果我想要转出比特币给你,首先我要将此意向告知给比特币网络所有的节点让他们来认证这项交易。他们需要证明我有足够的比特币去完成交易以及我并没有将它用到与别人的交易之中并且校对公钥和签名。一旦这项交易被认证,那这信息就会被加入一个区块之中而区块和区块相连,就成了区块链。想要篡改一项交易,那就需要篡改之后所有的区块,而这基本上是不可能的。

  其次-公钥与私钥

  交易的逻辑很简单,那具体又是怎么进行的呢?

  首先,比特币钱包中不会携带我拥有的比特币,而是我的比特币地址,内含有我所有的交易历史以及余额。

  我们需要通过随机数生成一串32字节的数,亦是我们的“私钥”。随后我们可通过椭圆曲线加密算法生成私钥所对应的“公钥”。公钥由65个字节组成。公钥再经过一些列的加密处理就会得到我们的钱包地址。

  公私钥可进行互相加密和解密,其中公钥是完全公开的,私钥则需隐秘保管,这既是非对称密钥密码系统。且虽然通过我们的私钥是可以推算出公钥的,但没人可以从公钥中推算出你的私钥,因为私钥生成公钥的加密算法是不可逆的。

  每次交易时,我的交易原始数据包括了转账数额以及转入的钱包地址。而私钥的重要性是它将对我要进行的比特币交易进行“签名”。这个签名会和生成的转出公钥一起被加入交易数据包之中,并扩散到比特币的网络上寻求认证。网络上的节点可通过公钥中记载的交易历史来认证交易,因为所有的交易在比特币的账簿上都是公开的。这个设计的精妙之处就在于程序会用交易数据中的公钥对签名进行解密和校验,而只有对应的公钥才可以解密由私钥生成的签名。如果验证失败则说明公钥和私钥并不是相对应的一组。在这个过程中,我们既认证了私钥的正确性,又不需要知道私钥的确切字符串。对私钥的保密是任何钱包最基本也是最重要的应用,因为掌握了私钥就可以对一个钱包的余额进行操作。

  终章 - 哈希值和区块

  当我的交易被正式认证后,就会和其他的交易一起加入一个区块之中。

  我们首先来了解一下“哈希值”的概念。哈希值即是哈希函数的输出值。哈希函数通过复杂的数学算法将任何数量的字母和数字转换成64位的字符串,甚至我们这一整篇文章都可以被精简到64位的哈希值。虽然其输出不是随机的,但每次改动输入值中的一个标点符号都会得到完全不同的结果。也因为这个特性,区块链可以有效率的识别交易中的任何篡改行为。哈希值也是不可逆的函数,一个哈希值可能对应着多数个输入值,因此通过哈希值来推导输入值也是基本上不可能的。

  通常认为,想要篡改区块链中的数据就需要掌握51%以上的算力。而每个区块中都含有代表了上一个区块的哈希值,所以如果上一个区块有任何略微的改动,那现区块上的记录就会大相庭径。因此如果想要篡改任意区块上的数据,那就要将后续区块的哈希值都做出调整。而在进行篡改的过程中,可能就会有新的区块加入到这个链中,进一步增加需要完成的工作量,因此我们认为区块链附有不可篡改的特性。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。【本站不拥有所有权,不承担相关法律责任。】

上一篇:网络钓鱼比特币,把blockchain用户作为目标 下一篇:【莱特币机】莱特币分叉要出变数?

本文地址:巴如意比特http://www.bruyi.com/hqfx/324.html

站长统计