智能合约工程师岗位要求
职责描述:
1、负责公司项目中区块链部分的系统架构设计开发,实施落地;
2、负责研究行业最新发展趋势,结合公司战略挖掘新技术及场景:
3、负责研究区块链技术,运行机制和底层实现,及核心代码的开发,包括区块链协议、运行机制,加密技术、共识算法、智能合约等:
任职要求:
1、本科及以上学历,计算机、软件工程、信息技术、数学等相关专业:
2、两年以上区块链开发经验,至少掌握一种区块链框架机制(例如:FISCO BCOS、Ethereum或HyperLedger Fabric);
3、熟悉但不限于BFT、Tendermint、Raft. DPos、PoW等其中一个共识协议的算法细节:
4、熟练使用 Java、Go、C/C++ 中至少一种编程语言,有扎实的基础知识和丰富的开发经验,熟悉solidity等智能合约语言:
5、熟悉主流的区块链项目,对区块链的核心技术:如分布式存储、共识机制、安全机制、点对点网络、智能合约等有深入了解:
6、了解FISCO BCOS、ethereum、hyperledger或者其他开源区块链项目,熟悉跨链的实现和原理优先。
共识协议算法
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链合约的调用。
蚂蚁链开源的AntChainBridge跨链桥方案:https://github.com/AntChainOpenLabs/AntChainBridge/wiki/AntChain-Bridge跨链:介绍
里边有很多思路,可以加深认识,比如跨链形成互通的链网、机构和个人可以提供自身的权威和信用能力成为信用锚点(提供主体品牌变现能力的一个途径,迈向信任价值社会?)等等。