主页 > imtoken多签钱包 > 简单的比特币签名(一)

简单的比特币签名(一)

imtoken多签钱包 2023-07-18 05:13:33

在上一篇文章中

我大概说的是比特币交易是如下表格的汇款单,其中一半是付款信息,给付款签名和公章,另一半是收款信息,给金额,目的地址和提现方式

比特币李笑比特币身价_比特币区块和比特币的区别_比特币能仿制吗

对于每个会计(全节点)来说,在收到这个汇款单的时候,有两个最重要的安全问题:

第一,如何保证这张汇款单不是假的?

二、如何保证汇款单上的签名不是假的?

比特币区块和比特币的区别_比特币李笑比特币身价_比特币能仿制吗

其实比特币第一个问题是没有保证的,就是如果两张不同的汇款单的签名都符合要求,你不知道哪一张是真的。 这就是据说导致MTGOX崩溃的著名交易扩展性问题(交易延展性)

但是,一旦交易被确认,也就是记入账本后,支付账户是空的(比特币每次都把一个地址里的币都花光了),所以从确认交易的角度来说,不可能有是从一个地址重复花币的交易,最后必须报废两张汇款单中的一张

为什么会出现两张不同的汇款单有效的情况? 这是比特币当前设计的缺陷,是历史遗留下来的问题。 当我在下一篇文章中进一步讨论签名细节时,您可以理解为什么。但是现在让我们来看第二个问题,即签名的安全保证。 只有明白了这一点,才能回答第一个问题

签名是一个简单的类比,就是盖章

比特币用的是一种方法:刻一章,分成两半,一半私用,另一半公用。 时间付款信息盖在空白处并与汇票一起发送。 公章里面有我要花的币的地址(下面会介绍)。这样,收汇的人只要看到我放的公章(公钥)的那一半,就可以验证是不是匹配我要花的币的地址,可以用来和我盖章的那一半私人印章进行对比。 中间的裂缝在显微镜下完全吻合,证明这私章无疑是我做的,但他们拿不到我一半的私章(私章盖在文字上后,很多部分与文字无法识别,无法复制),这样我就不用担心有人拿我放的那一半公章来伪造我授权的交易

比特币区块和比特币的区别_比特币能仿制吗_比特币李笑比特币身价

当然,也可能有解密高手(量子计算机)根据我发布的公章,尝试伪造一个每一个破解都完美匹配的私章(也就是所谓的破解ECDSA椭圆曲线加密)。 但如果我不花钱,我就不需要发送交易。 那么别人只知道我的地址,不知道公章长什么样子,所以破解不了(公钥可以推导出地址,地址推不出公钥)

为什么知道地址却算不出公章? 因为地址是通过计算公章中所有字符的笔画总数(哈希算法)生成的。 可以想象:假设一个公章有几百个字,仅仅知道所有笔划的总数是完全不可能知道这个公章长什么样的,但是有了公章,就很容易验证是否是总笔画了。数一致。 而这个总数就是比特币中的地址(这只是一个简化的例子比特币能仿制吗,实际的哈希算法要复杂得多,不是总长度,但原理类似,就是为一串文本计算一个唯一的数字)

之前说过,每次比特币转账都会把原账户里的币全部转走,所以只要我不重复使用同一个印章,用完就扔掉,就不用担心别人了拿到公章后才能办到。 What:如果我发布交易后,高手不能根据里面的公章快速计算出私章,一旦交易完成,公章对应一个空账户

这就是为什么资深​​比特币玩家总是建议大家不要重复使用同一个地址。 这是最高级别的系统安全。 有了这个,即使量子计算机出现,比特币交易也是安全的

理解了盖章和计算总笔画数这两个概念,就可以理解比特币是如何保证签名的正确性的:首先,地址是公章所包含的总笔画数。 如果笔画总数与公章不符,公章是无效的,这种方法可以保证公章的有效性。其次,公章只有半章。 如果公章和私章的接缝不吻合,仍然无效

比特币区块和比特币的区别_比特币能仿制吗_比特币李笑比特币身价

联系上图,再看交易了解更多

事务A

支付信息:签名+公钥A

收款信息:0.9999+59(地址B)+兑换条件

事务B

比特币能仿制吗_比特币区块和比特币的区别_比特币李笑比特币身价

支付信息:签名+公钥B

收款信息:0.9998+地址C+兑现条件

整个过程是:B自己刻一个印章B,把它分成两半,一半是私章(私钥)B,另一半是公章(公钥)B,然后他统计总数B公章中的笔画数,得到A生成一个数字59,就是地址B,然后他把这个数字告诉A,让A给他转0.9999个币

于是A放行了交易A,并按照B给他的地址59填写了支付信息,并在提现条件中写明要通过标准的盖章方式进行验证。然后交易A得到了会计的认可,并且该交易记录在比特币总账中。 大家可以查一下区块链,地址59里面有0.9999个币的余额

可以看出,查看地址B有多少币,是通过查看交易A的支付信息发现的。包含币的地址称为UTXO,即未花费的输出(unspent transaction)。每当看到UTXO在比特币中,你知道它指的是包含资金的地址信息,也是一系列交易的最后一站

比特币李笑比特币身价_比特币能仿制吗_比特币区块和比特币的区别

后来B要花这个币(B笔交易)时,在B笔交易的支付信息空白处盖上B地址的公章,再写上一串数字(这串数字后面会解释) , 并在这里在号码上盖上他的私人印章

事务B

支付信息:一串数字上的私章(签名)+公章B(公钥B)

收款信息:0.9998+地址C+兑现条件

B公章的笔画总长是59,与地址B相同,证明B是地址B公章的主人,然后是B在弦上盖的私章裂纹的数字与公章完全一致(通过他的会计发布盖上公章回传的那串数字来验证两者之间的裂缝是完全一致的),证明他的公章是他自己的,这样比特币支付安全验证完成

总结一下:地址取不到公章,公章也取不到私章(现有技术下),所以用私章加盖印章,用公章验证有效性盖私章,并统计公章的总笔画数,验证是否与地址一致,充分保证盖私章的人就是地址的主人,即公章的有效性签名

上面说了,盖章的时候,盖上的是一串数字(图中的12345)比特币能仿制吗,这是什么串?这是整个比特币交易中最复杂的部分,接下来会讲到时间