区块链教程:比特币中的术语

本文介绍比特币中常见的术语;

主要参考《精通比特币》,PDF下载地址:区块链相关网站、资料分享

地址、私钥、公钥

比特币地址由一串字符和数字组成,以阿拉伯数字“1”开头。如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV。

比特币地址类似于email地址,用户转账的时候,直接使用地址进行转账;类似于给某个用户发送Email。

私钥和公钥就是我们常说的非对称加密的公钥、私钥;在比特币系统中,使用私钥生成公钥,公钥生成比特币地址,并且都是不可逆的。使用的是椭圆曲线加密算法(ECDSA)

区块

一个区块也就是区块链上的一个节点,是若干交易数据的集合,它会被标记上时间戳、高度号、和前一个区块的标识码。

所以可以说:一个区块通过hash码唯一标记,有唯一的高度;但是反过来只能说一个hash码确定唯一区块,但是不能说一个高度确定唯一区块。

区块链

通俗的说 区块链就是一个大账本。

技术上说,就是所有区块链在一起的一个链表结构;类似于C/C++中的单项链表数据结构。只是每个区块保存前一个区块的hash码值;所以从某个区块逆向上溯,最终都会找到创世区块。

如下图为一个区块链和区块的结构图:

比特币网络

比特币网络是一个P2P网络,这也是区块链必须依赖的一个环境。因为只有P2P网络才可以实现去中心化。比特币网络真正实现了我们一直讨论的云计算。整个P2P网络中有很多节点,这些节点可以广播和同步区块链信息。

矿工、挖矿、奖励

矿工就是有一定算力的网络节点(机器)。

挖矿就是对交易 确认的计算,也叫工作量证明(POW)。

奖励就是比特币系统赠送的比特币或者交易费用。奖励最终会显示在钱包(软件)中,其实奖励就是一个UTXO。

难度、工作量证明

网络会通过调整“难度”这个变量来控制生成工作量证明所需要的计算力。满足全网目标难度的情况下求解SHA256算法。

UTXO

比特币交易的基本单位是未经使用的一个交易输出,简称UTXO。某个用户钱包中的比特币数量(金额)就是交易最后到他账号中的所有UTXO的总和。所以比特币系统并不像某宝这样的中心化的存储,一旦数据库宕掉,你的余额(存储在数据库中)就看不到了

。比特币余额是整个区块链中UTXO的计算,所以永远不会宕机!

交易

一次BTC的转移就可以看做一个交易。当然交易的形式有很多种,但是归根结底还是区块链中的一次BTC流转。

脚本

比特币的交易验证引擎依赖于两类脚本来验证比特币交易:一个锁定脚本和一个解锁脚本。

如果你还是不懂,我给你讲个故事吧:

比如有个餐厅,每天的交易流水都要记录在一个本子上,每一页上面记录当天的所有交易。那么我们就可以说这一页就是一个区块,它包括了无数次交易记录。由于每天都有交易,所以每一页都可以找到上一页,这就相当于把所有区块链接起来了,那么这个记账的本子就是区块链了。

那么挖矿、奖励又是什么呢?比如老板每天晚上会来查账,会问:谁能给我准确汇报今天的交易明细、总额?(不同问题难度不一样),这个时候每个员工的运算速度(算力)是不一样的,聪明的员工会先算出来给老板汇报,老板觉得是正确的,就会给予奖励,这个过程你可以理解为挖矿和奖励

所以随着交易的增多,难度和计算力要求也越来越高,普通人就胜任不了,只有专业的(机器)才可以在一定的时间内给予确认

现在挖矿已经很难了,但是区块链技术的普及才刚刚开始。就像上篇文章我说的那样,这是一次革命,颠覆生产关系的革命!

可以加小编好友

多年编程经验,精通Java、Python、NodeJs、C++等;

目前致力于深度学习、大数据分析研发工作;

我们都是程序员!

这里是程序员实战基地!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180303G1B6NW00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券