區塊鏈工程師須要掌握哪些技能?

從2017年開始,區塊鏈逐步成爲互聯網的風口浪尖。曝光度的激增帶來了人才市場的火爆。 算法

區塊鏈所要求的知識並不是什麼特殊的或者新興的知識,除了密碼學領域的知識須要專門瞭解以外,其餘知識和技能幾乎都是一些比較通用的網絡開發核心知識。數據庫

因爲區塊鏈行業涉及到的範圍很是普遍,從各類基礎設施,到各類上層應用,它們對技能的要求範圍是不同的。根據以往經驗,區塊鏈開發大體可分爲兩個大的部分:技術層和應用層,根據本身以往的專業技能背景選擇本身合適的領域。編程

1、技術層

技術層是區塊鏈最下面的一層,這一層主要工做是底層技術與基礎設施的開發。咱們能夠把技術層比做操做系統的內核,應用層則是在操做系統之上構建各類軟件。好比咱們最多見的比特幣網絡,它的核心技術就來源於它的共識機制(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、ERC72一、ERC22三、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)、保險產品等等。

開發這些應用級別的產品,一般是與底層的區塊鏈系統進行交互,所以並不須要對區塊鏈底層技術達到很是專業的掌握。但須要咱們對區塊鏈的核心概念有了解,以便能與鏈的開發者在同一語言上進行溝通而不至於誤解。

固然,應用層的開發對技術的要求也是共同的。它雖然沒有技術層對技術能力要求的那麼高,可是其更加側重對創新和落地。

做爲區塊鏈行業中的一員,咱們都能深深感覺到區塊鏈技術對互聯網世界的重大意義,它不只帶來的是技術上的創新,並且對將來的經濟關係、行業分工都有着巨大的價值潛力。固然如今,區塊鏈技術還處在改變世界的早期階段,沒有一個大規模的應用是其一個硬傷。可是咱們也看到,各類區塊鏈創新項目在這波浪潮中如雨後春筍般冒出來,許多頂尖的人才都在致力於解決當前區塊鏈項目的去中心化、安全性和可擴展性這個所謂的「不可能三角」,甚至已經有項目處在領先的位置。因此,咱們不只須要找準本身的目標和方向,更須要夯實技能,爭取成爲區塊鏈領域中有份量的一員。

區塊鏈漫漫長路,路上一同前行。

Annchain是由衆安科技、衆安-復旦區塊鏈與信息安全聯合實驗室研發, 支持智能合約的高性能通用區塊鏈協議。做爲工信部指導的中國區塊鏈技術和產業發展論壇兩大開源項目之一,Annchain立足於中國,致力於助力中國搶佔區塊鏈全球話語權。

Annchain專一於解決擴展性、去中心化、安全三者平衡問題,作通用的分佈式應用計算平臺。目前已在數十家生態夥伴的商業場景中落地,場景涵蓋農業溯源、珠寶溯源、資產通證化、公益、數據開放計算、廣告分發平臺和供應鏈金融等,開發者可基於Annchain高效構建適合自身的區塊鏈應用。

Annchain當前包含兩個子項目Annchain.Genesis和Annchain.OG。

Annchain.Genesis做爲基於鏈表式結構的第一代區塊鏈基礎協議,其主要特徵是模塊化、高可靠、易用,支持多種智能合約引擎,開發者可根據具體業務需求選用共識與合約引擎,達到企業級使用需求。

Annchain.OG做爲基於DAG帳本結構的第二代區塊鏈基礎協議,其擁有DAG高效,強擴展特色的同時,又經過基於貢獻的多維共識解決其安全可靠問題,同時Annchain.OG支持多種智能合約引擎及計算引擎,具備了更強計算和存儲能力。

衆安科技

衆安信息技術服務有限公司(簡稱「衆安科技」)成立於2016年11月2日,是由螞蟻金服、騰訊、中國平安發起設立的衆安保險旗下的全資科技子公司,專一於區塊鏈、人工智能、密碼學、物聯網等前沿技術研究。衆安科技匯聚了行業內的頂尖科研人才,其中區塊鏈團隊規模近200人,多數來自於各頂尖區塊鏈團隊。

衆安-復旦區塊鏈與信息安全聯合實驗室

衆安-復旦區塊鏈與信息安全聯合實驗室是國內首個高校與企業聯合組建的區塊鏈與信息安全實驗室,專一於區塊鏈核心技術研究,探索應用落地。

上海市區塊鏈工程技術研究中心

上海市區塊鏈工程技術研究中心由科委主導,依託復旦大學,聯合衆安在線財產保險股份有限公司,上海衆人信息技術有限公司共同設立。專一分佈式帳本前沿共性技術與成果轉化研究,推進工程落地。

相關文章
相關標籤/搜索