比特币(BTC)
- 点对点(P2P)传输的数字加密货币,总量2100万枚。
- 核心算法:SHA-256
- 区块时间:约600秒/块
- 区块奖励:当前12.5BTC/区块(每产出21万个区块/约每四年减半一次,最近一次减半时间:2016年7月9日)
- 货币单位:BTC/XBT
莱特币(LTC)
- 基于Scrypt算法,2.5分钟确认一次,总量为8400万。
- 核心算法:Scrypt
- 区块时间:150秒/块
- 减半时间:4年
- 区块奖励:最初50LTC,当前25LTC
- 发行量是比特币的4倍
以太坊(ETH)
- 核心算法:Ethash
- 区块时间:约15-17秒/块
- 区块奖励:5
- 货币总量:7200万+1872万/年
以太经典(ETC)
- 核心算法:Ethash
- 区块时间:约15-17秒/块
- 货币总量:固定为2.1亿,最高不超过2.3亿,每500万个区块减速20%,第一次减产时间预计为2017年12月
- 独立的加密货币
每个区块都分为3个部分:summary(基本情况)Hashes(哈希值)Transctions (交易详情)
第1部分:summary(基本情况)
Number Of Transcations ------> 是交易数量
Output Total ------> 输出数量,是一笔奖励50BTC
Estimated Transaction Volume ------> 是输入值,因为是第一笔交易,来自系统奖励,所以输入是0。
Transction Fees ------> 是交易的手续费,刚开始的交易都是不需要手续费的。
Height ------> 区块在主链(Main Chain)中的高度(每增加一个区块加1)
Timestamp ------> 这个区块创建的时间,是2009年1月3日18时15分5秒。
Received Time ------> 是收到的时间,时间也是2009年1月3日18时15分5秒
Relayed By ------> 中继,未知。
Difficluty ------> 难度,代表挖矿的难度值。
Bits ------> 位数Size 表示区块的大小,是0.285kB
Weight ------> 区块重量,主要是隔离见证和矿工使用的。
Version ------> 表示交易数据结构的版本号
Nouce ------> 是矿工在区块头上添加的哈希值数据
Block Reward ------> 是这个区块奖励的数量,第一笔是50BTC
第2部分 Hashes(哈希值)
Hash ------> 是这个区块的哈希值(哈希是一种算法,把数据变成一串数字代码),是这个区块的唯一编号
Previous Block ------> 是这个区块前面一个区块的哈希散列值
Next Block ------> 是这个区块下一个区块的哈希值
Merckle Root ------> 是默克尔根,这是一种二叉树的计算方法,通过Merckle Tree,将区块头与区块体(大量交易)连接
第3部分 Transctions (交易详情)
是这个区块所记录的全部的交易情况,每一笔交易都包含交易的时间、输入地址、输出地址、交易的数量等信息。
基本常识:
- 区块链不等于比特币,区块链只是比特币系统用来记录交易信息的账簿;
- 比特币没有账户余额的概念,所有的交易只记录资金的来源和去向,所谓账户余额是区块链中计算出来的结果;
- 挖矿奖励是为了维护整个系统鼓励人们利用自己设备的算力资源来共同验证每笔交易的有效性而给予的奖励;
签名加密
一笔比特币交易一旦被创建,它就会被资金所有者(可能存在多位所有者)签名。如果它是合法创建并签名的,则该笔交易现在就是有效的。它包含资金转移时所需要的所有信息。用户的私钥用于生成支付比特币所必需的签名,来证明资金的所有权,这样的签名加密是为了确保交易内容不被篡改。这和前面介绍的纸质支票的授权签字效果相同。
网络中节点收到交易信息后,会对交易的合法性进行检查,资金所有者的签名加密是重要的验证依据,检查都通过后,则将交易标记为合法的未确认交易,才会在网络中进行广播。
- 私钥
一个比特币钱包中包含一系列的密钥对,每个密钥对包括一个私钥和一个公钥。私钥是一个数字,通常是随机产生的。一个比特币地址中的所有资金的控制取决于相应私钥的所有权和控制权。私钥必须保密,因为一旦被泄露,相当于该私钥保护下比特币也就丢失了。
通过在一个密码学安全的随机源中取出一串随机字节,对其使用SHA256哈希算法进行运算,生成了一个256位的数字,这样的一个数字就可以作为私钥。以十六进制格式表示一个随机生成的私钥. - 公钥
通过椭圆曲线算法可以从私钥计算得到公钥,这是不可逆转的过程。由公钥经过单向的加密哈希算法生成的比特币地址以数字“1”开头,在交易中比特币地址就是收款人的地址。 - 钱包
比特币钱包是私钥的容器,钱包只包含私钥而不是比特币,每一个用户有一个包含多个私钥的钱包。钱包中包含成对的私钥和公钥,用户用这些私钥来签名交易。
其中一种常见且典型的钱包就是使用“助记码词汇”做为种子,而生成私钥的钱包。这样的单词的序列可以重新创建种子,并重新创造钱包以及所有私钥。在首次创建钱包时,带有助记码的钱包应用程序将会向使用者生成一个12至24个单词,单词的顺序就是钱包的备份。 - 交易脚本
交易脚本是检验交易是否合法的核心机制。一般每个交易都会包括两个脚本:输出脚本,PubKey和输入脚本,Sig。
输出脚本一般由付款方对交易设置锁定,用来对收款方进行权限控制,例如限制必须是某个公钥 (比特币地址) 的拥有者才能花费这笔交易。
输入脚本 (签名脚本) 常常含有一个被用户的私钥生成的数字签名,用来证明自己可以满足交易输出脚本的锁定条件,即对某笔交易中比特币资金的拥有权。
区块结构
区块是一种聚合了交易信息容器的数据结构。由区块头和区块主体组成,区块头是80字节,而平均每个交易至少是250字节,而且平均每个区块至少包含超过500个交易。