当前位置: 首页 > news >正文

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

我们在使用比特币钱包的时候,可以看到各种地址类型:普通地址、隔离见证(兼容)、隔离见证(原生)、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 地址,但是各地址之间是相互隔离的,就好像你有同一个银行不同的账号,每个账号里的钱是独立的。

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

相关文章:

  • java中使用rabbitmq
  • 【Docker】PostgreSQL 容器化部署
  • Elasticsearch:机器学习与人工智能 - 理解差异
  • ctf_show笔记篇(web入门---代码审计)
  • 【Linux基础(三)】信号
  • 爬虫练习:获取某网站的房价信息
  • Gitea相关漏洞
  • 【深入理解设计模式】命令设计模式
  • Linux应用程序对异步通知的处理
  • 算法时空复杂度分析:大O表示法
  • print()大揭秘:如何用Python打印出多样字符
  • 4G安卓核心板T310_紫光展锐平台方案
  • MYSQL--JSON_OBJECT 和 JSON_ARRAYAGG
  • Qt控制台项目也能使用opencv的imshow来显示摄像头视频
  • Playwright中page.locator快速查找网页元素和对象交互操作
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • CSS魔法堂:Absolute Positioning就这个样
  • Java,console输出实时的转向GUI textbox
  • JavaScript中的对象个人分享
  • JS变量作用域
  • js写一个简单的选项卡
  • Map集合、散列表、红黑树介绍
  • PAT A1092
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • react-native 安卓真机环境搭建
  • session共享问题解决方案
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • XML已死 ?
  • 近期前端发展计划
  • 开发基于以太坊智能合约的DApp
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 我是如何设计 Upload 上传组件的
  • 学习使用ExpressJS 4.0中的新Router
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • raise 与 raise ... from 的区别
  • ​Python 3 新特性:类型注解
  • ​学习一下,什么是预包装食品?​
  • ​一些不规范的GTID使用场景
  • # 计算机视觉入门
  • #define
  • #Linux(Source Insight安装及工程建立)
  • $.proxy和$.extend
  • (C#)一个最简单的链表类
  • (二)丶RabbitMQ的六大核心
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转) 深度模型优化性能 调参
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • ***利用Ms05002溢出找“肉鸡
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET Framework .NET Core与 .NET 的区别
  • .net 生成二级域名