1. 程式人生 > >區塊鏈面試箴言

區塊鏈面試箴言

區塊鏈面試箴言

從大局上面講區塊鏈可以分為1.0,2.0,3.0時代,而其中的代表可以粗糙的理解為比特幣,以太坊,超級賬本(這裡所說的比特幣,以太坊並不能單純的理解為數字貨幣,而是一個區塊鏈系統)

1、從橫向上面講述區塊鏈發展情況,可以連成一條線,即,最開始中本聰在2008年開始在前人的基礎上創立比特幣系統,比特幣系統是一個點對點的現金交易系統,裡面實現的最重要的功能及貨幣儲存和轉賬功能,而到了區塊鏈發展2.0時代,湧現除了以以太坊為代表的區塊鏈系統。這個時候最重要的標誌是加入了智慧合約。使得區塊鏈系統可以成為一個圖靈完備的系統,即可以在區塊鏈上面完成任何程式設計可以完成的事情。區塊鏈的應用場景發生了質的飛躍,進而跳轉到講述聯盟鏈。聯盟鏈是為了企業級服務(個人認為公有鏈,聯盟鏈,私有鏈,聯盟鏈的技術發展路線最具前景)。聯盟鏈作為一個許可鏈,其安全機制是一大亮點。從外層的授權認證,到技術架構裡面的通道機制以及鏈程式碼的docker執行環境,都對網路安全,使用者資訊隱私保護都做的比較好。
2、分別講述比特幣,以太坊,聯盟鏈一些重要的技術點
比特幣的資料結構,區塊頭包含什麼,區塊體包含什麼,比特幣的utxo模型(經常問到比特幣的utxo模型與以太坊賬戶模型的區別),merke樹

3、hash演算法,請講出集中hash演算法,請講出幾種非對稱加密演算法

  • sha1、sha128、sha256、sha512、md5
  • rsa、橢圓曲線(最近出名的黎曼猜想證明,只會影響rsa,不會影響橢圓曲線)

4、比特幣,以太坊,hyperledger的tps

  • 比特幣小於7
  • 以太坊幾百
  • hyperledger號稱50萬

5、比特幣,以太坊,hyperledger出塊時間

  • 比特幣10分鐘左右
  • 以太坊15-30秒左右
  • hyperledger很快(自行在hyperledger網路中設定)

6、圖靈完備的理解
簡單來說,能夠抽象成圖靈機的系統或程式語言就是圖靈完備的;一切可計算的問題圖靈機都能計算,因此滿足這樣要求的邏輯系統、裝置或者程式語言就叫圖靈完備的。

7、Pow共識機制
pow(prove of work),簡言之,通過你乾的某種工作來試圖證明什麼,這個共識機制衍生出來了比如說,挖礦,nonce,算力值等名詞,挖礦的意思就是通過計算機去計算一個小於某個給定值的hash值,計算這個hash值需要一定的算力支援。所以這樣去計算這個hash值的過程就被稱為挖礦,如果你的算力更強,那麼你就可以先於別人算出滿足要求的hash值,那麼也就代表了你擁有了記賬權,那麼你就會獲得相應的獎勵。這樣的獎勵,一部分你可以獲得交易產生的手續費,另外一部分來自於比特幣系統的獎勵。

8、對於分叉的理解
分叉的產生是因為在很多區塊鏈系統中的共識,是大多數的共識,如果你想要一件事情通過所有參與者的表決,那在公有鏈裡面,這其實是不切實際的。因為這樣的話,那麼共識所花費的時間是不可接受的。但是如果是部分共識的話,自然會出現,某部分人支援他們認為的共識,而另一部分人則又覺得自己的共識是對的。那麼這個時候分叉自然而然的就產生了,分叉既有技術上的分叉,也有認為的人為的分叉,比如說,兩個節點同時算出了某個hash值,並且同時廣播給其他的節點,這時候,就會產生一部分的節點認可A的結果,而另一部分節點認可B的結果,如果沒有一方妥協的話,那麼就會產生分叉。而認為的分叉,那麼就是一個組織和機構宣稱在某個知名的區塊鏈系統在某個區塊高度,將其進行分叉,比如說,以太坊一系統現在比較知名的eth和etc。以及比特幣那麼多的兒子孫子,位元金,位元銀,位元鑽石等等。

9、

一直在敲一直在更新,先發一小部分你們看看,歡迎提issure