区块链面试:区块链专家所必备的技术

背景

区块链面试是一个挺新的话题,主要得益于区块链行业 2018 年成为风口行业,不仅曝光度激增而且人才市场火爆,而我在年后也是接触了许多来参加面试的候选人,大部分是没有区块链从业经验的,为此我当时写了一篇《寻找适合恋爱的区块链工程师》,从面试官的角度来讲了如何寻找一个合格的候选人。

从经历来看,这个行业非常之新兴,并且人才也相当匮乏。作为我针对面试写的第二篇文章,我决定从一个从技术的角度来详尽阐述要成为一个区块链专家所必备的技术。

前言

说到技术,我所指的主要还是研发。由于我负责的是技术岗,因此我对于技术上要求会比较严格(严格并不等于高),简单来说就是,基础知识需要十分扎实。许多过来参加区块链工程师面试的同学,大部分人给我的印象是,看过一点介绍区块链知识的书籍,问一点浅显的知识是能够答得上来,但是稍微具体一点的,就会变得含糊不清了。在我看来,区块链所要求的知识并非什么特殊的或者新兴的知识,除了密码学领域的知识需要专门了解之外,其他知识和技能几乎都是一些比较通用的网络开发核心知识,如果是从事网络服务端相关开发的,可能会对这部分知识比较熟悉。

由于区块链整个行业涉及到的范围非常广泛,下到各种基础设施,上到各种上层应用,它们对技能的要求范围是不一样的。根据我的经验,大致把区块链开发分为两个大的部分:技术层和应用层,以便候选人根据自己以往的专业技能背景选择自己合适的领域。

一、核心层

核心层是区块链最下面的一层,这一层是底层技术与基础设施的开发。我们可以把这一层比作操作系统的内核,而应用层则是在操作系统之上构建各种软件。比如我们最常见的比特币网络,它的核心技术就来源于它的共识机制(POW),当然,对于大部分链来说,共识的原理都是其最核心的部件。要构建这样的共识机制,又需要更加底层的技术支持,比如:网络通信,数据存储,加密安全等等。所以,这一层对于技术的内涵要求比较高,这里的技术是一项综合的能力,我把它总结为三个部分:理论基础、专业经验以及技术能力。

1)理论基础

理论基础主要是指分布式系统理论,如果是专业出身(比如计算机专业-分布式系统方向),或者有过从事过分布式数据库,网络等相关的经验,那么可能会对这一部分相对了解或熟悉,熟悉并深入理解分布式网络的特点和各种算法是能够在区块链领域大有作为的前提之一。

这里,我简单列举需要掌握的一些分布式系统核心概念:

  • 全序/偏序,因果顺序
  • 物理时钟/逻辑时钟
  • 两阶段算法(2PC)/三阶段算法(3PC)
  • Safety && Liveness
  • FLP 不可能定理
  • Paxos/Multi-paxos
  • Raft/Multi-Raft
  • CAP 理论
  • 副本一致性,强/弱、最终一致性
  • 简单哈希/一致性哈希
  • Base/ACID,分布式 ID 等等
  • BFT(Byzantine Fault Tolerance)

关于这部分内容详细介绍,可以参见我的系列文章之《区块链核心技术:分布式理论》。

2)专业经验

专业经验则是指对目前最主流的区块链项目的掌握程度,比如 Bitcoin,Ethereum 等,了解账户模型,智能合约等等,而且,不仅是它们的运行原理,而且能在它们的基础上持续改进、开拓以及创新,比如对侧链,轻节点、分布式存储,扩容方案等有一定的理解等等。

为此,我也做了一个列表,主要展示对区块链的专业经验的一些要求:

  • 目前区块链主流共识算法之间的差异(比如 PBFT 与 POW 之间区别)
  • 联盟链、公链及私链之间的区别,部署方式
  • 针对区块链的攻击方式:51%算力攻击,Sybil 攻击,Eclipse 攻击,DDos 攻击
  • P2P 网络通信模式(Gossip,Totem,DHT 等)
  • Merkle Tree 数据结构
  • Bitcoin UTXO 模型,以太坊转账流程(GAS 计算,Nonce 值等等)
  • 以太坊智能合约的编写,Solidity 相关知识
  • 密码学(公钥/私钥,ECDSA,RSA,哈希算法),签名,多重签名,盲签名等等
  • 以太坊协议 ERC20 ERC721 ERC223 ERC875
  • 比特币(P2SH 地址,交易脚本等)

这部分内容可以详见我的系列文章之《区块链核心技术:专业经验》。

3)技术准备

最后,技术能力则是一项通用能力,是网络编程,内存控制,操作系统,编解码,密码学,异步编程等等开发功底的一个综合考核。它是一个日积月累的能力,扎实的技术背景可以让我们快速适应区块链底层的开发。

为此,我列举了一些比较核心的研发能力和技术准备:

  • 数据结构(二叉树,trie 树,数组,结构体/类 等等)
  • 算法(回溯/递归,字符串编码,排序,搜索等等)
  • 锁(原子锁,互斥锁/自旋锁),死锁检测,内存泄露检测
  • 多线程编程(共享内存,线程/进程/协程),用户态/内核态
  • 同步、异步,阻塞/非阻塞,多路复用 I/O
  • 异步编程/响应式编程范式,事件驱动
  • 网络编程:TCP/IP/UDP 协议,time_wait 状态,socket/select/epoll, C10k 问题等
  • 服务器编程:熟悉 Linux 编程,系统资源(如:cpu/io, disk usage 等)
  • HTTP 协议,RPC 通信,负债均衡等等

这部分内容可以想见我的系列文章之《区块链核心技术:技术准备》。

2、应用层

应用层是区块链最重要的一层,也是区块链行业能蓬勃和持续发展的力量来源。应用层主要涉及的是区块链产品,我们常见的有比如:数字钱包(imToken),分布式交易所(Cosmos,bitshare),浏览器插件(MetaMask),区块链游戏(CryptoKitties, FOMO3D),保险产品等等。

开发这些应用级别的产品,通常是与底层的区块链系统进行交互,因此,并不需要我们对区块链底层技术达到非常专业的掌握。但是需要我们对区块链的核心概念有了解,以便我们能与链的开发者能在同一语言上进行沟通而不至于误解。

当然,应用层的开发对技术的要求也是共同的,它虽然没有核心层对技术能力要求的那么高,但是其更加侧重对创新和落地

我会通过分析几个典型区块链应用,来展示思路而不是技术本身在应用层所展现的强大能量和生命力。

这部分内容可以详见我的系列文章值《区块链核心技术:编写应用》

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

推荐阅读更多精彩内容