技术研报 | 深度探究 Tact 语言和 TON 生态,揭示其特性以及安全最佳实践
ScaleBit
2023-11-09 17:07
订阅此专栏
收藏此文章




本篇技术研报由 ScaleBit 研究团队的 Jaychois 撰写


#1 简介 / Introduction





Tact 是专为 TON 区块链量身定制的开创性编程语言,注重效率和用户友好性。其设计旨在促进学习和使用,尤其是针对智能合约。Tact 以静态类型结构为特点,具有简单直观的语法和强大的类型系统。


本文的目的是针对 Tact 进行详尽介绍,并对这种智能合约语言进行风险分析。在深入探索 Tact 之前,让我们先对 TON 进行一些了解。


1.1 什么是 TON?


开放网络(TON)是一个由多个组件构成的去中心化和开放的互联网平台。其中包括 TON 区块链、TON DNS、TON 存储和 TON 站点。TON 区块链是连接 TON 底层基础设施的核心协议,形成了更大的 TON 生态系统。


TON 聚焦于实现广泛的跨链互操作性,同时在高可扩展性的安全框架中运作。TON 的设计旨在处理每秒数百万笔交易(TPS),并最终触达数亿用户的目标。


TON 区块链被设计为分布式超级计算机或“超服务器(superserver)”,旨在提供各种产品和服务,以促进在新时代下互联网去中心化愿景的发展。


1.2 Tact 简介


Tact 是专为 TON 区块链设计的一种新型编程语言,注重效率和简单性。它的设计目标是易于学习和使用,并且适用于智能合约。


在 Tact 的开发中,一个关键点是使其对于广泛的开发者群体而言能够快速上手。因此,它的设计类似于流行的编程语言,如 JavaScript、Python 和 Solidity。这显著简化了对语言的学习和理解,特别是对于初学者而言。


以下是 Tact 语言的一些特性:


- 可扩展性和模块化

Tact 的一个关键优势是其支持MOP(Message-Oriented Programming)原则,使其非常适合创建模块化的和可扩展的智能合约。开发者可以创建能够通过消息传递轻松相互交互的合约,从而简化不同合约之间的集成和交互。


- 异步性

Tact 支持异步消息,可以显著提高智能合约的性能。合约可以并行运行,无需等待其他合约完成。这加速了运行并增强了系统的响应能力。


- 改善交互

MOP 的应用还简化了智能合约与外部系统(如应用程序或其他区块链)之间的交互。通过标准化的消息,开发者可以轻松地将他们的合约集成到各种服务和平台中。


- 更高层次的抽象编程

在 Tact 中使用 MOP 允许开发者专注于合约的业务逻辑,而不是实现的底层细节。这简化了开发过程,使得更快地创建功能齐全、高效的合约成为可能。


- 增强安全

借助 MOP 原则,开发者可以创建更可靠和安全的智能合约。合约之间的交互变得更受控制和互相隔离,降低了安全风险,使系统更加能够抵御攻击。


1.3 Tact 与 FunC


TON 智能合约既可以使用 FunC 编写,也可以使用 Tact 编写,但 FunC 是一种面向深入了解 TON 架构的开发者的底层语言。FunC 让开发者摆脱了直接编写原始 Fift 代码的困扰,同时也提供了同等的控制水平。然而,由于 FunC 的精确性,编写复杂的多合约系统变得更加困难。


Tact 则使开发者能够更进一步,可以使用强类型接口编写完整的智能合约套件,并在静态验证的执行成本下运行。通过使用 Tact,能够专注于开发,而更少地担心区块链的特性。


#2 Tact 安全性的最佳实践

/ Best Practices for Tact Security





在使用 Tact 进行工作时,创建安全的智能合约是首要任务。以下是一些针对 Tact 安全性的最佳实践:


2.1 访问控制


为了接收所需类型的消息,您需要声明一个接收函数,例如,receive (increment)。这表示声明了一个接收函数,当发送一个值为 increment 的文本给合约时将被调用。


函数体可以修改合约的状态并向其他合约发送消息。接收函数是公开的,可以通过向合约发送指定类型的消息来调用它;因此,当合约中有一些重要逻辑或使用接收函数进行敏感操作时,我们应该在函数中做好访问控制,以避免函数被恶意调用,从而导致严重的损害。


Example

示例


以下代码是一个代币铸造函数,缺乏对调用者身份的访问控制,这意味着任何人都可以滥用铸造函数,导致任意数量的新代币被铸造。


Suggestion

建议


参考之前的例子,可以引入一个 owner 变量。这个所有者的身份将在合约初始化期间建立。随后,可以在铸造函数中添加一个验证步骤,确保只有指定的所有者有权铸造新代币。


2.2 未验证的消息输入


在智能合约中缺乏对外部输入的适当验证或过滤,可能会导致恶意用户或攻击者输入恶意数据,从而造成不安全的行为或漏洞。


Example

示例


以下代码是一个缺乏对输入参数验证的提现函数,这意味着可以伪造提现数量,导致合约资金耗尽。


Suggestion

建议


参考之前的例子,我们可以在提现函数中添加验证步骤,以确保提现者的账户余额满足提现数量的要求,并在提现后更新账户余额。


2.3 检查 Gas 消耗


外部消息是那些没有发送者的消息,可以由世界上的任何人发送。外部消息是与链下系统集成或进行合约常规维护的可行性工具。在处理内部消息时,发送者通常支付 gas 费用。在处理外部消息时,则由合约支付 gas 费用。


这意味着在外部消息中需要谨慎处理 gas 的使用。需经常检查合约的 gas 使用情况,以验证一切是否按照预期运行,并避免可能导致合约余额耗尽的漏洞。


2.4 交易的部分执行


在发生异常或 gas 耗尽的情况下,后续未完成的交易将不会执行,而已执行的交易也不会回滚,它们将被部分执行。


例如,如果您从客户的余额中减去 1 ton,然后发送了一个无效的消息,这可能导致客户的余额被扣除,但他将无法收到。


因此,需要正确的状态管理。为了帮助理解和管理交易,重要的是绘制消息流程图,以最小化后续问题的风险。这将帮助您理解和管理交易,并避免未来可能出现的问题。


2.5 其他安全考虑


为确保智能合约的安全性,以下是一些其他需要注意的安全考虑:


- 彻底测试:对智能合约进行严格的测试,以识别和修复问题,考虑到各种测试案例和场景。充分利用测试网络和仿真器来验证合约行为。


- 代码审查:进行全面的代码审查,以识别和解决潜在的安全问题。与同行和安全专家合作可以显著提高代码质量。


- 智能合约审计:考虑进行第三方的安全审计,以发现漏洞并评估您的合约的整体安全性。安全审计对于需要最高级别可靠性的应用程序来说,是至关重要的一步。


#3 结论 / Conclusion





在本文中,我们介绍了 TON 的新颖之处,以及 Tact 的一些语言特性,如可扩展性和模块化,并提供了开发安全的 Tact 的最佳实践。


总的来说,Tact 为在 TON 生态系统内开发智能合约提供了一个高效且用户友好的环境,使其成为在 TON 区块链上创建高效且安全智能合约的理想选择。在合约开发过程中遵循最佳实践、进行安全审计和测试也尤为重要,以最小化潜在的漏洞和风险。


ScaleBit 作为 Web3 领域领先的区块链安全团队,团队分布于硅谷、新加坡、香港、台湾等地。我们已为全球 Web3 领域 200+ 个机构和项目提供了区块链安全解决方案,累计审计代码 180,000+ 行,累计保护用户资产超过 80 亿 + 美元。Make Security Accessible for All!若您有任何安全审计需要,欢迎随时与我们取得联系,我们将为您定制细致、全面、专业的安全解决方案,护航您和 Web3 领域安全无虞!


参考资料 Reference

[1] : 

https://tact-lang.org/

[2] : 

https://github.com/tact-lang/awesome-tact#-smart-contracts-examples

[3] : 

https://blog.ton.org/why-tact-is-ton-s-next-big-breakthrough

关于 ScaleBit



ScaleBit 是一个为 Web3 Mass Adoption 提供安全解决方案的区块链安全团队。凭借在区块链跨链和零知识证明等扩展技术方面的专业能力,我们主要为 ZKP、Layer 2 和跨链应用提供细致和尖端的安全审计。


ScaleBit 团队由在学术界和企业界都有丰富经验的安全专家组成,致力于为可扩展的区块链生态系统的大规模应用提供安全保障。


https://www.scalebit.xyz/

https://twitter.com/scalebit_



END


点击卡片,关注 ScaleBit ~

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

ScaleBit
数据请求中
查看更多

推荐专栏

查看更多
数据请求中
在 App 打开
Mingme
发现

玻璃钢生产厂家玻璃钢雕塑背景长春市玻璃钢景观雕塑可信赖玻璃钢桃子雕塑现货透光的玻璃钢雕塑有没有九江人物玻璃钢雕塑云浮玻璃钢卡通雕塑定制厂家河北人物玻璃钢雕塑市场太原商场中庭美陈布置长春玻璃钢雕塑生产厂家大型玻璃钢人物雕塑生产厂家新款玻璃钢雕塑厂家怀化长沙玻璃钢雕塑厂家报价安阳不锈钢玻璃钢景观雕塑藤县玻璃钢雕塑厂家池州水果玻璃钢雕塑重庆玻璃钢雕塑蜗牛红河玻璃钢雕塑定做江苏玻璃钢雕塑厂家供应家用玻璃钢花盆研发公司商场灯光长廊美陈揭阳党建文化玻璃钢人物雕塑金昌城市玻璃钢雕塑价格商场环境美陈销售好的玻璃钢雕塑江永玻璃钢花盆花器南通玻璃钢雕塑设计费用合肥个性化玻璃钢雕塑商场中庭美陈吊挂装饰南平玻璃钢仿真水果雕塑厂家广州步行街玻璃钢雕塑供应商香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化