一些小知识
地址:以1
开头的一串字符或数字组成的比特币地址。
比特币总数:2100万。
1比特片=1,000毫比特币=100,000,000聪比特币。
一般来说,一个区块获得六次以上证明时就被认为时不可撤销的,因为要撤销和重建六个区块需要巨量的计算。
比特币使用的是椭圆曲线乘法作为其公钥加密的基础算法。
公钥 & 私钥
公钥和私钥是成对的,它们互相解密。 公钥加密,私钥解密。 私钥数字签名,公钥验证。
k(私钥) –(椭圆曲线相乘,单向)–> K(公钥) –(哈希函数,单向)–> A(比特币地址)
私钥用于生成支付比特币所需的签名以证明资金的所有权。
私钥是一个随机数字,256位的二进制数字。
secp256k1
曲线函数,该函数可产生一条椭圆曲线: y^2 mod p = (x^3 + 7) mod p
- 生成公钥
K = k * G
; 其中k
是私钥,G
是生成点,比特币密钥的生成点都是相同的。
公钥K被定义为一个点 k = (x, y)
。
在椭圆曲线中,点的相加等同于从该点画切线找到与曲线相交的另一点,然后映射到x
轴。
公钥通常表示为前缀04
紧接着两个256
比特的数字,分别是公钥的坐标x
和y
。
前缀04
用来区分非压缩格式的公钥,压缩格式的公钥是以02
或03
开头。
- 公钥压缩
(x, y) --> 04 x y --> 如果y是偶数 --> 02 x
|-> 如果y是奇数 --> 03 x
- 私钥格式
Hex:64位十六进制数
WIF:一般是5开头,经过Base58Check编码
BIP0038加密方案的结果是一个由Base58Check编码过的加密私钥,前缀为6P。
以数字3开头的比特币地址是P2SH地址,有时被错误的称为多重签名或多重签名地址。
交易
交易费是与参加交易的比特币值无关的,而是与交易的字节大小有关,一般以每千字节计算。
在比特币世界中,既没有账户,也没有余额,只有分散到区块链里的UTXO。
一个UTXO可以是一聪的任意倍,但是只要它被制造出来便不可再分割。
一般交易必须有一个或若干个输入和一个或若干个输出。交易不存在找零,必须显式的计算余额并分配到一个输出中,否则将作为报酬给予矿工。但是,每个区块的首个交易是没有输入的,即Coinbase交易,作为挖矿的奖励。
比特币网络
一个包含完整功能的比特币网络节点:钱包,矿工,完整区块链,网络路由节点
常见的节点类型:
核心客户端:包含钱包,矿工,完整区块链,网络路由节点的节点
完整区块链节点:完整区块链,网络路由节点的节点
独立矿工:矿工,完整区块链,网络路由节点
轻量(SPV)钱包:钱包,网络路由节点
矿池协议服务器:Pool服务器,Stratum服务器
挖矿节点:不具有区块链,但具备Pool协议或Stratum协议的节点
轻量(SPV)Stratum钱包:不包含区块链但有Stratum服务器的网络节点
具有多种节点类型,网关及协议的扩展比特网络 (图1)
节点通常采用TCP协议,使用8333端口。
链接
This work is licensed under a CC A-S 4.0 International License.