主页 > imtoken钱包下载2.0安卓版 > 上帝给了我十个比特币来交易

上帝给了我十个比特币来交易

imtoken钱包下载2.0安卓版 2023-01-17 05:17:16

比特币的账户加密算法

在国产电视剧中,我们经常听到密码本的概念。当代理使用电报在在线和离线之间传输消息时,他需要使用码本进行加密和解密。如果密码本被盗,敌人不仅可以利用密码本破译(解密)情报,还可以利用它进行情报欺诈(加密)。以这种方式使用同一个“密钥”进行加密和解密称为对称加密。

事实上,伟大的数学家已经用数学的手段创造了非对称加密算法,即用于加密和解密的“密钥”是不同的。在该算法中,每个账户都有自己的公钥和私钥,可以用其中一个加密,另一个解密。通信时,我们只需要将公钥交给对方,私钥保存在本地,私钥可以用来解密对方发送的消息。 (当然,只用这种方法避免了信息破译,但并没有解决信息造假的问题)

比特币账户

比特币账户是通过椭圆曲线算法加密实现的这种常见的非对称加密算法。简单理解为每个账户都有一个公钥和一个私钥。私钥是需要严格保密的“密码”,而公钥相当于是别人可以知道的“用户名”,但实际上由于公钥本身的长度太长了长且不适合作为比特币账户的“用户名”。比特币根据公钥重新创建一个地址作为“用户名”。私钥、公钥和地址的数学推导关系如下:

私钥->公钥->地址

比特币可以随时交易吗

也就是说,对于一个比特币账户,只需要保存它的私钥。钥匙。当您需要接受比特币时,您可以使用私钥生成自己的地址并告诉其他人。

可能还有人会问,比特币账户是怎么来的?事实上,比特币账户是随机生成的。由于账户的私钥可以推导出公钥和地址,因此只需要随机生成一个私钥即可创建账户。

这听起来不可思议吗?然而,事实上,私钥是一个 256 位的二进制数。我是用 Python 计算的:

In [1]: 2 ** 256
Out[1]: 115792089237316195423570985008687907853269984665640564039457584007913129639936L

这大约是 10 的 78 次方。我去知乎查了地球上的沙子量比特币可以随时交易吗,知乎告诉我大概是10的21次方。因此,只要能保证私钥的生成是随机的,就没有被破解的可能。

比特币可以随时交易吗

上图是我的比特币钱包地址(如果你想给我打赏,你可以将比特币转入3AEJTJXqNmZWX6KNw9rkVpSrVaW7KG5FkD)。如果读者能破解我的私钥,你也可以转移别人给我的钱,哈哈!

比特币交易的传统记账方式

目前银行、支付宝等都是以账户为基础的记账方式。一般操作如下:

每次个人在交易时使用自己的账户。当 A 和 B 之间发生交易时,系统同时从 A 的账户余额中减去 x,并在数据库中 B 的余额中添加 x。如果 A 的账户余额小于 x,则不得进行交易。在过程2中,需要保证原子性,即保证国际收支平衡,不能从x中减去A账户,但B账户保持不变; A和B的余额变化不能不一致。

比特币可以随时交易吗

在这种记账方式中,当一笔交易来临时,我们需要在账户数据库中维护双方的余额。

比特币记账方法

在比特币中,虽然可以通过交易链计算出各个账户的余额,但比特币使用了一种非常新颖的UTXO(Unspent Transaction Output,未花费交易输出)记账方式。核心思想是:只要用户A能证明自己拥有10个比特币,他就可以给用户B10个比特币。至于他的余额,B根本不需要关心,系统自然也不需要额外的记录.

假设当前区块产生10个比特币,被Satoshi挖,那么就会产生一笔交易(TX)——上帝给了Satoshi 10个比特币,交易的输出(Output)是Satoshi,所以这个交易是UTXO(未使用的交易输出)。当 Satoshi 想要将 5 个比特币交易给 Oda 时,他只需要找到这个 UTXO 并花费这个 UTXO。这个交易TX不再是一个UTXO,而是产生了两个新的UTXO。

比特币可以随时交易吗

我们可以看到,虽然中本聪的10个比特币只花了5个,但是原来的UTXO已经不能再维持UTXO状态了,也就是说琮琮要再给小义5个比特币,他就不能再用原来的TX了,但需要使用一个新的UTXO——聪聪给了聪聪5个比特币。这种设计避免了多次支付的问题,以防止 Satoshi 多次使用原始 TX——上帝给了 Satoshi 10 个比特币。这种机制就像薄荷糖。一笔交易后比特币可以随时交易吗,原来的 10 个比特币在铸币局被销毁,然后再创建两个新的 5 个比特币。

交易加密认证

在一笔交易中,交易的发起者主要需要提供以下信息:

最后一个 UTXO 交易的哈希值(指定您希望使用的 UTXO)。交易双方的地址。你的公钥。使用您的私钥对交易信息进行签名(加密)的结果。

矿工拿到你的交易信息后,会进行如下验证:

比特币可以随时交易吗

将您的地址与UTXO交易哈希值中的输出地址进行比较(确认该地址有UTXO)。用公钥计算地址并与你的地址进行比较(确认公钥的正确性)。用公钥解密签名结果,确认交易信息与解密后的交易信息一致(确认私钥的正确性)。

无论上述哪个步骤不正确,交易都会验证失败。其实前两步验证都是针对最后一步的,因为只有账户私钥是绝对保密的。地址可在区块内的交易信息中查询;在您启动第一笔交易后,公钥将被公开。因此,这需要您妥善保管您的私钥。

事务划分与合并

比特币不像硬币那样不可分割。事实上,比特币的最小单位是聪,1比特币=1亿聪。同样,由于 UTXO 被用作拥有比特币的证明,因此必须对其进行拆分和组合。在前面的例子中,我们给出的例子比较简单:输入一个UTXO,输出两个UTXO。在实践中,一个交易允许多个输入和多个输出。

当然,对于所有输入,交易发起者都需要证明其财富的所有权。