主页 > 下载imtoken钱包官网苹果版 > 比特币入门笔记
比特币入门笔记
出生
比特币诞生于2008年,一个叫中本聪的人提出了一个想法:
创造一种不受政府或任何组织控制的货币
比特币的本质是一串数字,没有任何资产支持(目前的货币是有国家或银行支持的,提供资产支持)。也就是说,比特币是一种完全基于社区共识的货币。
什么是货币
维基百科上对货币的定义是:
货币,简称货币,是人们为了提高交易效率共识而实现的一种媒介。
我们现在使用的纸币实际上可以看作是共识的物理表示。没有纸币(例如银行账户中的钱),仍然可以建立货币。
基于这个定义,任何东西,无论是实物还是虚拟,只要在大家的共识中有价值,都可以作为货币使用。比特币正是如此。那种东西。
并且相对于银行账户中的货币,比特币的数据全部存储在区块链上,被破坏的可能性更小。
比特币的运作
货币的操作主要是通过交易,即货币从A到B的过程。比特币也不例外,但比特币交易不是手把手的,而是从A的比特币地址到B的比特币进行的地址。
对于比特币什么是比特币交易,没有人的概念,比特币是从地址到地址的。另外,正如我们上面所说的,比特币的所有数据都存储在区块链上,而且所有的数据都是公开的,所以很容易知道一个地址有多少比特币。
看起来所有信息都暴露了,但非常关键的是没有人知道地址背后的人是谁,这为比特币提供了很好的匿名性。
公钥/私钥
上面一直在强调地址。比特币地址的基础是非对称加密算法。
那么什么是非对称加密算法?
举个简单的例子,在谍战剧中,我们经常会看到特工截获敌人的电报信号,但出于安全考虑,这些电报的内容实际上是加密的。通常有一个密码本,发送方和接收方各持有一份,称为对称加密。
内容先加密后发送。接收方收到消息后,先解密再读取。
但是这种方法有一个严重的缺点,就是一旦加密规则(码本)被泄露或破译,发送的内容就和未加密没有区别。
为了解决这个问题,1970 年,两位美国科学家提出了一种称为 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格式的字符串
流程和关系可以看下图,会更清楚:
p>
交易
整个比特币交易流程看起来很简单,分为以下几个步骤
A向B发起转账,根据比特币协议,验证这个交易是否可行,如果可行,矿工会将交易信息打包写入区块链,即表示交易成功。
但与通常的银行账户之间的转账交易不同,比特币交易本身并没有账户这样的概念。当 A 向 B 转账时,比特币并没有真正落入 B 的账户,而只是标志着 B 有权转移这部分比特币。
下图记录了3次比特币交易的数据:
可以看到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。
交易中的验证
因为是完全去中心化的匿名交易,所以在交易过程中需要进行一些验证,以证明交易是否符合规则。 .
对于每笔交易,发送者都需要提供以下信息来验证当前交易是否合法:
为了验证交易是否可以正常进行,需要以下三个步骤
找到最后一笔交易,确认付款人确实有能力支付本次交易 计算付款人公钥指纹,确保与付款人地址一致 使用公钥解锁数字签名验证私钥的真实性
具体步骤可以参与本图:
验证后,当前交易将被矿工打包并写入区块链。具体的编写过程可以参考本文的介绍。根据比特币协议,一个区块的大小是1MB,一个交易大约是500b,所以一个区块可以包含大约2000个交易。矿工负责打包这些交易,计算哈希,并写入链上。
由于打包和写入区块链是一个消耗大量计算的过程,矿工的工作不是自愿的。根据比特币协议,成功添加新区块的矿工将在开始时获得 50btc 奖励,然后每 4 年减半;另一方面,由于比特币最多只支持小数点后 8 位,因此可以得出结论,在 2140 年,矿工将不会获得任何奖励。那时,矿工唯一能得到的收入就是交易费。
所谓的交易费是交易方支付给矿工的,具体数额是任意的。但矿工会优先选择打包费用较高的交易,以期获得更高的回报。因此,支付给矿工的费用越高,交易越早得到确认。
交易中的冲突
因为是异步的,节点之间的同步可能会延迟。因此,可能会出现将同一个交易写入两个区块的情况,以解决这种情况造成的冲突。
在比特币的链上规则中有规定,因为区块是来回链接的,所以一旦出现分叉,那么哪个区块后面跟着更多的区块,就决定了哪个分叉。这条链是正确的,另一条链会被丢弃,打包的交易也会因为没有写入主链而被判定失败。
交易和账户
上面说了很久,其实一直在讲交易。但在主流支付系统中,有一个账户的概念,也就是说,你赚了多少钱,花了多少钱,就构成了你账户里的余额。
但在比特币中,没有账户的概念,交易记录在区块链上。如果您想知道一个地址中有多少比特币,您需要先遍历所有交易。计算出来的。
参考