主页 > imtoken官网下载广告 > 比特币地址

比特币地址

imtoken官网下载广告 2023-05-23 05:29:35

先决条件

一些必要的密码学知识。 在非对称加密体系中,公钥和私钥主要有两个作用,一是加密和解密,二是生成和验证数字签名。 了解比特币地址的相关知识,你必须具备基础知识

公钥用于加密,私钥用于解密私钥生成数字签名,公钥用于解锁(验证)数字签名

在比特币网络中,非对称加密采用椭圆曲线加密算法,其具体算法内容参考此链接

关于哈希函数(hash function,Hash,hash,H)是一种单向函数,也就是说,给定一个输入,就会得到一个输出,但输入不能与输出相反。 一首完整的诗可以揭示藏首的信息,但只有藏首的信息并不能产生一首完整的诗。

另外,在Segregated Witness的介绍中,经常会出现延展性这个词。 这个词的含义如下:是指金属材料在冲压加工过程中能够变形而不产生裂纹的性能。 这个概念是从 Segregated Witness 借用的,在不改变其性能(理论上)的情况下改变区块链的结构。

P2PKH (Pay to Public Key Hash)

在比特币中,大多数交易都支付给公钥的输出。 P2PKH脚本锁定的输出,可以通过出示公钥和对应的私钥生成的数字签名来解锁,从而可以花费手续费。

让我们用一个例子来说明。 A支付B一笔P2PKH手续费,交易输出格式如下:

OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG

其中OP_DUP和OP_HASH160称为操作码。 有关更多操作码及其含义,请单击此链接。

上述锁定脚本的解锁脚本格式如下:

验证时,执行以下操作:

<B Signature> <B Public Key> OP_DUP OP_HASH160
<B Public Key Hash> OP_EQUALVERIFY OP_CHECKSIG

以太坊地址比特币地址_比特币分叉会影响比特币价格吗_比特币地址一共有多少个

这个脚本的具体含义可以参考这个链接比特币地址一共有多少个,里面用图形的方式解释的很清楚。

P2SH(支付脚本哈希)

与P2PKH相比,P2SH支持多重签名,丰富了P2SH的支付逻辑,因为P2PKH只能支持一个公钥匹配一个签名。

从多重签名开始

所谓多重签名的意思很简单。 有时候我们会在电影里看到这样的场景,有一个金库,金库的主人是三个人。 为了让三人形成相互制约,三人不能单独打开这个金库,这个金库只有三人中至少有两人在场,才能打开。 在这个2-of-3的关系中,就是一个多重签名逻辑。

所谓多重签名,就是当有n个公钥时,必须有m个签名与之匹配(n>m)。 2个

3 CHECKMULTISIG 查看这个多重签名条件的锁定脚本,意思是现在有三个公钥,只有两个签名匹配才能解锁脚本。 其中CHECKMULTISIG为匹配运算符。

所以要解锁上面的脚本,其格式应该如下,2

3 CHECKMULTISIG,但是由于历史原因,代码层面的底层架构存在bug。 这个bug需要解锁的参数个数计算错误,比特币网络几乎不可能改变共识,所以实际解锁脚本如下,0 2

3 CHECKMULTISIG 通过 0 来替换计算错误的更多。

P2SH

可以看出,之前的多重签名丰富了解锁脚本的场景。 原来的P2PKH只能是一对一的场景,而多重签名支持支付交易到n-of-m下的一个验证场景。

但是多重签名也有问题,请看下面,2

5 CHECKMULTISIG 这个脚本中有5个公钥,但实际上最多可以有15个公钥,而且往往在大量的公钥中,可能只有很少的签名作为m的一部分,大大增加了交易空间。 负担,而比特币的交易手续费也是按照脚本的长度来计算的,所以这也增加了更多的交易手续费。

比特币分叉会影响比特币价格吗_比特币地址一共有多少个_以太坊地址比特币地址

于是P2SH地址出现了,它的作用很简单,就是把很长的公钥的一部分用hash加密,得到的脚本叫做赎回脚本(redeem script),之所以叫赎回脚本是因为这个脚本不是锁定脚本的部分(锁定脚本在上一笔交易的输出部分,赎回脚本在下一笔交易的输入部分)。

下面以《精通比特币》中的例子为例,构造一个P2SH地址

2个

5 检查多重签名

这是一个多重签名模型,其实它的脚本如下,

5 检查多重签名

可以看出它很长,我们只是想通过SHA256+RIPEMD160将这个脚本替换成一个20字节的加密哈希。

得到的结果如下,

54c557e07dde5bb6cb791c7a540e0a4796f5e97e

可以看出结果大大降低了。

综上所述,我们可以看到P2SH地址的优势主要有两点,一是交易手续费较低,而且用户的公钥没有被暴露(虽然公钥可以被别人获取,但如果不是必须的话,做不要随意传播你的公钥)。 但是P2SH也不是没有缺点,就是因为P2SH的地址总是以3开头,在透明的区块链网络上很容易被知道你是支付给脚本的哈希。 这就带来了安全问题,因为在区块链交易网络中,最好的方式是任何时候都不要暴露你的地址,因为通常每笔交易使用不同的地址才符合安全。

隔离见证

Witness once 在比特币语境中代表解锁条件比特币地址一共有多少个,可以作为输入来验证 UTXO 的输出。 其中,数字签名是一种“见证”,但“见证”本身的范围更广,只要能证明你可以使用费用,就可以作为见证。 说白了,见证就是证明你可以使用这个数据。

在Segregated Witness之前,每个输入的交易脚本中都跟随着交易的见证数据,比如上面提到的用于验证的数字签名。 Segregated Witness 会挑出用于解锁的字段,不会和交易数据本身混在一起。 你为什么这么做?

比特币地址一共有多少个_以太坊地址比特币地址_比特币分叉会影响比特币价格吗

我们知道,在比特币网络中,要解决的本质问题无非是不可能三角:去中心化、安全和性能(每次升级最多只能满足其中两个),而隔离见证也解决了安全问题(匿名)性质)和性能问题。 无论是Segregated Witness的升级,还是最近taproot的升级,其本质都是解决两个问题。 一是让地址更加匿名,无法从地址区分哪个是脚本支付,哪个是公钥支付。 相反,让交易数据尽可能小,以减少交易费用。

那么回到刚才的问题,每一笔比特币交易的核心都应该是交易本身的数据,任何用于证明的数据只是为了提供安全性而添加的,将见证数据与交易本身分开,这是合乎逻辑的,因为比特币的交易费用是根据交易数据的大小来决定的,而在见证数据与交易数据隔离之前,有时见证数据(用来证明你可以使用这个交易证明)占交易费用的75%整个传输数据,这表明主客体颠倒了。

此外,Segregated Witness优化了签名算法的复杂度,将算法的复杂度降低到一个恒定的水平

隔离见证是一个软分叉

P2WPKH (Pay-to-Witness-Public-Key-Hash)

我们先来看看P2PKH(采用后称为P2WPKH,W是Witness,意思是证人)是如何与Segregated Witness一起工作的。

这里也借用《精通比特币》的资料,以下为P2PKH原文

DUP HASH160 ab68025513c3dbd2f7b92a94e0581f5d50f654e7 EQUALVERIFY CHECKSIG

而使用 P2WKH 的输出脚本是这样的,

0ab68025513c3dbd2f7b92a94e0581f5d50f654e7

可以看出长度明显缩短,其中0表示版本好,ab...是witness公钥的hash。

接下来看解锁条件。 在原来的P2PKH中,解锁脚本是这样的,

[...]
“Vin” : [

以太坊地址比特币地址_比特币分叉会影响比特币价格吗_比特币地址一共有多少个

"txid": "0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2", "vout": 0, "scriptSig":<Bob’s scriptSig>”, ] [...]

交易输入包含 Bob 的签名,用于验证只有 Bob 可以使用这笔钱。

而对于Segregated Witness的P2PKH,输入脚本(解锁脚本)如下,

[...]
“Vin” : [
"txid": "0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2",
"vout": 0,
     	 "scriptSig": “”,
]

比特币地址一共有多少个_比特币分叉会影响比特币价格吗_以太坊地址比特币地址

[...] “witness”: “<Bob’s witness data>[...]

可以看出scriptSig部分为空,witness数据放在交易输入witness之外的单独字段。

对于Segregated Witness的P2SH,效果和上面类似,这里不再赘述。

隔离见证的问题

首先,隔离见证并没有在一定程度上解决面临的安全问题。 只是填坑开新坑,因为从地址上观察,还是很容易看出Segregated Witness的地址和普通地址长度的区别。 同时,地址开头的字母也“卖”了地址的类别。

其次,Segregated Witness是一个软分叉,这让很多社区成员对Segregated Witness不以为然,甚至强烈反对。 他们认为,Segregated Witness违背了中本聪的初衷,最终导致BTC的一部分分裂为BCH。

参考

“掌握比特币”

一篇文章了解隔离见证的优势和工作原理

SegWit(隔离见证)

隔离见证的缺点是什么?

什么是比特币地址及三种地址格式的比较 | 硬币钱包讲座

隔离见证初学者指南

天哪,居然有高手5分钟把Segregated Witness解释的这么清楚!