主页 > 下载imtoken钱包官网苹果版 > 比特币入门笔记

比特币入门笔记

出生

比特币诞生于2008年,一个叫中本聪的人提出了一个想法:

创造一种不受政府或任何组织控制的货币

比特币的本质是一串数字,没有任何资产支持(目前的货币是有国家或银行支持的,提供资产支持)。也就是说,比特币是一种完全基于社区共识的货币。

什么是货币

维基百科上对货币的定义是:

货币,简称货币,是人们为了提高交易效率共识而实现的一种媒介。

我们现在使用的纸币实际上可以看作是共识的物理表示。没有纸币(例如银行账户中的钱),仍然可以建立货币。

基于这个定义,任何东西,无论是实物还是虚拟,只要在大家的共识中有价值,都可以作为货币使用。比特币正是如此。那种东西。

并且相对于银行账户中的货币,比特币的数据全部存储在区块链上,被破坏的可能性更小。

比特币的运作

货币的操作主要是通过交易,即货币从A到B的过程。比特币也不例外,但比特币交易不是手把手的,而是从A的比特币地址到B的比特币进行的地址。

对于比特币什么是比特币交易,没有人的概念,比特币是从地址到地址的。另外,正如我们上面所说的,比特币的所有数据都存储在区块链上,而且所有的数据都是公开的,所以很容易知道一个地址有多少比特币。

什么是比特币交易

看起来所有信息都暴露了,但非常关键的是没有人知道地址背后的人是谁,这为比特币提供了很好的匿名性。

公钥/私钥

上面一直在强调地址。比特币地址的基础是非对称加密算法。

那么什么是非对称加密算法?

举个简单的例子,在谍战剧中,我们经常会看到特工截获敌人的电报信号,但出于安全考虑,这些电报的内容实际上是加密的。通常有一个密码本,发送方和接收方各持有一份,称为对称加密。

内容先加密后发送。接收方收到消息后,先解密再读取。

但是这种方法有一个严重的缺点,就是一旦加密规则(码本)被泄露或破译,发送的内容就和未加密没有区别。

为了解决这个问题,1970 年,两位美国科学家提出了一种称为 Diffie-Hellman 密钥交换的算法。

Diffie–Hellman

加密和解密可以使用不同的规则,从而避免了密码被盗带来的安全问题。这叫做非对称加密。

在非对称加密中,基本执行以下步骤:

A生成两个密钥(公钥/私钥),A将公钥发送给BB,得到A的公钥,用公钥加密信息,将加密信息发送给AA,接收加密信息,然后用私钥解密得到真实内容

在这个过程中,如果A的私钥没有泄露,那么用A的公钥加密的信息只能被A解密,从而保证了安全性。

什么是比特币交易

比特币钱包/地址

我们谈了很长时间的加密,那么加密是为了什么?答案是钱包/地址。

比特币钱包实际上是存储公钥/私钥的地方。

通常会生成一个 256 位的私钥;和一个 512 位的公钥(与其他加密系统不同,比特币钱包中的公钥不会被公开)。

由于512位公钥太长,会为交易生成另一个比特币钱包地址。首先,公钥将通过 SHA-256 和 RIPEMD 算法转化为 160 位的哈希值。这个哈希值也称为指纹;但 160 位仍然太长。接下来,将使用 Base58Check 方法转换 160 位值。哈希编码成base58字符串,长度为26~35,即比特币钱包地址。

然后根据私钥,通过Base58Check方法,生成较短的base58格式字符串,称为Wallet Interchange Format (WIF)。

最后我们一共得到了三个不同的key,分别是

两个键

160 位公钥散列

p>

两个较短的base58格式的字符串

流程和关系可以看下图,会更清楚:

bitcoin keys

什么是比特币交易

p>

交易

整个比特币交易流程看起来很简单,分为以下几个步骤

A向B发起转账,根据比特币协议,验证这个交易是否可行,如果可行,矿工会将交易信息打包写入区块链,即表示交易成功。

但与通常的银行账户之间的转账交易不同,比特币交易本身并没有账户这样的概念。当 A 向 B 转账时,比特币并没有真正落入 B 的账户,而只是标志着 B 有权转移这部分比特币。

下图记录了3次比特币交易的数据:

transactions

可以看到Transaction A和Transaction B分别被转移了。 0.005btc 和 0.003btc 转到 Transaction C,然后 Transaction C 分别转出 0.003btc 和 0.004btc。剩下的0.001 btc,作为矿工的费用,归矿工所有。

在比特币交易的过程中,因为交易本身是有记录的,所以有一个原则就是每笔交易的输入之和必须等于输出之和。

假设一笔交易收到了100btc,但真正想转出的只有1btc,但是按照上面的原则,这笔交易的总输出一定是100btc,解决方法是重新做剩下的99btc一次输出是转回自己的钱包地址。

我们随便找个比特币交易记录看看吧

看这里

输入与输入一致。

什么是比特币交易

改变

在交易过程中,会出现找零的问题。比如我们上面提到的:

假设一笔交易收到了 100btc,但真正想要转出的只有 1btc,但根据上述原则,这笔交易的总输出一定是 100btc。解决方法是将剩余的 99btc 作为输出转回你的钱包地址。

此操作称为更改。

在真实的比特币世界中,通常情况下,找零会返回到一个新地址,而不是原始地址。这主要有两个原因:

首先,如果一笔交易发生了找零,在查看交易记录的时候,并不会标明哪个是目标地址,哪个是找零地址,也就是说,很难猜出真实的对象交易。其次,因为在交易过程中,转让方公开了自己的公钥,虽然以当前计算机的计算能力很难通过公钥推导出私钥,但这并不意味着在交易过程中无法推导出私钥。未来。因此,每次找零都返回一个新的地址,相当于转移了剩余的资产,从而隐藏了公钥。 UTXO

所谓的UTXO称为Unspent Transaction Output,是比特币交易的基本单位。

UTXO是一定数量的比特币,不能被分割,不能被所有者锁定,不能被记录在区块链中,被全网识别为或单位。 (这里看原文)

一般来说,交易中的输出实际上是一个 UTXO。假设我手上有一个 10 元和一个 5 元,但我想买一个 12 美元的东西;那么我想一次输出2元,10元和5元,然后回来给我3元什么是比特币交易,那么这3元也是一个UTXO。

交易中的验证

因为是完全去中心化的匿名交易,所以在交易过程中需要进行一些验证,以证明交易是否符合规则。 .

对于每笔交易,发送者都需要提供以下信息来验证当前交易是否合法:

为了验证交易是否可以正常进行,需要以下三个步骤

什么是比特币交易

找到最后一笔交易,确认付款人确实有能力支付本次交易 计算付款人公钥指纹,确保与付款人地址一致 使用公钥解锁数字签名验证私钥的真实性

具体步骤可以参与本图:

bitcoin_transaction_chain

验证后,当前交易将被矿工打包并写入区块链。具体的编写过程可以参考本文的介绍。根据比特币协议,一个区块的大小是1MB,一个交易大约是500b,所以一个区块可以包含大约2000个交易。矿工负责打包这些交易,计算哈希,并写入链上。

由于打包和写入区块链是一个消耗大量计算的过程,矿工的工作不是自愿的。根据比特币协议,成功添加新区块的矿工将在开始时获得 50btc 奖励,然后每 4 年减半;另一方面,由于比特币最多只支持小数点后 8 位,因此可以得出结论,在 2140 年,矿工将不会获得任何奖励。那时,矿工唯一能得到的收入就是交易费。

所谓的交易费是交易方支付给矿工的,具体数额是任意的。但矿工会优先选择打包费用较高的交易,以期获得更高的回报。因此,支付给矿工的费用越高,交易越早得到确认。

交易中的冲突

因为是异步的,节点之间的同步可能会延迟。因此,可能会出现将同一个交易写入两个区块的情况,以解决这种情况造成的冲突。

在比特币的链上规则中有规定,因为区块是来回链接的,所以一旦出现分叉,那么哪个区块后面跟着更多的区块,就决定了哪个分叉。这条链是正确的,另一条链会被丢弃,打包的交易也会因为没有写入主链而被判定失败。

交易和账户

上面说了很久,其实一直在讲交易。但在主流支付系统中,有一个账户的概念,也就是说,你赚了多少钱,花了多少钱,就构成了你账户里的余额。

但在比特币中,没有账户的概念,交易记录在区块链上。如果您想知道一个地址中有多少比特币,您需要先遍历所有交易。计算出来的。

参考