首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

比特币交易与区块链技术

笔者经过对比特币原理的研究与学习,把比特币的交易过程做了相对容易理解的梳理,希望对想了解这方面内容的朋友有所启发。

1、首先,用户需要通过比特币客户端生成一个私钥,同时生成一个或多个公钥,这个公钥其实就是收款地址。那么如果通过多个客户端会生成多个私钥,那么这些私钥对应的钱包是不能够互相看到的,就像我们去不同的银行开户,互相之间是看不到的。如果在不同的客户端都导入同一份私钥的话,不同的客户端就可以看到各自的钱包,起到了一个归集的作用,但是一旦私钥丢失,那么所有的资产将不能找到,因为由公钥到推不出私钥,这些资产将永远无法使用,相信私钥丢失的人将不断增加,这会加剧比特币的紧缩。建议开设3个私钥,分散储存,既可抗风险,又不至于产生太多的私钥管理成本。

2、用户A向B转账时,输入了B的收款地址,相当于用B的公钥锁定了这笔交易中的比特币,以后也只有B可以用私钥解锁并使用这笔比特币。那么是什么决定了A可以将这些比特币转给B呢,也就是说A为什么可以使用这些比特币呢?区块链技术的可追溯性的价值就在这里,因为比特币系统可以追溯到上一笔C给A转账的交易,在那笔交易里,用户C用A的转账地址将比特币锁定,因此A可以使用其私钥解锁,进而使用这笔钱。所以比特币的绝大部分交易基本上就是解密(转入)→加密(转出)的过程,解密用来追溯上一笔转入的交易,以便明确转出者是否有权动用这笔钱,加密用来发起一次转出,加密后只有收款者才能解密并动用这笔钱。

3、交易发生后,将进行全网广播。全网所有的节点在很短的时间内就会接到这笔交易。每个节点会先把交易暂存下来并进行合法性检验,检验通过后,这笔交易进入有效交易池,等待被装入区块。

4、与此同时,网络上面所有的矿工节点整开足马力进行挖矿工作。即将有效交易池里的近千笔交易(TX0,TX1,TX2...)中的上一个区块的Hash值和Nonce参数组合成一个文本并进行SHA256哈希运算算出Hash值(256bit),通过Nonce的不断变化,其实是通过穷举法从0开始,遍历到2的32次方,计算出的Hash值也会不断变化,如果Hash值的高位48bit为0x00000000FFFF,则计算停止,挖矿成功,这个穷举的过程就是拼算力的过程。这里的高位48bit也是控制挖矿难易程度的难度系数,越高代表难度越大,挖矿越慢,反之亦然。

5、挖矿成功的节点有权将计算Hash值所使用的信息组装成一个新区块,放在本节点同时进行全网广播通知其它节点记账,其它节点收到广播的消息后,也都记录下这个新区块。

6、从挖矿过程可以看出,矿工节点每次挖出的新块都会含有上一个区块Hash值的信息,这些信息就像基因一样被传递,从而形成一个牢不可破的链条。在篡改任一区块的交易信息后都会导致所有的区块数据匹配失败,即不会被其它旷工节点承认,篡改者的篡改将变得毫无意义,这也就形成了区块链不可篡改的特性。

从以上比特币交易的过程可以发现,这个链条就像永动机一样不断的进行更新,不断的全网记账,其内在的奖励机制可以促使其不断的运行下去,自诞生之日起很稳定的运行了多年,没有任何中心机构的背书,人与人之间的信任通过加密技术得到了解决,其颠覆性正在于此。

附几个概念:

全节点:这种节点会将历史上所有的区块数据(包含所有交易)都下载下来,因此,这种节点可以独立的进行比特币地址的余额验证、交易有效性验证、历史交易验证等工作。由于全节点需要保留比特币网络上所有的交易数据,因此它会根据网络上广播的新区块信息,不断的新增最新的数据,保证区块链数据处于最新的状态。这种节点的缺点也很明显,由于需要下载历史上所有交易数据,这种节点显得特别笨重。写这篇文章的时候全节点已经达到200多G的容量了。

SPV节点:由于移动设备的飞速发展,在手机、Pad等便携设备上进行比特币交易的需求越来越旺盛。显然在存储空间有限的便携设备上,无法安装“全节点”。因此比特币系统支持一种轻量级的节点客户端。这种客户端只会下载区块的关键数据,比如区块的Hash值,Nonce数值等数据~通过这些数据就可以知道区块链概况。这些关键数据只有区块全量数据的1/1000,因此客户端会显得很轻便。但SPV节点的问题是,在进行交易验证时,必须通过网络从全节点处获取验证所需的信息,才可以进行验证。如果你身边有黑客建立的伪节点(如受到Sybil攻击),可能会干扰你的验证过程。因此,要保证万无一失的安全性,最可靠的方法还是建立一个“全节点”。

矿工节点:部分节点要通过大量、不停歇的计算,去争取组装区块及发起全网记账的权利(即工作量证明PoW)。这样的工作不是每个节点都要做的,而只有矿工节点才会去做。为什么叫做“矿工”节点呢?因为每次这类节点挖矿成功并争取到记账的权利时,比特币系统会给这个节点奖励一定数量的比特币。这个过程非常像是一个矿工在很费力的挖矿,奖励的比特币就是这个矿工挖到的矿。这也是只要控制了51%的矿工节点就可能发起51%攻击的原因。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180322G00YOZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券