智能合约工程师岗位要求
共识协议算法
BFT、Tendermint、Raft、DPos、PoW等其中一个共识协议的算法细节。
总的说来可以分为非拜占庭故障模型和拜占庭故障模型。
- 非拜占庭故障模型:节点无主观伪造消息的行为,但会因为自身或网络通信故障而在整个网络里无法响应 。Raft, Paxos算法属于解决这类故障的算法,选主、来出来重要操作(比如写)、其他节点同步主的状态后主节点进行写的提交。主节点发生故障,则靠算法会选出新的主节点。共识体现在整个网络选出了公认的主节点。
- 拜占庭故障模型:节点有恶意伪造消息的可能。接收客户端请求的leader节点,如果向其他节点广播的消息出现不一致的情况,那么其他节点通过互相交换情报,可以识别出leader节点非诚实。不会接收消息,而且通过view change机制会重新选出leader节点。需要3n+1节点,其中n为最多不诚实节点数量,只要2n+1节点诚实则确保共识。
PBFT协议只确保能够识别主节点发送不一致消息的情况,但对主节点发布一致但伪造消息的情况没有办法,这种情况需要配合客户端签名,使得每个节点都可以独立验证消息的真伪来解决。
智能合约语言
Solidity, Move, Rust
Solidity vs Move vs Rust:智能合约编程语言的演变
Solidity用途广泛,EVM兼容的链都可以用。
Rust用在Solana上开发,得益于近来Solana链的快速发展,其发展也很快。
Move是Aptos、Sui这些L1链在用的开发语言,主要特点是解释型语言、消除了合约编写过程中由语言特性引起的漏洞。
项目开发语言
DApp后端开发、区块链节点定制开发、接口开发等,需要熟练使用 Java、Go、C/C++ 、Nodejs等编程技术栈,有扎实的基础知识和丰富的开发经验。
区块链的核心技术
如分布式存储、共识机制、安全机制、点对点网络、智能合约等有深入了解。
熟悉FISCO BCOS、Ethereum、Hyperledger等常见开源区块链项目
Ethereum公链之王
Fisco BCOS是国内金融协会搞的许可链,面向金融和供应链领域。
Hyperledger是IBM的面向企业内部的私有区块链服务。
跨链的实现和原理
1、基于哈希锁合约,无需第三方。
2、基于第三方中继(第三方可以是中继、分布式信任桥、跨链网关、中继链等等),然后AB链上都部署跨链合约,中继负责监听A链上合约的event,然后计算和组织业务逻辑,发起到B链合约的调用。