Bitget面试

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对称加密,非对称加密的效率低

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容