热点新闻
Bitget面试
2024-10-24 21:54  浏览:1292  搜索引擎搜索“错改B2B”
温馨提示:信息一旦丢失不一定找得到,请务必收藏信息以备急用!本站所有信息均是注册会员发布如遇到侵权请联系文章中的联系方式或客服删除!
联系我时,请说明是在错改B2B看到的信息,谢谢。
展会发布 展会网站大全 报名观展合作 软文发布

1. 自定义合约如何识别交易

这个一致没有get到面试官的点,对这一样了解的还是太少了

2. 链上多签

区块链上的多重签名(Multisignature,简称多签)是一种安全机制,要求多个密钥持有者共同签署交易或操作,才能获得执行权限。这种机制通常用于提高资产管理的安全性,防止单点故障或密钥被盗引发的风险。

在链上多签的典型应用包括:

  • 资产管理:多人共同管理一个账户,所有人必须同意才可进行资金转移。
  • 去中心化组织(DAO)治理:多个成员共同签署和决策操作。
  • 合约管理:某个智能合约的关键操作需要多个授权人共同签署才能执行。

1. Solana 上的多签

在 Solana 上,多签账户通过 “Program Derived Addresses (PDA)” 或者 “多签智能合约” 来实现。Solana 的多签逻辑并没有像其他链(例如以太坊)那样直接由协议层提供,而是通过程序来实现,常见的方式包括:

  • 自定义多签合约:开发者可以创建一个智能合约来管理多签账户和权限。
  • 系统级的多签账户:利用 Solana 的 System Program 来实现原生的多签操作。

Solana 的多签账户

Solana 的多签账户是通过系统合约(System Program)创建的账户,支持多个签名人(签名者)。这些签名人必须满足一定的签名数量要求(称为“M-of-N”规则)才能批准交易。

基本原理

  • 一个多签账户包含 N 个授权签名者,其中每次操作需要至少 M 个签名来执行交易。
  • 使用者可以在创建账户时指定这些签名者及签名阈值 M

指令支持

  • CreateAccount:创建多签账户。
  • Assign:将账户权限分配给多签账户。
  • Approve:使用指定的签名者批准某项交易。

2. 以太坊上的多签

以太坊多签最常见的实现是通过智能合约,例如 Gnosis Safe 等,这些合约提供了高度灵活的多签方案。

Gnosis Safe 多签

Gnosis Safe 是以太坊和其他 EVM 兼容链上使用最广泛的多签钱包,允许用户在不信任其他参与者的情况下共同管理资产。

主要特性

  • M-of-N 签名:你可以设置 N 个签名者,并要求其中的 M 个签名者共同签署才能完成一笔交易。
  • 模块化扩展:Gnosis Safe 支持通过不同模块扩展功能,比如批量交易、时间锁、每日交易限额等。

部署和使用

  1. 创建钱包:创建时需要指定签名人和所需的签名数量。
  2. 发起交易:任何一个签名者都可以发起交易提案。
  3. 多签审批:其他签名者通过签署来批准交易,达到阈值后交易会被执行。

3. 多签的应用场景

  • 资产安全:企业或大型机构使用多签账户来确保只有多方共同批准才能动用资金,这可以防止某个人单独操作。
  • 去中心化治理:DAO 等去中心化组织通过多签钱包来管理共同资金,任何重大决策需要达成共识后才能执行。
  • 智能合约管理:在部署关键智能合约或进行升级时,使用多签来确保合约操作的安全性和透明性。

4. 多签的挑战与安全考虑

  1. 签名者管理:多签机制需要多个密钥持有者共同管理账户,因此签名者的选择和替换需要考虑安全和信任问题。
  2. 复杂性:多签账户的操作相较单一签名账户复杂,需要协调多方签名,有时可能会导致操作不便。
  3. 密钥丢失:如果多个签名者的密钥丢失,可能导致资产无法取出,因此需要制定应急措施,如支持恢复或更换签名者。
  4. Gas 费用问题:在以太坊等区块链上,每个签名者的操作都会产生 Gas 费用,因此多签交易的成本可能更高。

总结来说,链上多签通过将权限分散到多个签名者手中,极大提高了资金和关键操作的安全性。无论是 Solana 的多签账户,还是以太坊的 Gnosis Safe 等智能合约,都提供了不同的灵活性和安全性来满足多方管理资产和操作的需求。

3. sol 链的 nonce 逻辑

在 Solana 区块链上,nonce 是一种用于确保交易唯一性和顺序性的重要机制。与以太坊等其他区块链不同,Solana 的账户模型和交易管理方式有所不同,因此 nonce 的处理逻辑也有自己的特点。

Solana 的 nonce 主要用于确保交易在较长时间内不被重复执行,避免双重花费。具体来说,Solana 采用了一种称为 "持久 nonce" (durable nonce) 的机制,以应对网络拥堵或交易延迟时的重放攻击问题。

Solana Nonce 逻辑

1. 持久 Nonce 账户 (Durable Nonce Account)

Solana 的 nonce 是通过一个专门的 nonce 账户 来实现的。这是一个特殊的账户,存储了一个不会随着时间变化的 nonce 值,并且在交易中使用该账户可以使交易保持有效,即使它不是在区块链的下一次 slot 中立即执行。

2. Nonce 生成与管理

  • nonce 账户会生成一个由网络时间戳或 slot 号派生的 nonce 值,这个值在账户被创建或更新时产生。
  • 用户可以通过交易来更新 nonce 账户,使其生成一个新的 nonce
  • 当你构建交易时,交易中会引用 nonce 账户的当前 nonce 值,这个值会确保交易在提交之前的有效性,直到 nonce 被消耗或更新。

3. 使用 Nonce 的交易构建

当使用 nonce 时,交易需要引用这个特殊的 nonce 账户,而不是使用正常的交易顺序(即 slot-based)。这使得交易可以在指定的 nonce 被使用或更新之前保持有效,而不会因为延迟而无效。

示例流程:

  1. 创建一个 Nonce 账户:用户首先需要创建一个 nonce 账户,并为其提供少量的 SOL 作为存储费用。
  2. 获取当前 Nonce:通过对 nonce 账户发起 Nonce 指令获取当前的 nonce
  3. 构建交易:在交易中引用 nonce 账户及其值,使交易不依赖于当前的 slot。
  4. 提交交易:提交时,交易使用 nonce 账户中的值,确保即使网络有延迟,交易仍然可以有效。

4. Nonce 消耗和更新

当一笔交易使用了 nonce,该 nonce 就会被消耗,此时必须通过发起一个 Nonce 更新交易来获取新的 nonce 值。如果 nonce 没有被消耗,也可以通过手动更新来生成一个新的 nonce,以确保下一笔交易的唯一性。

Solana Nonce 相关指令

Solana 使用以下指令与 nonce 账户交互:

  1. NonceInitialize:用于创建并初始化一个 nonce 账户。这个指令设置了账户的所有者并分配了所需的存储。
  2. AdvanceNonceAccount:消耗当前 nonce 并生成一个新的 nonce。当一笔交易使用了 nonce 后,必须调用这个指令更新账户以获取新的 nonce
  3. WithdrawNonceAccount:从 nonce 账户中提取资金,并将账户清理。
  4. AuthorizeNonceAccount:更改 nonce 账户的授权者,以允许其他账户管理 nonce 账户。

小结:

Solana 的 nonce 机制通过 nonce 账户来实现交易的可控性和唯一性。相比以太坊的交易 nonce,Solana 的 nonce 允许在较长时间内保持交易有效,特别适合网络拥堵或交易延迟的场景,同时也为开发者提供了更多的灵活性用于管理交易顺序和重放问题。

4. 不换地址升级合约

  1. 代理合约(Proxy Contract)
  2. Eternal Storage 模式
  3. 多合约架构(Module-based Approach)

5. 大文本块如何加密

使用 AES对称加密,非对称加密的效率低

发布人:094d****    IP:124.223.189***     举报/删稿
展会推荐
让朕来说2句
评论
收藏
点赞
转发