区块链技术面试题

2023-07-12

最近找工作也经历过很多次面试,这几次面试比较大的感受到一个共同的现象,就是和面试官聊不到一块儿,因为一般面试官也只是问他自己会的、关心的技术,很多东西我平时不怎么关心,而我简历上写的东西,对方也不怎么问。举例来说,我简历上有提到 State channels 相关的工作内容,我想但凡面试官知道 State channels 是什么,看到这部分简历,一定会多少问一句 HTLC 的原理是什么这种问题。然而我经历过的面试中,只有一家公司的面试官问到了这个,他们也确实是专业做区块链项目的团队。然后人家没要我。

虽然我面试了很多次,也不通过面试很多次,但是大多数情况是问我一些 web2 风格很重的技术细节,很少有人在区块链方面把我问住,尤其是我简历上提到的工作相关的内容,所以并没有太多挫败的感觉,更多时候是在抱怨,为什么那些人都在关心那些,我觉得不重要的东西,我能把某种需要两三个月才能搞明白的区块链技术理解清楚,半个小时就能看懂的某个关于编程语言的问题还能学不会吗?

所以就想到,如果我是面试官,面对在应聘区块链开发职位的求职者,我可能会提问哪些问题,然后根据这些问题来判断候选人的水平。这些问题是基本上通用的,其中一些问题能深入和扩展:

  1. 比特币的共识是什么,UTXO 是怎么回事
  2. 以太坊的共识是什么,如何选定出块节点的
  3. 你还知道哪些链,这些链有什么技术特点
  4. PBFT 的流程是什么,国内有哪些联盟链
  5. PBFT 有哪些变体,哪些链在用
  6. Layer 2 有哪几种技术类型
  7. State channels 的原理是什么,Rollups 的原理是什么
  8. 账户钱包是怎么生成的,keystore 文件是什么
  9. 存储类区块链有哪些,其中的难点是什么
  10. Solidity 语言有哪些限制,和 Go 语言的不同
  11. 面向对象了解吗,写过 Java 吗
  12. 区块链里有随机数吗,怎么使用
  13. 合约交易是怎么经过虚拟机处理的,怎么增加对另一种语言的支持
  14. 日蚀攻击和女巫攻击分别是什么
  15. 了解过资产跨链吗,大概是什么流程

这些问题没有明确的先后顺序,也比较浅,抛砖引玉吧。突然想起来我面试还被问到过,区块链里面的区块是怎么连接起来的?答案是下一个区块会存上一个区块的块哈希,这种问题就属于没入门系列,还是问点门里面的问题吧。