当前位置:   article > 正文

多重验证及比特币脚本中的P2PK、P2PKH、P2SH机制

多重验证及比特币脚本中的P2PK、P2PKH、P2SH机制

在数字货币的世界中,安全性和有效性是核心要素。其中,二重验证作为一种强化账户安全的重要手段,以及比特币赎回脚本系统中的P2PK、P2PKH、P2SH等交易类型,对于理解区块链技术的底层逻辑和实现方式至关重要。本文将对这些概念进行深度解析。

多重签名

首先,我们来理解多重签名。多重签名(Multisignature, MultiSig)技术是一种应用于数字货币交易的安全措施,其基本思想是要求多个预设的私钥共同参与到一笔交易的签名和确认过程中,只有当达到预定数量的私钥签名后,这笔交易才能被认为有效并被区块链网络接受。多重签名技术显著提高了资金的安全性和管理灵活性,因为它可以在一定程度上防止单点故障,避免单一私钥丢失或被盗带来的资产损失风险。

    地址生成:

        创建一个多签名地址时,需要指定所需的签名总数(N)和至少需要多少个签名(M)才能解锁交易,通常表示为M-of-N。

        对于每个参与者,都会生成各自的公钥,并将这些公钥合并生成一个多重签名地址。

    交易构造:

        发起一笔多重签名交易时,交易输出(UTXO)会关联到上述多重签名地址,并在锁定脚本(scriptPubKey)中嵌入多重签名规则。

    签名收集:

        当需要花费这笔资金时,需要获得M个私钥持有人的签名,每个参与者用自己的私钥对交易数据进行签名。

    交易提交与验证:

        收集到足够的签名后,将这些签名连同原始交易信息一起组成一个新的交易输入脚本(scriptSig)。

       区块链网络中的每个节点在验证交易时,会检查输入脚本中的签名是否满足多重签名规则,只有当满足M-of-N条件时,交易才会被认为是有效的,并最终被确认到区块链上。

在比特币网络中,多重签名可以通过标准的P2SH(Pay to Script Hash)或 native SegWit (P2WSH) 地址格式实现,而在其他区块链平台上也可能有不同的实现方法。这项技术已经被广泛应用在加密货币钱包、企业级财务管理、冷热钱包隔离策略、去中心化金融(DeFi)等领域,以增强资产管理和交易的安全性。

接下来,我们将目光转向比特币交易赎回脚本中的三种常见类型:P2PK、P2PKH和P2SH。

P2PK(Pay to Public Key):

这是一种直接支付到公钥的交易类型。在比特币交易中,用户通过私钥生成公钥,然后直接将比特币发送到这个公钥上。接收者需使用对应的私钥解锁交易。然而,由于公钥的长度较大,这种交易模式在存储和处理上效率较低,因此并未广泛采用。

P2PK(Pay to Public Key)是比特币早期的一种交易类型,它的底层原理基于比特币的公钥加密算法。在比特币网络中,每一个参与交易的实体都有自己的密钥对,包括一个公钥和一个私钥。公钥用于接受资金,私钥则用于证明所有权和花费资金。

P2PK的工作原理

  1. 公钥公开:在P2PK交易中,发送者直接指定接收者的公钥作为输出赎回脚本的一部分,这意味着任何人都可以看到这个公钥,但并不知道对应的私钥。
  2. 私钥签名:当接收者想要花费这笔资金时,他需要用他的私钥对交易进行数字签名。签名过程确保了只有持有相应私钥的人才能创建有效的交易请求。
  3. 验证交易:网络上的每个节点在验证交易时,会使用公钥验证数字签名的有效性。如果签名正确,那么可以确认发起交易的是拥有对应私钥的实体,交易得以通过网络共识机制确认并添加到账本(区块链)中。

尽管P2PK直截了当,但它在实际应用中存在一些不足,例如公钥数据量相对较大,不利于存储和传播效率。相比之下,P2PKH通过引入公钥哈希解决了这个问题,它要求资金转到公钥哈希(即比特币地址)而非完整的公钥,从而提高了交易赎回脚本的紧凑性和安全性。此外,P2PKH还提供了额外的层次间接保护,因为公钥本身不直接暴露在区块链上。

P2PKH(Pay to Public Key Hash)

这是比特币中最常见的交易类型。它改进了P2PK模式,将公钥哈希(即地址)作为交易目标,而不是直接使用公钥。这种方式不仅缩短了交易数据大小,也提升了隐私保护,因为哈希值并不能反推出原始公钥。发送者将比特币发至收款人的地址,收款人再用对应私钥进行解密,完成交易。

P2PKH(Pay to Public Key Hash)是比特币中广泛使用的交易类型,它的底层原理建立在比特币的公钥加密体系和散列函数基础之上。以下是P2PKH工作流程的详细说明:

  1. 公钥和私钥生成
    1. 首先,用户通过一个随机数生成器创建一个私钥,这个私钥是一个非常大的整数,用于签署交易以证明所有权。
    2. 私钥经过椭圆曲线加密算法(ECDSA)计算得出对应的公钥,公钥是一串可公开的长字符串。
  2. 公钥哈希
    1. 公钥接着被通过SHA256算法进行哈希运算,然后再经过RIPEMD160算法再次哈希,生成一个20字节的公钥哈希值,也称为地址标识符。
    2. 这个公钥哈希值(或者经过Base58Check编码后的版本,即我们日常看到的比特币地址)被用来接收比特币。
  3. 交易结构
    1. 当发送者想要向一个P2PKH地址发送比特币时,他们在交易的输出部分(UTXO,未花费交易输出)设定一个锁定赎回脚本(scriptPubKey),该赎回脚本包含一个OP_DUP、OP_HASH160、推送公钥哈希、OP_EQUALVERIFY、OP_CHECKSIG的操作码序列。这意味着要花费这笔资金,必须提供一个能够解开这个赎回脚本的公钥及其对应的合法签名。
  4. 解锁交易
    1. 接收者在构建一笔新的交易时,他们需要提供输入赎回脚本(scriptSig),该赎回脚本包含他们的公钥和用私钥对交易进行的数字签名。
    2. 区块链上的节点在验证这笔交易时,会执行输入赎回脚本和锁定赎回脚本。首先,检查提供的公钥是否匹配先前的公钥哈希;其次,通过公钥验证签名的有效性。两者均验证通过后,交易被认为是有效的,并可以被矿工打包进区块中。

通过这种方法,P2PKH不仅增强了隐私,因为它在网络中仅广播地址而不是公钥,而且通过使用哈希简化了地址的表示形式,同时保持了交易的安全性,因为只有拥有相应私钥的人才能成功地解锁并转移资金。

P2SH(Pay to Script Hash)

P2SH则是进一步提升比特币交易灵活性与扩展性的方案。在这种模式下,交易的目标是一个赎回脚本哈希,实际的锁定和解锁条件被封装在一个赎回赎回脚本中。只有当提供的输入赎回脚本执行结果与该哈希匹配时,交易才能被解锁。P2SH极大地支持了多重签名、时间锁等复杂交易场景,并且能兼容未来的新型交易类型,具有很高的前瞻性。

P2SH(Pay to Script Hash)的底层原理:

P2SH是一种特殊的比特币交易输出类型,它允许将付款发送至一个特定的脚本哈希值而不是直接到一个公钥哈希地址。这种机制允许复杂脚本隐藏在交易输出中,使得交易数据更加简洁,同时也提高了灵活性和安全性。

P2SH的工作原理

  1. 创建赎回脚本: 用户定义一个复杂的脚本作为“赎回脚本”,例如一个多重签名脚本,要求多个签名者中的一定数量签名来解锁资金。
  2. 哈希脚本: 将此赎回脚本经过SHA256和RIPEMD160双层哈希运算得到一个脚本哈希值,这个哈希值就是所谓的P2SH地址。
  3. 交易输出: 发送者创建交易输出时,锁定脚本(scriptPubKey)设置为OP_HASH160 + 脚本哈希 + OP_EQUAL。这样,任何想花费这笔资金的人都需要提供一个能解密这个脚本哈希的完整赎回脚本来证明他们有权花费这些资金。
  4. 花费输出: 接收者在花费这个P2SH输出时,在输入脚本(scriptSig)中提供完整的原始赎回脚本以及必要的签名和其他数据来满足赎回脚本的要求。验证节点会执行这个赎回脚本,如果所有条件都被满足,则交易被认可为有效。
  5. BUG:在比特币早期开发过程中,有过与脚本语言执行相关的bug,由于早期的多重签名交易中CHECKMULTISIG指令的执行顺序 bug,导致在P2SH多重签名脚本中,解锁脚本需要以OP_0开头(或一个无效的签名占位符),以便正确处理多签情况下的签名计数。这个“bug”后来并没有被视为严重错误,而是成了实际应用中的一种约定俗成的做法,并且在后续的软分叉升级(如BIP 66)中得到了标准化和修正。

POB

全称为Proof of Burn(燃烧证明),是一种共识机制的概念,在分布式账本或区块链系统中用于决定谁有权参与区块创建(挖矿)的过程。不同于工作量证明(Proof of Work, PoW)、权益证明(Proof of Stake, PoS)等常见共识算法,POB通过“销毁”或“牺牲”一定数量的代币来获得未来在网络中的某种权利或特权。

POB的核心理念在于:用户通过将他们的代币发送到一个不可逆转的地址(即黑洞地址),从而永久地从流通中移除这些代币,这种行为被视为一种对网络的长期承诺和投资。燃烧代币的行为被记录在区块链上,作为一种证明,显示了该用户愿意牺牲自己的经济利益以换取网络内的权力。燃烧的代币越多,理论上在后续的区块生产或决策过程中的权重可能越大。

以下是POB机制的详细步骤及特点:

代币燃烧:用户选择一定数量的代币并将它们发送到一个特殊的、无法解密且无人能控制的地址(通常是预先设定的无效地址)。这个过程不可逆,意味着一旦代币被发送到这个地址,就永远无法再使用。

权重积累:每燃烧一个单位的代币,用户就会在POB系统中累积相应的权重或权益。这个权重可以用来竞争成为区块生产者,或者在某些情况下获取投票权、手续费减免等特权。

公平分配:燃烧代币的数量决定了用户在网络中的相对影响力,而非像PoW那样依赖于算力资源或PoS那样依赖于持有的代币总量。因此,POB有助于减少资源浪费,同时鼓励更广泛的社区参与和长期投资。

安全性与稳定性:通过牺牲实际价值的代币,POB增强了系统的安全性和稳定性,因为攻击者需要先付出高昂的成本(燃烧大量代币)才能尝试恶意操作。

激励机制:POB也作为一种经济激励手段,鼓励用户为了维护网络安全和稳定而自愿放弃部分代币。这有助于确保网络的可持续发展和用户的忠诚度。

在某个基于POB机制的DAO项目中,成员通过燃烧一定数量的代币来获取参与治理决策的资格。然而,为了保证重大决策的审慎和公正,项目的智能合约可能规定,任何涉及资金分配、修改规则等关键操作都需要通过多重签名机制来执行。

总结

总结来说,二重验证为加密货币资产提供了一种更高级别的安全保障,而比特币赎回脚本系统中的P2PK、P2PKH、P2SH交易类型,则从不同的维度优化了交易过程,既保证了安全性又提升了效率。深入理解和掌握这些概念和技术,有助于我们在数字货币世界中更好地保障资产安全,应对日益复杂的交易需求。未来,随着区块链技术的发展,我们期待看到更多创新的验证机制和交易形式的出现。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/187546
推荐阅读
相关标签
  

闽ICP备14008679号