智能合约是一种基于区块链的程序,它编码了两方或多方之间的协议条件与履行机制,并在条件满足时自动执行协议条款。通过智能合约,您可以用透明、可追溯、防篡改且不可逆的方式交换任何有价值的事物。
将智能合约编码到区块链中的优势在于,它能够在不依赖传统第三方机构(如金融机构或法律机构)的情况下安全地执行合约。合约的执行由运行区块链的分布式、去中心化计算机网络监督。
您可以使用 XRP 账本的托管功能作为智能合约,在特定时间过后或密码学条件满足时释放 XRP。本文将重点介绍如何利用托管功能实现基于密码学条件触发的智能合约。
智能合约应用场景
让我们通过一个具体场景来理解这一应用:一位活动策划人希望使用智能合约来管理活动主办方向表演乐队支付的费用。具体来说,活动策划人希望设计一个智能合约,使得主办方在乐队完成表演后自动向乐队支付 2000 XRP。
在这一应用中,活动主办方是托管资金的发送方,表演乐队是接收方,而活动策划人则扮演预言机的角色。在智能合约中,预言机是一个中立的第三方代理,能够验证现实世界中的事件以决定是否履行智能合约。本例为便于理解使用了人为预言机,实际应用中更可能由软件程序承担这一角色。
使用 XRP 账本托管来实现这一智能合约是理想的安排,因为作为第三方预言机的活动策划人从未像传统托管中那样“持有”资金,因此不可能将资金据为己有。
以下是参与者使用托管作为智能合约所需完成的高级任务路线图。
前提条件准备
活动主办方(发送方)需具备:
- 一个持有足够 XRP 的 XRP 账本账户,用于支付托管资金及相关费用
- 接入安全的签名环境,包括可连接至任一
rippled服务器的网络,以便提交已签名的交易
表演乐队(接收方)需具备:
- 一个可接收托管支付 XRP 的 XRP 账本账户
- 可访问的
rippled服务器,用于查询 XRP 账本交易哈希详情并提交履行值以完成托管
活动策划人(预言机)需具备:
- 生成条件值与履行值的能力
- 在适当时机之前保密履行值的能力
- 在适当时机公开或至少向表演乐队传达履行值的方式
- 能够判断表演乐队是否履行了合同义务(即在活动中完成了表演)
定义智能合约条款
要创建作为智能合约的托管,参与者首先必须明确合约条款。在本场景中,各方需就以下细节达成一致:
是否禁止在特定时间前履行托管?
虽然这是一个可选项,但参与者一致认为他们的托管无需此设置。对于条件化托管,启用此选项并不能提供额外的安全性,因为托管能否完成仍完全取决于活动策划人(预言机)是否在到期前公布履行值。
托管是否应设置到期时间?
绝对需要。参与者同意托管应在活动次日中午 12 点后到期。这为表演乐队(接收方)留出了足够时间,在活动策划人验证其履行合同义务并公布密码学履行值后完成托管。到期后,被锁定的 XRP 将返回活动主办方的账户。
如果参与者不允许托管到期且活动策划人不释放条件,XRP 将永远锁定在托管中。
托管应锁定并可能支付多少 XRP?
参与者同意托管锁定并可能支付 2000 XRP,这是乐队的表演费用。
托管应从哪个 XRP 账本账户锁定 XRP 以潜在支付给乐队?
参与者同意托管应从活动主办方的 XRP 账本账户锁定并支付 XRP。
托管应潜在支付 XRP 至哪个 XRP 账本账户?
参与者同意托管应潜在支付 XRP 至表演乐队的 XRP 账本账户。
预言机:生成条件与履行值
由于参与者希望创建一个条件化托管的智能合约,他们需要一个条件值和一个履行值。在本场景中,生成这些值的是中立的的活动策划人(预言机)。
活动策划人生成条件值和履行值。策划人将条件值提供给活动主办方,由其创建托管。策划人也将条件值提供给表演乐队,以便他们确认这是正确的条件。
活动策划人必须对履行值保密。任何人均可使用条件值和履行值来完成托管。通常,接收方会主动完成托管,因为他们有获得付款的动机。
发送方:计算托管所需的时间值
由于参与者希望托管在活动次日中午 12 点后具备取消资格,活动主办方(发送方)必须计算一个 CancelAfter 值并包含在托管定义中。
发送方:创建托管
活动主办方(发送方)创建提供智能合约的托管。主办方必须创建托管,因为只有他们才能授权从其 XRP 账本账户锁定和潜在支付 XRP。
发送方与接收方:等待验证并确认托管创建
活动主办方(发送方)等待包含托管创建交易的账本得到验证,然后确认托管已成功创建。
随后,活动主办方向表演乐队(接收方)提供托管交易的 hash 值。乐队可使用此 hash 值在 XRP 账本上查询该交易,确保其按照约定的智能合约条款创建。在此步骤中,乐队应确认条件值与活动策划人(预言机)提供的一致。如果条件错误,活动策划人提供的履行值将无法让乐队完成托管并获得付款。
接收方:完成托管
表演乐队(接收方)到场并完成表演。
活动策划人(预言机)在现场确保一切顺利进行。策划人亲自确认乐队已履行合同义务,并公开或至少向乐队公布履行值。
表演乐队必须在中午 12 点前完成托管。否则,托管到期,乐队将无法获得付款。
如果活动策划人未公布履行值(乐队未到场),或策划人公布了履行值但无人完成托管;在次日中午 12 点后,任何人都可以取消托管。取消托管会将锁定的 XRP 返回活动主办方的账户。
接收方与发送方:等待验证并确认最终结果
表演乐队(接收方)等待包含托管完成交易的账本得到验证,然后确认托管已成功完成。
此时,乐队向活动主办方(发送方)提供交易的 hash 值。主办方可使用此值在 XRP 账本上查询托管交易,确保其已正确完成。
乐队可以检查其 XRP 账本账户余额,确认已增加 2000 XRP。除非托管被取消,否则主办方的余额在此步骤不会变化,因为托管创建时已从其账户扣除了锁定的 XRP。
常见问题
什么是智能合约?
智能合约是存储在区块链上的自执行协议,其条款直接写入代码中。它自动执行合约条款,无需中介参与,确保交易过程透明、防篡改且高效。
XRP 账本托管如何作为智能合约工作?
XRP 账本托管允许资金被锁定,直到满足特定条件(如时间到期或密码学条件达成)。这使其能够模拟智能合约的功能,在条件触发时自动释放资金。
预言机在智能合约中起什么作用?
预言机是连接区块链与外部世界的桥梁。它负责验证现实世界的事件(如服务是否已提供),并将这些信息以密码学证明的形式提供给智能合约,以触发其执行。
如果预言机不发布履行值怎么办?
如果预言机未能发布履行值,且托管设置了到期时间,资金将在到期后返回发送方账户。若未设置到期时间,资金可能被永久锁定,因此设置合理的到期时间至关重要。
使用托管作为智能合约安全吗?
是的,基于 XRP 账本的托管是安全的。资金由去中心化网络共识机制锁定,而非由任何单一第三方控制。只有满足预定条件时,资金才会被释放,确保了过程的公正性与安全性。
除了活动策划,还有哪些场景适用?
这种模式适用于任何需要条件化支付的场景,如电商中的货到付款、 freelance 工作中的里程碑付款、租赁押金退还等,凡需要可靠第三方验证后自动支付的场景均可应用。