目錄區塊鏈
① 區塊鏈項目
前前後後寫了不少的區塊鏈項目分析,從最初的比特幣、以太坊和EOS到各個應用型項目如交易所、幣乎、U贊等內容型項目,包括項目方的徵文稿。對項目分析在腦海里已經形成了一個定式,看過我的項目分析文章都知道這個框架,按照「項目簡介、發起背景、項目創新、項目團隊、發展動態、代幣及市場、項目風險、競品分析、建議與小結」分析項目白皮書,或者是把白皮書里內容和框架對應起來,有的就填充進去,沒有的就不寫出來;接下來是補充資料作為佐證,梳理思路再按自己的理解去寫項目分析,這樣才算得上自己的項目分析。針對項目分析,我概括起來三個步驟:第一步,收集資料(看白皮書、搜索引擎、公號文章等);第二步,套框架模板;第三步,刪掉該刪的內容,形成自己的理解。
② 如何搭建自己的區塊鏈
第一部分:從 0 到 1 建立自己的區塊鏈 目錄:
1.1 從模仿開始,初識區塊鏈
1.2 區塊鏈的基礎:共識機制剖析
1.3 共識機制的設計原理和設計方法
1.4 如何快速克隆一條區塊鏈
1.5 如何把比特幣變成自己的私鏈–分叉比特幣
1.6 如何把以太坊變成自己的私鏈–分叉以太坊
1.7 如何把 Ripple 變成自己的私鏈–分叉 ripple
1.8 如何把 stellar 變成自己的私鏈–分叉 stellar 1.9 如何搭建一個礦池,並挖出自己的創始區塊
1.10 如何開發自己的區塊鏈錢包(Windows 和 MAC) 1.11 如何開發自己的區塊鏈錢包(Android 和 IOS) 1.12 如何開發一個類似於 blockchain.info 的在線錢包 1.13 如何增加自己的區塊鏈網路的安全性和魯棒性 1.14 如何利用 coind 來處理充值提現業務
1.15 如何利用資金池搭建一個混幣服務
1.16 如何設計一種新的挖礦演算法
一般情況下都是這個流程,但一般人也是非常難以完成的。區塊鏈成熟的項目有以太坊、DECENT、比特幣等等。
③ git和區塊鏈的區別
一、相似性
分布式
Git 確保每個代碼倉庫在本地保留完整的項目庫,而不僅僅是自己在工作的這個分支和自己的提交歷史。同時也保留了最近這次 pull 下來後的所有快照和索引信息。
區塊鏈上,每個節點在本地保存完整資料庫,而不僅僅是自己的交易信息。
可追溯性
Git commit 鏈上,每個 commit 對象都包含父級對象(上一次 commit 的對象,除了第一個 commit ),對之前的記錄全部可追溯。
區塊鏈上,每個區塊都包含前一個區塊的索引(除了創世區塊),可以追溯之前所有有效交易。
不可篡改
Git 的 commit 鏈中,每個對象本身在存儲前都計算校驗和,然後以校驗和來引用。一旦修改,校驗和就會不對, 這意味著不可能在 Git 不知情時更改任何文件內容或目錄內容。
Git 用以計算校驗和的機制叫做 SHA-1 散列( hash,哈希)。 這是一個由 40 個十六進制字元( 0-9 和 a-f )組成字元串,基於 Git 中文件的內容或目錄結構計算出來。SHA-1 哈希看起來是這樣:區塊鏈中,每個區塊包含上個區塊 ID,本區塊 ID 兩個 SHA-256 散列,這兩個散列都是基於區塊內容計算出來。一旦修改內容,則散列將變化,和其他節點的鏈不一致,最終不能加入到最長鏈中,因此無法真正篡改內容。
二、差異性
集體共識和中央節點意志: 1 - 區塊鏈是基於集體共識( POW/POS)來 merge,形成最長鏈,最長鏈即為主鏈。
2 - 而 Git 體系裡,通過倉庫託管平台來進行多節點合作時,是平台項目的管理者掌握了 merge 的權力,體現的是中央節點的意志。
密碼學
1 - 比特幣區塊鏈中,密碼學主要用到了以下方式
在比特幣區塊鏈的整個體系中,大量使用了公開的加密演算法,如 Merkle Tree 哈希數演算法,橢圓曲線演算法、哈希演算法、對稱加密演算法及一些編碼演算法。各種演算法在比特幣區塊鏈中的作用如下:
a)哈希演算法
比特幣系統中使用的兩個哈希函數分別是:1.SHA-256,主要用於完成 PoW (工作量證明)計算; 2.RIPEMD160,主要用於生成比特幣地址。
b)Merkle 哈希樹
基於哈希值的二叉樹或多叉樹,在計算機領域,Merkle 樹大多用來進行完整性驗證處理,在分布式環境下,其進行完整性驗證能大量減少數據傳輸和計算的復雜程度。
c)橢圓曲線演算法
比特幣中使用基於 secp256k1 橢圓曲線數學的公鑰密碼學演算法進行簽名與驗證簽名,一方面可以保證用戶的賬戶不被冒名頂替,另一方面保證用戶不能否認其所簽名的交易。用私鑰對交易信息簽名,礦工用用戶的公鑰驗證簽名,驗證通過,則交易信息記賬,完成交易。
d)對稱加密演算法
比特幣官方客戶端使用 AES (對稱分組密碼演算法)加密錢包文件,用戶設置密碼後,採用用戶設置餓密碼通過 AES 對錢包私鑰進行加密,確保客戶端私鑰的安全。
e)Base58 編碼
Base58 是比特幣使用的一種獨特的編碼方式,主要用於產生比特幣的錢包地址,其類似於古典密碼學里的置換演算法機制,目的是為里增加可讀性,把二進制的哈希值變成了我們看到的地址「 」。
2 - Git:主要用了 SSH 秘鑰來進行遠程登錄驗證,用了 SHA-1 來進行代碼內容校驗和。
SSH 是 Secure Shell 的縮寫,由 IETF 的網路工作小組( Network Working Group )所制定,是一種專為遠程登錄會話和其他網路服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。
SSH 傳輸的過程如下: (1)遠程主機收到用戶的登錄請求,把自己的公鑰發給用戶。 (2)用戶使用這個公鑰,將登錄密碼加密後,發送回來。 (3)遠程主機用自己的私鑰,解密登錄密碼,如果密碼正確,允許用戶登錄。