區塊鏈共識:就是各節點共同認同下一個區塊,形成區塊鏈,比特幣是采用POW算力來實現的,需要100%共識,沒有獲得共識的新區塊會成為孤立區塊,無法寫入主鏈。而若持續獲得一定共識那麼就會形成分叉鏈。
算力共識:就是算力投票。一般在每個區塊的Coinbase字段寫入特定支持的字段,或者通過版本號來進行投票。比特幣的Classic版本就近似是規定了達到75%的算力共識時,啟動2MB硬分叉,而在BIP9規則下,需要達到95%算力共識才會啟動軟分叉。
社區共識:就像是總統大選的選民民意,通過民意調查只能得到近似的值且會變動,同樣社區共識也無法得到準確的值,只能由算力投票、幣量投票和節點投票,以及一些社區投票來大致的得到近似。社區共識的主體不僅僅是粉忠,用戶,炒幣者等自然人,還包括公司組織等,每個個體的觀點需要根據其在幣圈的地位影響進行加權。
協議共識:比特幣交易格式、區塊格式和設定規則等。交易格式是每筆交易的格式要求,區塊格式是眾交易打包形成區塊傳成鏈的要求,設定規則是幣總量產量減半設定,難度調整設定,手續費的硬性設定等等。當無法形成100%的協議共識時,往往就會形成分叉。
投票社區共識
分叉有區別為普通的升級,普通的升級在升級前後是沒有影響協議共識的,也一般不需要社區共識或算力共識的參與。而分叉根據對協議的修改情況分為軟分叉和硬分叉。
我覺得不能說哪個定義正確還是錯誤,具體的定義可以根據已經較大社區共識的兩者的區別來自己總結,不需要權威來指定。
硬分叉:沒有向前兼容性,之前的版本將不可再用,需要強制升級。
軟分叉:有較好的兼容性,之前版本至少部分功能可用,可不升級。
硬分叉:在區塊鏈層面會有分叉的兩條鏈,一條原舊鏈,一條分叉新鏈。
軟分叉:在區塊鏈層面沒有分叉的鏈,只是組成鏈的區塊,有新區塊和舊區塊。
硬分叉:需要在某個時間點全部同意分叉升級,不同意的將會進入原舊鏈。
軟分叉:相當長的時間里,可允許不進行升級,繼續使用原版本生成舊區塊,與新區塊並存。
向上兼容,在較低檔計算機上編寫的程序,可以在同一系列的較高檔計算機上運行,或者在某一平台的較低版本環境中編寫的程序可以在較高版本的環境中運行。
向下兼容,又稱向後兼容(backward compatibility)、回溯兼容,在計算機中指在一個程序和/或庫更新到較新版本後,用舊版本程序創建的文檔或系統仍能被正常操作或使用(包括寫入),或在舊版本庫的基礎上開發的程序仍能正常編譯運行的情況。