比特币-基本概念

参考链接

https://bitcoin.org/en/developer-reference

1.账户/地址

采用非对称的加密算法

用户保留私钥,对发出的交易进行签名确认,并公开公钥。

比特币的账户地址是用户公钥经过一系列Hash(HASH160,或先进行SHA256,然后进行RIPEMD160)及编码运算后生成的160位(20字节)的字符串。一般地,对账户地址串进行Base58Check编码,并添加前导字节(表明支持哪种脚本)和4字节校验字节。

比特币-基本概念_第1张图片
图片发自App

私钥,公钥,钱包地址间的关系

比特币-基本概念_第2张图片
图片发自App


2.交易

一条交易包括如下信息:

·付款人地址:

合法的地址,公钥经过SHA256和RIPEMD160两次Hash,得到160位Hash串;

·付款人对交易的签名:

·付款人资金的来源交易ID:

哪个交易的输出作为本次交易的输入;

·交易金额:

·收款人地址:

·收款人公钥:


网络中节点收到交易信息后,将进行如下检查:

·交易是否已经处理过
·交易是否合法
包括地址是否合法、发起交易者是否是输入地址的合法拥有者、是否是UTXO;
·交易的输入之和是否大于输出之和。

如果检查通过,则将交易标记为合法的未确认交易,并在网络内进行广播。

3.交易脚本(script)

每个交易都会包括两个脚本:输出脚本(scriptPubKey)和认领脚本(scriptSig)。

输出脚本由付款方对交易设置锁定,用来对改笔交易输出的对象(收款方)进行权限控制,例如限制必须是某个公钥的拥有者才能花费这笔交易。

认领脚本则用来证明自己可以满足交易输出脚本的锁定条件,即对某个交易的输出(比特币)的拥有权。

4.区块结构

区块整体结构

一个完整的区块结构主要由以下几部分构成:

比特币-基本概念_第3张图片
图片发自App

比特币的区块大小目前被严格限制在1MB以内。4字节的区块大小字段不包含在此内。

区块头结构

比特币-基本概念_第4张图片
图片发自App

交易整体结构

一个区块第一个交易规定为coinbase交易。

Coinbase交易结构:

比特币-基本概念_第5张图片
图片发自App

普通交易结构

比特币-基本概念_第6张图片
图片发自App

普通交易输入结构

比特币-基本概念_第7张图片
图片发自App

普通交易输出结构

比特币-基本概念_第8张图片
图片发自App

挖矿方程

比特币-基本概念_第9张图片
图片发自App

version = 版本号

prev_hash = 前一区块ID的字节反转

merkle_root = 本区块中所有交易的SHA256的墨克哈希树根的字节反转

ntime = 时间戳

nbits = 网络难度

你可能感兴趣的:(比特币-基本概念)