💙 Gate广场 #Gate品牌蓝创作挑战# 💙
用Gate品牌蓝,描绘你的无限可能!
📅 活动时间
2025年8月11日 — 8月20日
🎯 活动玩法
1. 在 Gate广场 发布原创内容(图片 / 视频 / 手绘 / 数字创作等),需包含 Gate品牌蓝 或 Gate Logo 元素。
2. 帖子标题或正文必须包含标签: #Gate品牌蓝创作挑战# 。
3. 内容中需附上一句对Gate的祝福或寄语(例如:“祝Gate交易所越办越好,蓝色永恒!”)。
4. 内容需为原创且符合社区规范,禁止抄袭或搬运。
🎁 奖励设置
一等奖(1名):Gate × Redbull 联名赛车拼装套装
二等奖(3名):Gate品牌卫衣
三等奖(5名):Gate品牌足球
备注:若无法邮寄,将统一替换为合约体验券:一等奖 $200、二等奖 $100、三等奖 $50。
🏆 评选规则
官方将综合以下维度评分:
创意表现(40%):主题契合度、创意独特性
内容质量(30%):画面精美度、叙述完整性
社区互动度(30%):点赞、评论及转发等数据
Rust智能合约权限控制:函数可见性与特权访问管理
Rust 智能合约中的权限控制
本文将从两个方面探讨 Rust 智能合约中的权限控制问题:
合约函数可见性
在 Rust 智能合约中,函数可见性的控制至关重要。以 Bancor Network 交易所 2020 年发生的安全事件为例,由于错误地将关键转账函数设置为 public,导致用户资产面临风险。
在 NEAR 的 Rust 智能合约中,函数可见性主要有以下几种:
另外,将函数定义在未被 #[near_bindgen] 修饰的 impl 块中,也可将其设为内部函数。
对于回调函数,需要设为 public 但同时要限制只能由合约自身调用。可以使用 #[private] 宏来实现这一点。
需要注意的是,Rust 中默认所有内容都是 private 的,除了 pub Trait 和 pub Enum 中的项目。
特权函数的访问控制
除了函数可见性,还需要从语义层面建立完整的访问控制机制。类似 Solidity 中的 onlyOwner 修饰符,我们可以在 Rust 中定义类似的 trait:
rust pub trait Ownable { fn assert_owner(&self) { assert_eq!(env::predecessor_account_id(), self.get_owner()); } fn get_owner(&self) -> AccountId; fn set_owner(&mut self, owner: AccountId); }
使用这样的 trait 可以实现对特权函数的访问控制,确保只有合约拥有者才能调用这些函数。
基于这一原理,我们可以通过自定义更复杂的 trait 来实现多用户白名单或多个白名单分组的精细访问控制。
除此之外,还可以实现调用时机控制、多重签名机制等更多访问控制方法,以满足不同场景下的安全需求。