区块链的高级原理:转移

时间:2021-08-02 13:30编辑:未知

本系列内容包含:基本定义及原理、密码学、共识算法、钱包及节点原理、挖矿原理及达成。

5接收者用公钥解密密文。

6证明密文是由发送方的私钥签名的。

事实上,第一个问题在这里得到了回答,由于张三用他的私钥对买卖数据进行签名。同时,整个互联网都可以拥有张三的公钥。买卖的合法性可以通过公钥和签名来验证。

本系列包括:基本定义与原理、密码学、共识算法、钱包与节点原理、挖矿原理与达成。

大家都知道,用银行卡转账时,一般需要填写竞价推广账户名字、他们账号、转账金额与一些转账附言。输入密码后,大家会将资金转入他们竞价推广账户。

在这个过程背后,整个系统是怎么样工作的?

假如张三在招商银行开户,他想把一笔钱转到李四在工商银行的开户银行。

张三提交转账申请后,其转账卡坐落于招商银行支行。在验证用户名和密码后,张三将买卖提交给招商银行总行,然后由招商银行总行将买卖发送至中国人民银行大额或小额支付系统。

最后,转账买卖到达了李思开户的中国工商银行总行,一步步往下走,最后到达了李四开户的分行。

区块链传输系统是怎么样工作的?以BTC系统为例。它是一个P2P的电子现金系统。让大家看看整个过程是怎么样工作的。让大家看看BTC白皮书中的步骤图。

请考虑两个问题:

4将密文和公钥发送给接收方;

大家用下图来概要一下:

第一,私钥生成一个随机数,通过椭圆曲线变换将随机数转换为公钥,然后通过SHA-256和ripemd-160将公钥转换为公钥哈希,最后通过base58编码得到BTC的地址。

从私钥公钥哈希地址的过程中可以看出,信息被多次压缩。除去base58在最后一步是可逆的,只须数据被压缩,数据就会丢失。所以这个过程是绝对不可逆转的,这也保证了数字虚拟货币的安全。

在这里你可以预先考虑一个问题:既然从私钥到公钥是不可逆的,为何大家不把公钥作为数字虚拟货币的接收地址,但大家需要将公钥转换成公钥哈希,然后通过base58将其转换为接收地址?

大家来看看第二个问题。

假如从三传的账号BTC到张三传的账号一直传出去,那样张三传的BTC能否继续从三传10转出去?

答案是:绝对不是。大家可以看看买卖的结构。

在BTC的每一个事务结构中,有两个部分:输入和输出。

输出包括关于收款人的信息,比如上面的数目和锁脚本。锁脚本指定收件人的BTC地址与在那种情况下可以用BTC。

上面的输入包括前一个事务的ID,前一个事务的序列号决定了事务中输入的编号,从而解锁脚本。

那样,到底会发生什么呢?

一是碰撞真的会发生,就像高能粒子对撞机,每数十亿次实验中就有几个粒子相撞。虽然碰撞的可能性非常小,但并不是不可能。

另一种状况是因为钱包的开发者或提供商是什么原因,钱包的随机数生成模块出现问题,致使钱包的随机数空间很小。这将成倍增加碰撞的概率。

(稍后大家将在钱包的分类应用中详细介绍这部分常识。)

大家将在下一期回答

假如张三要把10张BTC交给李四,

第一,张三需要打开他的数字虚拟货币钱包,然后扫描或输入李四的钱包地址。然后张三填写要转账的金额并选择相应的手续费(手续费对应转账速度),最后输入支付密码,然后点击发送。

整个过程与传统的转账买卖很相似。你需要输入他们竞价推广账户、转账金额和支付密码,然后点击发送。最后,资金到达他们竞价推广账户或钱包,买卖完成。

两者之间的重要在于中间资本流动部分的差异。

第一,张三的钱包通过私钥对买卖进行签名,钱包将签名后的买卖广播给与钱包相连的所有BTC节点。

在第二步中,这部分节点在BTC中广播给其他节点,所有节点将验证事务的有效性。

第三步:假如事务合法,则将事务放入要打包的事务序列中,也可以称为内存池或事务池。列表中的事务称为未确认事务。

在第四步中,BTC miner将从节点获得要打包的事务,并开始构建下一个块,即挖矿。

第五步:当矿工挖出一个符合需要的区块时,矿工会在第一时间将该区块广播给系统的所有节点。

步骤6,所有节点验证广播块。假如验证通过,请将此块添加到当地分类帐。

最后,李四的钱包被连接到一个新节点上,新节点的块中包含了张三的转账信息。这个时候,李思才可以通过钱包看到转账成功。

这一买卖信息称为utxo。

因为每一个utxo只能用一次,即便张三需要继续给李四川10张BTC,之前的输入已经改变,所以签名内容也会完全不同。因此,即便是相同的事务也不可以重复地广播到BTC的互联网。

让大家继续研究utxo。有的人可能会问,假如utxo用完了,将来如何转账?

其实,在大家的日常,譬如银行、支付宝、微信,大家都很了解一种竞价推广账户模式:我有一个竞价推广账户,竞价推广账户里有余额,我出了多少钱,剩下多少竞价推广账户,每一个人都有一个或多个竞价推广账户。

这个模ETH很容易理解,但utxo模ETH与account模ETH有非常大不一样。

个人对utxo模ETH的理解更像是一种检查,就像在BTC互联网中一样,BTC的检查也是源源持续的。当有BTC传输时,将生成一个新的utxo。在向外转账时,钱包会选择一个金额足够的utxo作为买卖输入。

然后,将变更金额和变更地址用作事务的输出,并构建在该事务中。当事务被BTC互联网确认时,事务中用的utxo将无效。

同时,因为有一个用于更改的输出,钱包会得到一个新的utxo,这等于一张新支票。

因为前面的utxo是无效的,相应的签名也需要是无效的,因此不可以重用。

有一个问题要问你:既然我知晓张三的地址和公钥,为何我不可以从这个地址和公钥中推回他的私钥呢?

假如李四有张三的住址和公钥,把张三的私钥倒了,李四就不可以花张三的钱吗?什么机制保证了这种不可逆转性?

非对称加密的过程。

为何这三个私钥都可以用?。

2这个买卖已经有张三的签名,也就是说别的人都有张三的签名。别的人可以用这个签名复制张三的签名,盗取张三的资金吗?比如,模仿一张支票的签名来伪造另一张支票。

这是与密码学有关的一门非对称加密的有关常识,大家将对这部分常识进行详细的解说。今天,大家主要介绍非对称加密算法的使用方法。

大家常常听说加密算法是对称加密,即通信双方都有双密钥。

比如,对称加密就像在门上安装锁。只有有钥匙的人才能开门,但所有人的钥匙都是一样的。这是对称加密。

非对称加密和对称加密最大有什么区别是通信双方无需有相同的密钥。

就像a用钥匙a锁门,B用钥匙B开门。这两个密钥对应于非对称加密中的私钥和公钥。

私钥和公钥是一对一的对应关系。公钥可以由私钥生成,但私钥不可以被公钥反转。

2用私钥对数据进行签名;

1发送方生成公钥和私钥;

请往下看

私钥通过椭圆曲线算法得到公钥。公钥经过多次哈希运算得到公钥的哈希值,然后通过base58的编码得到地址。

在整个过程中,从私钥到公钥、从公钥到散列的过程信息被多次压缩,具备单向性和不可逆性。因此,不可以通过公钥的散列来获得公钥和私钥。

私钥是从哪儿来的?私钥事实上是一个随机数。这个随机数的范围是1~2的256次方,范围大约是10的77次方。现在,宇宙中可见的粒子约为10次方至80次方。

以BTC为例。BTC互联网中已经用的粒子的全球地址约为2400万,这是10的八次方。你可以想象这两个空间的数字有哪些不同。因此,BTC地址的空间很小,发生冲突或重复名字的可能性非常小。

有的朋友也听说过一件事,那就是有人注册了一个新的数字虚拟货币钱包,但钱包创建后,他看到钱包里有买卖记录。简而言之,他创造的钱包已经被其他人用了。

3签名后获得密文;