币安官网注册链接: 币安(Binance)
近期,博主正在整理一本通俗易懂的挖矿科普专辑,希望全面介绍从最初的加密货币交易到挖矿确认交易的挖矿过程。 哪些环节产生挖矿收益,我们常说的算力是什么,为什么挖矿收益要这样分配等等。
以比特币为例,我们知道比特币网络中挖矿的目的是为了打包交易,维护比特币网络,所以交易实际上是与挖矿密切相关的第一个环节。 比特币网络中的交易过程采用了非对称加密技术、数字摘要技术、区块链技术等,实现该技术的高手有很多,博主就不露面了。 本文的主要目的是用更简单的语言展示比特币的交易过程,让更多像笔者这样的技术外行能够理解比特币。
在开始解释之前,我们需要先介绍几个概念
非对称加密:也称为公钥加密,它使用密码算法生成一对公钥和私钥。 公钥是公开的,私钥是由个人保管的。 它有两个目的:第一,其他人可以用公开的公钥加密数据并将其传输给公钥持有者。 公钥持有者使用相应的私钥来解密数据并读取信息。 这样,就可以保证信息传输的安全; 其次,公钥持有者可以使用私钥对信息进行签名(签名过程与加密过程类似),然后将信息和签名一起发送给其他人,其他人可以通过公钥验证信息签名(验证过程与解密过程类似)。 如果验证签名信息与发送的信息一致,则证明该信息是公钥持有者发送的,这样可以在不暴露公钥持有者身份和私钥的情况下保证信息来源的可靠性。 性别。 (参考链接:)
哈希算法:也称散列函数,可用于从一条消息或数据量较大的数据中计算出具有固定格式和少量数据的数字摘要,也称为指纹、散列值或散列。 一个好的哈希算法应该具有不可逆性(无法从数字摘要中推导出原始信息或数据)、敏感性(原始数据的任何微小变化都会引起数字摘要的巨大变化)、防冲突性(难以推演) 。 查找具有相同数字摘要的两条不同消息)。 (参考链接:)
比特币中的公钥和私钥:在比特币世界中,用来确定比特币所有权的是根据比特币协议生成的一对公钥和私钥。 它们是通过非对称加密算法(椭圆曲线算法)生成的,公钥通过两次哈希算法(SHA256)计算得到哈希值(也叫散列),然后采用Base58Check编码生成常见的比特币钱包地址。 因此,钱包地址解码后,可以获得对应公钥的哈希值,可以用来验证私钥签名、加密数据等。
UTXO:Unspent transactionoutput,未花费的交易输出,是比特币世界中的一种抽象货币。 每个 UTXO 都由公钥(钱包地址)锁定。 只有持有与公钥对应的私钥的人才能通过对私钥进行签名(解锁)并使用该UTXO。 UTXO可以理解为一种抽象的纸币,但它的面值不固定(不只是5或10,可以是任何数字)。 (参考链接:)
抛开代码,我们来看看比特币交易的流程
如下图,有A、B、C、D四个人,他们都有比特币钱包。 钱包私钥由自己持有。 钱包地址(由各自的钱包公钥生成)在比特币网络上是公开的,用于 UTXO 锁定和验证。
最初,A给C 0.7 BTC,比特币网络中的记录为UTXO(1):A给C 0.7 BTC; B给C 0.5 BTC,比特币网络中的记录是UTXO(2):B给C 0.5 BTC。 此时C的比特币钱包账户余额就是这两个UTXO的总和,C的比特币总数=UTXO(1)+UTXO(2)=1.2BTC。 如下所示:
这一天,C向丁购买了一批商品,需要向丁支付0.8 BTC。 C通过比特币网络向D转账,但C现有的两笔UTXO均小于0.8 BTC,因此他需要将两笔UTXO一起使用,类似于现金交易:D支付1.2 BTC给D,D支付0.4 BTC但在比特币网络中,这个改变工作是由C自己发起的。
整个交易流程如下:
以上是比特币交易的一个比较抽象的流程,包括比特币交易的结构、签名验证、节点验证、交易广播、加入挖矿节点mempool、矿工构建初步区块、以及最终区块确认过程,稍后会讨论。 分别进行介绍,本文不再展开。
从这个抽象的交易过程中,我们可以发现,比特币交易本质上是一堆UTXO的输入和输出的过程。 随着旧的UTXO被消耗,新的UTXO被生成,一次又一次地完成比特币交易。 交易过程受到非对称加密和哈希算法的双重保护。 比特币持有者可以放心地完成交易,而不用担心自己的身份被泄露。 交易过程中也会消耗一部分比特币来奖励打包交易的矿工,让矿工享受完成维护比特币网络的任务。
This Post Has 2 Comments