For the complete documentation index, see llms.txt. This page is also available as Markdown.

后置条件

构建者资源

  • 如需深入了解后置条件的用法, 这里.

  • 关于 SIP-005 中概述的后置条件技术规范, 这里.

  • 关于 SIP-040 中概述的 Originator 模式和 MAY SEND NFT 条件, 这里.

  • 关于 SIP-045 中概述的质押和 PoX 后置条件, 这里.

全局概览

  • 后置条件是约束 你附加到交易上的 用于精确定义哪些资产(STX、SIP-010 代币、NFT)可以转移以及转移多少。从 SIP-045 开始,它们还定义允许发生哪些质押和 PoX 操作。

  • 如果底层智能合约的执行会违反你声明的限制,整个交易就会中止。

  • 即使智能合约包含意外逻辑,它也无法转移超出你的后置条件所允许范围的资产。

  • 后置条件通常由客户端开发者在客户端构建。它们是已签名交易的一部分。合约无法修改它们。

  • 钱包会解析已签名交易,并在广播前向用户显示所声明的后置条件。


什么是后置条件?

后置条件是针对链上交易的断言,必须满足;否则,交易会在执行过程中中止。后置条件起到安全网的作用,让你可以指定交易中可以发生哪些状态变化。

有时,客户端开发者并不是编写底层智能合约的同一个人,可能并不十分熟悉其内部逻辑、嵌套的外部合约调用或边缘情况。 这套逻辑有助于限制因漏洞或恶意行为而对用户及其资产造成的损害程度。

后置条件是一组在用户交易执行前必须满足的条件。后置条件背后的主要目标是限制因漏洞、无论是否出于故意,对用户资产造成的损害。

后置条件是内置于 Stacks 协议本身的一项额外安全功能,有助于保护最终用户。它们并不是 Clarity 智能合约的功能,而是通过客户端实现,旨在作为防范恶意合约的额外保险。

当用户发起交易时,它们会作为交易的一部分被发送,这意味着我们需要在前端实现后置条件。每当你将资产(同质或非同质)从一个地址转移到另一个地址时,都应该利用后置条件。

后置条件最初只涵盖资产转移:STX、同质代币和 NFT。从 Stacks epoch 4.0 开始, SIP-045 它将其扩展到质押。质押后置条件约束主体在质押时锁定(或修改)的 STX 数量,而 PoX 后置条件约束主体是否执行其他 PoX 操作,例如解除质押。这意味着用户不仅能防范意外转账,还能防范合约意外更改其质押头寸。


后置条件起到安全网的作用,让你可以指定交易执行期间可以且应该发生哪些状态变化。

最后更新于

这有帮助吗?