比特币普通地址、隔离见证(兼容)、隔离见证(原生)、Taproot 地址傻傻分不清楚

news2024/12/28 5:03:26

我们在使用比特币钱包的时候,可以看到各种地址类型:普通地址、隔离见证(兼容)、隔离见证(原生)、Taproot 地址。

在这里插入图片描述

看得我们一脸懵逼,为什么会有这么多种类型的地址?

它们之间都有什么区别?

接下来我就给你介绍一下。

比特币的地址类型是慢慢发展过来的,刚开始只有普通地址,后来比特币进行了SegWit(隔离见证)升级,所以就发展出来了隔离见证(兼容)和隔离见证(原生)地址。

隔离见证(兼容)地址主要是为了兼容那些不支持隔离见证的老钱包,也就是说那些一直没有升级的老钱包也能使用隔离见证(兼容)地址。

而隔离见证(原生)地址就不兼容老钱包了,只有支持隔离见证的钱包才能使用。

再后来为了提高隐私性、扩展性和效率,特别是在执行复杂交易和智能合约方面的能力,比特币网络又进行了Taproot升级,所以就出现了Taproot地址。

下面我们再来详细看下各个地址的特点:

普通地址(P2PKH)

普通地址,也被称为P2PKH(Pay to Public Key Hash)地址,是比特币最早使用的地址类型。它们以数字“1”开头,例如“1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2”。普通地址的主要特点是直接将比特币发送给一个特定的公钥哈希(即地址),而公钥本身直到交易被广播时才被揭露。这种地址类型的实现原理相对简单,但缺点在于每笔交易都需要公开公钥,从而略微降低了隐私性,并且由于数据结构的限制,增加了交易的大小和费用。

隔离见证地址(SegWit)

为了解决交易可扩展性问题,比特币引入了隔离见证(SegWit)技术。SegWit地址分为兼容模式(P2SH-P2WPKH)和原生模式(P2WPKH)。

兼容模式(P2SH-P2WPKH)

兼容模式地址以数字“3”开头,如“3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy”。它们通过将见证数据(即签名和公钥信息)从交易的传统数据结构中分离出来,来降低每笔交易的大小。

这种方式不仅提高了网络的处理能力,而且向后兼容,通过在P2SH地址中嵌套P2WPKH地址,既兼容了老式钱包,又能利用SegWit带来的优势(如降低交易费用、提高区块链效率),意味着不支持SegWit的钱包和服务也可以使用。

原生模式(P2WPKH)

原生SegWit地址,也称为Bech32地址,以“bc1”开头,如“bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq”。它们完全采用SegWit结构,进一步优化了交易大小和处理速度。相比于兼容模式,原生SegWit地址提供了更好的效率和更低的手续费,但在兼容性方面可能略逊一筹,不支持SegWit的钱包就用不了了。

Taproot地址(P2TR)

Taproot是比特币最新的升级,旨在提高隐私、扩展性和安全性。Taproot地址以“bc1p”开头,通过利用Schnorr签名和Merkle化的脚本树(MAST),它能够提供更高的效率和隐私。这种地址类型能够使复杂的智能合约看起来与普通交易无异,从而增加了链上活动的隐私性。尽管Taproot带来了显著的好处,但其全面采用还需时间,因为它需要钱包和服务提供者的支持。

不同类型的地址之间能互相转账吗?

普通地址、隔离见证(兼容)、隔离见证(原生)、Taproot 地址之间可以互相转账。在比特币网络中,不同类型的地址主要涉及到如何编码和处理交易的细节,但它们都遵循相同的底层比特币协议。

比特币网络根据交易使用的地址类型不同,比特币网络中的节点和矿工会采用不同的处理方法来验证和确认交易。

因此,从任何一种地址类型向另一种类型的地址发送比特币都是可以的,地址类型的不同只是传输的数据格式和方法不同,并不影响发送和接受比特币。

为什么普通比特币地址不能采用SegWit的规则来处理?

普通比特币地址(非SegWit地址)不采用SegWit(隔离见证)的规则来处理,主要基于以下几个原因:

  • 向后兼容性:比特币网络强调向后兼容性,以确保网络的稳定性和旧地址的有效性。比特币是一个去中心化网络,任何改动都需要社区的广泛共识。完全弃用非SegWit地址并强制转向SegWit地址可能会导致未升级钱包的交易被网络拒绝,这会割裂社区,影响现有用户的资金安全。
  • 渐进式升级:比特币采取渐进式的技术升级路径,SegWit的引入就是一个典型例子。通过允许新旧地址类型共存,比特币网络可以确保在引入新技术的同时,不会立即使旧技术过时。这种方法减少了升级对用户的影响,并给予用户和服务提供商时间来适应新技术。
  • 用户选择:不同类型的地址提供了不同的功能和优势。例如,虽然SegWit地址在交易费用和区块链效率方面有优势,但一些用户和服务可能因为特定的兼容性或技术需求而选择继续使用传统地址。提供多种地址类型,允许用户根据自己的需求做出选择。
  • 技术和经济因素:实施SegWit并不仅仅是一个技术升级,它也涉及到经济和政治因素。比如,矿工可能对减少交易费用有所顾虑,因为这直接关系到他们的收入。此外,大规模升级到SegWit也需要广泛的社区支持和足够的技术准备,这需要时间和资源。
  • 兼容性和安全性考虑:任何在比特币网络中推广的新技术都需要经过充分的测试和验证,以确保其不会引入新的安全问题。渐进式地接受新技术,同时保持旧技术的支持,是一种谨慎的做法,可以保障网络的安全性和稳定性。

总的来说,虽然SegWit带来了显著的好处,但在全面采纳之前,比特币社区需要考虑到各种技术、经济和社会因素。通过允许不同类型的地址共存,比特币网络能够提供更广泛的兼容性,同时逐步引导用户和服务提供商向更高效的技术转移。

最后请注意

一个秘钥可以同时生成普通地址、隔离见证(兼容)、隔离见证(原生)、Taproot 地址,但是各地址之间是相互隔离的,就好像你有同一个银行不同的账号,每个账号里的钱是独立的。

如果你把比特币转到你的普通地址里,那么就只能在普通地址里看到你的比特币,其他地址是看不到的。所以你一定要搞清楚,你的比特币是在哪个具体的地址里面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1501897.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

17、电源管理入门之Power supply子系统

目录 1. Power supply框架都做些什么 2. 相关数据结构和接口 2.1 数据结构 2.2 接口 3. 充电驱动 3.1 Charger Manager 3.2 Fuel Gauge 3.3 Charger IC 4. 怎样基于power supply class编写PSY driver 参考资料: 对于便携设备来说,电源管理更加的重要,因为电池电量…

SaulLM-7B: A pioneering Large Language Model for Law

SaulLM-7B: A pioneering Large Language Model for Law 相关链接:arxiv 关键字:Large Language Model、Legal Domain、SaulLM-7B、Instructional Fine-tuning、Legal Corpora 摘要 本文中,我们介绍了SaulLM-7B,这是为法律领域量…

web组态

演示地址 :by组态[web组态插件] 这是一款可以嵌入到任何项目组态插件,功能全面,可根据自己的项目需要进行二次开发,能大大的节省在组态上的开发时间,代码简单易懂。 一、数据流向图及嵌入原理 数据流向 嵌入原理 …

[N1CTF 2018]eating_cms 不会编程的崽

题倒是不难,但是实在是恶心到了。 上来就是登录框,页面源代码也没什么特别的。寻思抓包看一下,数据包直接返回了sql查询语句。到以为是sql注入的题目,直到我看到了单引号被转义。。。挺抽象,似乎sql语句过滤很严格。又…

读算法的陷阱:超级平台、算法垄断与场景欺骗笔记04_共谋(上)

1. 共谋 1.1. 共谋总比相互竞争要容易得多 1.1.1. 通过共同抬价或稳定价格,企业通常可以赚取更多利润 1.1.2. 依靠人为切割市场,卡特尔组织成员得以在各自的势力范畴内实现垄断 1.2. 一直以来,人类都是价格操纵行为背后的行动者 1.2.1. …

解决方案|珈和科技推出农业特色产业数字化服务平台

今年中央一号文件提出,鼓励各地因地制宜大力发展特色产业,支持打造乡土特色品牌。 然而,农业特色产业的生产、加工和销售仍然面临诸多挑战。产品优质不能优价,优质不能优用的现象屡见不鲜,产业化程度低、生产附加值不…

QtWebEngine模块常用功能

QtWebEngine模块常用功能 https://note.youdao.com/s/Im0k2ZKe 1. 拦截请求 2. 忽略证书错误 3. 下载文件 4. 内嵌谷歌开发者界面 5. 获取Html页面用户选择的文件和目录 6. 获取响应的cookie 所有代码的7z压缩后的Base64编码如下: (注意复制出来是…

pytorch的梯度图与autograd.grad和二阶求导

前向与反向 这里我们从 一次计算 开始比如 zf(x,y) 讨论若我们把任意对于tensor的计算都看为函数(如将 a*b(数值) 看为 mul(a,b)),那么都可以将其看为2个过程:forward-前向,backward-反向在pyto…

基于单片机的水平角度仪系统设计

目 录 摘 要 I Abstract II 引 言 1 1控制系统设计 3 1.1系统方案设计 3 1.2系统工作原理 4 2硬件设计 6 2.1单片机 6 2.1.1单片机最小系统 6 2.1.2 STC89C52单片机的性能 7 2.2角度采集电路 8 2.2.1 ADXL345传感器的工作原理 9 2.2.2 ADXL345传感器倾角测量的原理 9 2.2.3 AD…

npm 操作报错记录1- uninstall 卸载失效

npm 操作报错记录1- uninstall 卸载失效 1、问题描述 安装了包 vue/cli-plugin-eslint4.5.0 vue/eslint-config-prettier9.0.0 但是没有使用 -d ,所以想重新安装,就使用 uninstall 命令卸载,结果卸载了没反应,也没有报错&#xf…

CubeMX使用教程(5)——定时器PWM输出

本篇我们将利用CubeMX产生频率固定、占空比可调的两路PWM信号输出 例如PA6引脚输出100Hz的PWM;PA7引脚输出500Hz的PWM,双路同时输出 我们还是利用上一章定时器中断的工程进行学习,这样比较方便 首先打开CubeMX对PA6、PA7进行GPIO配置 注&a…

【Web】浅聊Java反序列化之C3P0——JNDI注入利用

目录 简介 原理分析 EXP 前文:【Web】浅聊Java反序列化之C3P0——URLClassLoader利用 【Web】浅聊Java反序列化之C3P0——不出网Hex字节码加载利用 简介 出网的情况下,这个C3P0的Gadget可以和fastjson,Snake YAML , JYAML,Yamlbeans , …

Axure Cloud如何给每个原型配置私有域名

需求 在原型发布之后,自动给原型生成一个独立访问的域名,类似http://u591bi.axshare.bushrose.cn,应该如何配置呢? 准备事项 已备案域名 如何备案?阿里云备案流程 已安装部署Axure Cloud 如何安装部署,请…

【MySQL 系列】MySQL 语句篇_DML 语句

DML(Data Manipulation Language),即数据操作语言,用于操作数据库对象中所包含的数据。常用关键字包括:插入(INSERT)、更新(UPDATE)、删除(DELETE&#xff09…

用 Axios 提升前端异步请求的效率

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

政安晨:【深度学习处理实践】(三)—— 处理时间序列的数据准备

在深度学习中,对时间序列的处理主要涉及到以下几个方面: 序列建模:深度学习可以用于对时间序列进行建模。常用的模型包括循环神经网络(Recurrent Neural Networks, RNN)和长短期记忆网络(Long Short-Term M…

ubuntu下vscode+STM32CubeMX+openocd+stlinkv2搭建STM32开发调试下载环境

1、换源 清华源 # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restr…

b站小土堆pytorch学习记录—— P27-P29 完整的模型训练套路

文章目录 一、定义模型(放在model.py文件中)二、训练三、测试四、完整的训练和测试代码 一、定义模型(放在model.py文件中) import torch from torch import nnclass Guodong(nn.Module):def __init__(self):super(Guodong,self)…

解决:ModuleNotFoundError: No module named ‘paddle‘

错误显示: 原因: 环境中没有‘paddle’的python模块,但是您在尝试导入 解决方法: 1.普通方式安装: pip install paddlepaddle #安装命令 2.镜像源安装 pip install paddlepaddle -i https://pypi.tuna.tsinghua.e…

黑马java-JavaSE进阶-java高级技术

1.单元测试 就是针对最小的功能单元方法,编写测试代码对其进行正确性测试 2.Junit单元测试框架 可以用来对方法进行测试,它是第三方公司开源出来的 优点: 可以灵活的编写测试代码,可以针对某个方法执行测试,也支持一键…