技术指南 | 以太坊钱包开发:钱包地址生成过程
课程目标
理解什么是隔离见证
交易地址类型
编程实践:生成隔离见证地址
大家可能会想,这个隔离见证对我们比特币钱包开发有什么影响呢?接下来你就知道了。
一、什么是隔离见证
隔离见证的英文叫做SegWit,是Segregated Witness的简称,隔离见证是对比特币提出的一种升级方案,用于解决比特币面临的一系列严重问题,由Pieter Wuille(比特币核心开发人员、Blockstream联合创始人)在2015年12月首次提出。主要由BIP-141定义。
我们可以这样来理解隔离见证:
见证:在比特币里指的是对交易合法性的验证,用于证明自己拥有某些交易的输出的见证数据。
隔离:就是把见证数据从交易信息里抽离出来,单独存放。
SegWit解决的问题
SegWit是由Bitcoin Core的拟议更新,Bitcoin Core是当前最受欢迎的比特币标准客户端,大多数企业使用。最初,该更新旨在解决交易的可扩展性,这也是比特币软件中众所周知的弱点。虽然这种攻击向量对用户来说并不是最具破坏性的,但目前为止已经在多个攻击案例中被利用,因此也就凸显了修补这一漏洞的必要性。
目前,比特币可扩展性问题主要源自区块容量不足,这里的问题就在于当前区块的硬编码限制为1兆字节,而这并不足以承担用户每分钟尝试发送的数百笔交易。因此,很多用户必须排队等候,直到他们的交易得到确认,这个等待的时间可能是几个小时,甚或是几天。随着网络规模的扩大,交易强度也随之增加,但区块容量限制则保持不变,这就意味着问题会不断恶化。
SegWit的解决方案由两部分组成的:
第一,它可以立即将区块容量限制增加到4兆字节。这里就有一点需要注意:4 MB是绝对最大值,而实际区块容量将取决于网络条件。SegWit激活后,专家预测区块容量将在2到2.1兆的范围内。
第二,解决交易的可扩展性,将大量交易移出区块链使用雷电网络(Lightning Network)进行快速处理,预计将大大增加网络容量。
Segwit的优点
增加块可以执行的事务数。
降低交易费用。
减少每笔交易的规模。
现在可以更快地确认交易,因为等待时间将减少。
有助于比特币的可扩展性。
由于每个区块的交易数量将增加,因此可能会增加矿工可能收取的总费用。
消除交易延展性。
有助于激活雷电协议。
二、交易地址类型
地址是使用Base58check格式化的20字节哈希值,去生成P2PKH或P2SH比特币地址。目前最常用的方式是用户交换支付信息。
普通的比特币交易地址有两种类型:
P2PKH(Pay-to-Public-Key-Hash):支付给公钥哈希。是最常用的模板,它被中本聪定义,允许简单的支付给一个单一的公钥。
P2SH(Pay-to-Script-Hash):支付到脚本,这是多重签名交易输出。在BIP16定义,它允许付款到任意复杂的脚本。
隔离见证为比特币建立了两种新的交易地址:
P2WPKH(Pay-to-Witness-Public-Key-Hash):支付到隔离见证公钥哈希,类似P2PKH,在BIP141新定义的。它嵌入在P2SH脚本中,所以它可以被不知道segwit的钱包使用。
P2WSH(Pay-to-Witness-Script-Hash):支付到多重签名隔离见证脚本哈希,类似P2SH,是BIP141定义的另一个新的脚本格式。它可以嵌入到P2SH脚本和地址中,使得任何钱包都可以进行与segwit兼容的支付。
隔离见证不会在整个网络中同时实施,为了新老客户可以共存,钱包开发人员将应独立升级钱包软件以添加隔离见证功能。都升级为segwit的钱包后,使用P2WPKH和P2WSH付款类型,传统的钱包使用P2PKH和P2SH付款类型。两种形式的见证脚本P2WPKH和P2WSH都可以嵌入到P2SH地址中,是以“3”开始的地址。P2PKH是以“1”开头的地址。
举个例子,假设有两个人:lixu、zhangsan,lixu的钱包没有升级到segwit,但是zhangsan的钱包已经升级,可以处理segwit交易。lixu和zhangsan都可以使用正常地址交易,但是zhangsan很可能会使用segwit来降低交易费用。在这种情况下,zhangsan的钱包就需要构建一个包含一个segwit脚本的P2SH地址。lixu的钱包认为这是一个正常的P2SH地址,并可以在没有任何segwit的知识的情况下付款。然后,zhangsan的钱包可以通过隔离交易来支付这笔款项,充分利用隔离交易并降低交易费用。
因此我们需要构建segwit地址兼容普通地址。
三、编程实践:生成隔离见证地址
代码
输出
7EBFC423-8E93-471E-B336-C2AF46969391
验证
4C5D6822-8F20-49A9-BFCC-9D3CCB933A42
C78D7E3D-CF91-4874-9C0E-5141956BAFA7
代码解析
这里只解getSegWitAddress方法的实现,其它代码解析请查看上一章“从生成助记词到扩展子地址”的内容。
这是将p2wpkh地址嵌套在p2sh地址中,作为它的redeem字段。同时需要注意,在两种地址类型中都需要指定网络类型。上面的代码是在比特币正式网络中运行的,即指定了
const myNetwork = bitcoin.networks.bitcoin
来源:黎跃春(愿码ChainDesk.CN)
比推快讯
更多 >>- 币安将用户安全资产基金(SAFU)资产转换为USDC
- Monster World宣布加入Ronin网络
- 多链去中心化交易平台Defispot完成天使轮融资,Ash Crypto等参投
- 第二轮LFG Launchpad投票启动,共有Sanctum等六个候选项目
- Faraway收购Yuga Labs旗下两大游戏IP“HV-MTL”和“Legendsofthe Mara”
- Magic Eden以7.565亿美元的交易额领跑3月NFT市场,Blur首次失去市场领先地位
- 币安计划向印度政府支付200万美元罚金以恢复业务
- 安永宣布在以太坊上推出合同管理解决方案OCM
- Memeland在社交平台上发文称已购入21枚RSIC METAPROTOCOL
- 昨日灰度GBTC净流出1.33亿美元,ARKB净流出4270万美元
- 加密交易卡牌游戏Fantasy在Blast主网正式上线
- Runes协议推动比特币交易费超越以太坊
- 贝莱德:比特币是世界上采用最广泛的数字资产
- BytePlus宣布与Mysten Labs建立战略合作伙伴关系
- 纽约陪审团开始审议1.1 亿美元的Mango Markets欺诈案
- 灰度ETF全球主管:除比特币和以太坊ETF之外的加密ETF将100%获得批准
- QCP Capital 与 Furner Ventures 合作将业务扩展到阿布扎比
- 今日美国现货比特币ETF净减持1319枚BTC,净流出约7953万美元
- 美联储褐皮书:总体而言对经济前景持谨慎乐观态度
- Pyth Network上线BORG/USD价格数据服务
- 某巨鲸再次以3,050美元的成本价买入3,279枚ETH
- 跨链零知识扩展协议开发商Zeko Labs完成300万美元pre-seed融资
- Scroll推出忠诚度积分计划,将向用户发放追溯积分
- LMAX Group 策略师:BTC回调可能会持续一段时间,大型投资者尚未开始逢低买入
- BTC跌破60000美元,日内跌幅3.16%
- World Chain将加入Superchain并参与Optimism治理
- HODL15 Capital:Mr.100最近三天购买了几乎所有新开采的BTC
- 一巨鲸4小时前从币安提取1400枚BTC,约合8820万美元
- 加密交易所Kraken推出自托管钱包Kraken Wallet,最初将支持八个区块链
- 美国破产法院已口头批准Gemini、Genesis及其破产案债权人的拟议和解协议,初始资金分配将在 5 月底或 6 月初进行
- Zignaly 在 Cosmos 上推出 ZIGChain,并设立 1 亿美元生态系统基金
- Ontology Network推出1000万美元新基金,以推动去中心化身份创新和采用
- WorldCoin将推出自己的 L2 扩容网络World Chain,并探索DA层
- Paradigm安全主管推出加密网络安全威胁信息共享平台SEAL-ISAC
- 7,101枚BTC从未知钱包转移到Coinbase Institutional,价值超4亿美元
- Coinbase已上线Omni Network(OMNI),带有实验性标签
- 比特币回落至61000美元下方,日内跌3.30%
- 某巨鲸向币安转入140万枚WLD,若全部卖出将亏损 56 万美元
- BTC跌破62000 美元,24H跌幅2.19%
- 以太坊短线跌破3000美元,日内跌2.70%
- 比特币Ordinals检索平台Ord.io完成200万美元pre-seed融资, Bitcoin Frontier Fund 和 Sora Ventures 领投
- 稳定币开发商Usual Labs 完成700 万美元融资,IOSG 和 Kraken Ventures 领投
- 去中心化永续合约平台Aark完成累计600万美元融资
- 灰度向Coinbase Prime转入约1694枚BTC
比推专栏
更多 >>观点
项目
比推热门文章
- 币安将用户安全资产基金(SAFU)资产转换为USDC
- Monster World宣布加入Ronin网络
- 多链去中心化交易平台Defispot完成天使轮融资,Ash Crypto等参投
- 这次大跌之后该抄哪些标的?
- 读懂Mezo:Pantera和Multicoin参投,构建比特币L2的经济层
- 专访 Renzo 创始人:我们相信一切都会回到以太坊
- 扎堆进入 L2 赛道,World Chain 如何与 Optimism 超级链实现双赢?
- 从中本聪的消失与比特币生态的分层建设再看去中心化
- NFT 里领空投?只是玩法之一!详解 xNFT —— Backpack 的秘密武器
- 第二轮LFG Launchpad投票启动,共有Sanctum等六个候选项目