NAC_Blockchain/nac-constitution/clauses/acc20c_clauses.cnnl

80 lines
4.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# NAC 公链宪法增补条款 - ACC-20C 兼容层合规规则
# 版本: 1.0
# 路径: protocol/nac-constitution/clauses/acc20c_clauses.cnnl
# 关联文档: ACC-20C 兼容层协议, Issue #78 (ACC-20C 部署)
program NacAcc20cClauses
name: "NAC公链 ACC-20C 兼容层宪法条款"
version: "1.0.0"
description: "4条 ACC-20C 专属宪法条款A53-A56替代 PermissionProxy将合规检查提升至协议层。"
# ============================================================
# 第八章ACC-20C 兼容层条款A53-A56
# ============================================================
# --- 战术级条款 (Tactical Tier) ---
clause A53_Acc20cWrapCompliance
name: "ACC-20C 资产包装合规强制"
tier: Tactical
clause_index: 201
description: "调用 acc20c_wrapper.wrap 函数时CEE 必须强制验证:
1. 调用者msg.sender必须通过 GIDS 的 KYC/AML 验证。
2. 底层 ACC-20 资产未被列入任何司法辖区的黑名单。
3. 调用者必须质押足额的 XTZH 作为合规保证金。"
predicate: tx.target_interface == "IAcc20C" and tx.target_function == "wrap" implies
(gids.is_kyc_verified(tx.origin) == true and
asset.is_blacklisted(tx.params.acc20_contract, tx.params.acc20_token_id) == false and
xtzh.has_sufficient_collateral(tx.origin, asset.valuation(tx.params.acc20_contract, tx.params.acc20_token_id)) == true)
obligation: cee.verify_gids_kyc per_tx and cee.verify_asset_blacklist per_tx and cee.verify_xtzh_collateral per_tx
violation_action: reject_transaction
test: A53_test_wrap_compliance
references: ["ACC-20C 协议文档 §4.1", "XTZH 价值稳定机制 §3.2"]
clause A54_Acc20cUnwrapCompliance
name: "ACC-20C 资产解包合规强制"
tier: Tactical
clause_index: 202
description: "调用 acc20c_wrapper.unwrap 函数时CEE 必须强制验证:
1. 资产的解包冷却期unlock_timestamp已过。
2. 资产未处于任何司法冻结状态。"
predicate: tx.target_interface == "IAcc20C" and tx.target_function == "unwrap" implies
(block.timestamp >= asset.wrapped(tx.params.wrapper_token_id).unlock_timestamp and
asset.is_judicially_frozen(tx.params.wrapper_token_id) == false)
obligation: cee.verify_asset_unlock_period per_tx
violation_action: reject_transaction
test: A54_test_unwrap_compliance
references: ["ACC-20C 协议文档 §4.2"]
clause A55_Acc20cTransferCompliance
name: "ACC-20C 资产转移辖区合规强制"
tier: Tactical
clause_index: 203
description: "调用 acc20c_wrapper.transfer 函数时CEE 必须强制验证:
1. 交易的发送方from和接收方to都必须满足底层 RWA 资产所绑定的司法辖区规则。
2. CEE 需调用多辖区规则引擎进行交叉验证。"
predicate: tx.target_interface == "IAcc20C" and tx.target_function == "transfer" implies
jurisdiction.can_transfer(
asset.underlying_rwa(tx.params.wrapper_token_id),
gids.get_jurisdiction(tx.origin),
gids.get_jurisdiction(tx.params.to)
) == true
obligation: cee.verify_cross_jurisdiction_transfer_rules per_tx
violation_action: reject_transaction
test: A55_test_transfer_compliance
references: ["ACC-20C 协议文档 §2.1", "多辖区节点共享白皮书 §4.3"]
clause A56_Acc20cAdminFreeze
name: "ACC-20C 资产司法冻结合规"
tier: Tactical
clause_index: 204
description: "只有获得宪法法院授权的地址ConstitutionalCourt才能调用 acc20c_wrapper.freeze_asset 函数。
此操作必须附带有效的链上司法裁决文书哈希。"
predicate: tx.target_interface == "IAcc20C" and tx.target_function == "freeze_asset" implies
(tx.origin == constitution.get_address("ConstitutionalCourt") and
tx.has_valid_judicial_warrant() == true)
obligation: cee.verify_judicial_warrant per_tx
violation_action: reject_transaction
test: A56_test_admin_freeze_compliance
references: ["NAC 公链宪法 §C12.3"]