支付到合约(P2C)

正如我们在“公共子密钥推导”中看到的那样,椭圆曲线密码学(ECC)的数学允许Alice使用私钥推导出她提供给Bob的公钥。他可以向该公钥添加任意值以创建派生的公钥。如果他将该任意值提供给Alice,她可以将其添加到她的私钥中,推导出相应的派生私钥。简而言之,Bob可以创建只有Alice可以创建相应私钥的子公钥。这对于BIP32样式的分层确定性(HD)钱包恢复很有用,但也可以用于其他用途。

让我们想象一下,Bob想从Alice那里购买东西,但他也想以后能够证明他支付了什么以防有任何争议。Alice和Bob就销售的物品或服务的名称达成一致(例如,“Alice的播客第123集”),并将该描述转换为数字,方法是将其哈希化并将哈希摘要解释为数字。Bob将该数字添加到Alice的公钥中并支付。该过程称为密钥调整,该数字称为调整值。

Alice可以通过使用相同的数字(调整值)调整她的私钥来支配资金。

稍后,Bob可以向任何人证明他支付了什么给Alice,方法是公开她的底层密钥和他们使用的描述。任何人都可以验证支付的公钥是否等于底层密钥加上对描述的哈希承诺。如果Alice承认那个密钥是她的,那么她就收到了付款。如果Alice花费了资金,这进一步证明她在签署支出交易时知道描述,因为只有在她知道调整值(描述)时,她才能为调整后的公钥创建有效的签名。

如果Alice和Bob都决定不公开他们使用的描述,它们之间的付款看起来就像任何其他付款一样。没有隐私损失。

由于P2C默认是私密的,我们无法知道它用于其原始目的的频率 - 在理论上,每笔付款都可能使用它,尽管我们认为这不太可能。然而,P2C今天在略有不同的形式中被广泛使用,我们将在“Taproot”中看到。

Last updated