Tezos 区块链:从审计角度进行深入分析 PlatoBlockchain 数据智能。垂直搜索。人工智能。

Tezos 区块链:从审计角度深入分析 

阅读时间: 5 分钟

Tezos 区块链项目开局良好,通过首次代币发行筹集了 232 亿美元,在 20 大 ICO 中获得最大资金的第二名。

在以太坊或比特币等最受欢迎的区块链网络中,Tezos 是如何获得所有炒作的? 为了找出答案,让我们仔细看看 Tezos 吸引了大批支持者的独特属性。 

虽然在其时代出现的区块链致力于工作量证明(PoW)共识,但 Tezos 区块链在使用 验证的桩号基于(PoS)的共识,具有自我修正机制和链上治理。 

因此,Tezos 成为构建生态友好型 DeFi 应用程序的完美替代方案,这些应用程序需要的能源和成本大大降低。 那么,Tezos 基础设施如何等同于更轻松地实施升级的灵活性呢?

这让我们了解了架构设置,这为 Tezos 增加了价值。

Tezos 上的智能合约

智能合约是可编程的可执行合约,用于处理两方之间的代币交换,而无需任何一方信任另一方。 

谈到 Tezos,它是使用 Michelson 编程语言独特编写的。 此外,Tezos 采用形式验证来确保代码的正确性,使其更加安全可靠。 

列举 Tezos 区块链的细节

Tezos 的亮点 在这里给出以更好地理解其配置和独特性。 

自我修正

Tezos 用于验证在共识算法上运行的块,它内置了一个可自我修改的机制。 对协议的任何修改,例如切换到不同的共识、修改奖励制度、增加交易等,都是基于链上投票系统来实现的。 

Tezos 经济协议的任何小到大的变化都是由链上投票程序触发的。 这种自我修正的协议在避免社区分叉或分裂方面具有优势。

链上治理

Tezos 与比特币和以太坊相反,后者遵循导致区块链分裂的非形式化治理系统(比特币现金和以太坊经典)。 

Tezos 的链上治理促进了“Bakers”,即矿工,就协议升级提出建议并投票。 Tezos 中的链上方法旨在自动实现底层协议代码的升级,而无需通过集中式控制器。 

权益证明共识:PoS 

Tezos 中的 PoS 共识允许任何人参与。 为了成为验证区块并促成共识建立的 Tezos 面包师,面包师应至少持有 XTZ(原生)代币。 

它还采用了一种方法,如果用户没有足够的时间进行烘焙,他们可以将 XTZ 代币委托给拥有大量 Tez 资金的烘焙师。 反过来,面包师获得的奖励将重新分配给委托人。 

Tezos 智能合约中的漏洞利用

其中一份审计报告揭示了 Tezos 智能合约的消息传递架构中的错误。 我们现在将在这里解码它们。 

消息传递架构

应该在函数执行期间调用的外部合约反而在 Tezos 合约中要执行的调用列表中排队。 

在 Tezos 合约中找到的顺序是, 

  • 执行 a() # 下一个调用:[b, d]
  • 执行 b() # 下一个调用:[d, c]
  • 执行 d() # 下一个调用:[c]
  • 执行 c() # 下一个调用:[]

其中您可以看到代码 d() 在代码 c() 之前执行。

这种类型的执行可能存在两种类型的漏洞,

回调授权绕过 

Tezos 的架构是为了防止合约使用回调函数读取外部调用的返回值而构建的。 但是在这里,由于没有限制,使用回调可能会导致访问控制问题。 

调用注入

它为攻击者提供了通过在函数和生成的外部调用之间注入调用来破坏合约的范围。 

在执行函数时,生成的调用将在要执行的调用列表中排队。 攻击者可以通过将他们的调用放入队列并在已执行函数的末尾和生成的调用之间执行代码来获得优势。 

当攻击者调用执行时,合约余额或合约内存进入无效状态,攻击者成功实现调用注入。 

使用 Michelson 编写 Tezos 智能合约时要注意的事项

迈克尔逊编程语言是编写安全合约以防止数据泄露和资金盗窃的首选选择。 尽管编程语言如此强大,但合同中可能会出现一系列错误。 

让我们了解常见的错误以及排除错误的方法。

退款至合同清单

这是一组人的资金一次退还的情况。 它发生在接受恶意用户发起此类问题的任意合同时。 

这个错误的可能问题是合约通过一系列回调吞下了所有的gas,调用了'FAIL'指令来停止所有计算,重入错误等等。 

有什么解决方案?

默认账户不执行代码; 因此,可以通过从人们的密钥创建默认帐户来解决上述问题。 此外,它可以被编程为让用户单独提取他们的资金。 

传输前未设置状态

重入是区块链中的一个常见障碍。 当合约调用另一个外部合约进行转账时,如果每次转账后状态都没有更新,任意一方在进行进一步转账时会占上风。

它会导致从合约中多次提取资金。 

有什么解决方案?

调用外部合约时要小心,并确保它们的行为不能被修改。 要禁止重新进入,请在存储中标记,以便用户除非有充分理由否则无法重新进入。 

存储或传输私人数据

可以明确查看发布的数据。 这意味着当交易被广播时,每个人都可以看到私人信息。 这使系统中的恶意节点有机会通过延迟或修改未签名的交易来操纵它们。 

有什么解决方案?

签署包含敏感信息的交易。 使用柜台强制执行交易订单可以解决问题。 

通过 Tezos 智能合约审计确保对项目的专业保护 

采用自我修正结构构建的 Tezos 提供了更好的可扩展性和可靠性,但对于基于区块链的应用程序而言,安全性始终是一个问题。 最小的问题可能导致最大的资金损失。 

那是在哪里 羽毛笔审计 向前迈出了一步,以保护资产免受不良行为者的控制。 我们不给他们利用合同的机会,因为我们通过彻底的认识和解决这些问题 Tezos 智能合约审计

免费咨询我们的专家,了解我们的审计服务。 

2 观点

时间戳记:

更多来自 散列