區塊鏈共識機制一致
㈠ 什麼是區塊鏈共識
所謂「共識機制」,是通過特殊節點的投票,在很短的時間內完成對交易的驗證和確認;對一筆交易,如果利益不相乾的若干個節點能夠達成共識,我們就可以認為全網對此也能夠達成共識。再通俗一點來講,如果中國一名微博大V、美國一名虛擬幣玩家、一名非洲留學生和一名歐洲旅行者互不相識,但他們都一致認為你是個好人,那麼基本上就可以斷定你這人還不壞。
區塊鏈作為一種按時間順序存儲數據的數據結構,可支持不同的共識機制。共識機制是區塊鏈技術的重要組件。區塊鏈共識機制的目標是使所有的誠實節點保存一致的區塊鏈視圖,同時滿足兩個性質:
1)一致性。所有誠實節點保存的區塊鏈的前綴部分完全相同。
2)有效性。由某誠實節點發布的信息終將被其他所有誠實節點記錄在自己的區塊鏈中。
㈡ 區塊鏈技術中的共識機制是什麼
1.共識機制是什麼
在一個去中心化的結構體系中,由於各個參與方的地位是平等的,當出現分歧的時候,如何達成共識就成了問題。
所以,一個設計精妙、實際操作起來簡單的共識機制是一個分布式的體系能夠順利自運轉下去的關鍵所在。
簡而言之,共識機制就是在一個時間段內對事物的前後順序達成共識的一種演算法,是區塊鏈節點就區塊信息達成全網一致共識的機制。
㈢ 鍖哄潡閾劇洰鍓嶇敤鍒板摢浜涘叡璇嗘満鍒訛紵瀹冧滑鍚勮嚜鐨勪紭緙虹偣鍜岄傜敤鑼冨洿鏄浠涔
1. 宸ヤ綔閲忚瘉鏄庯紙PoW錛夛細榪欐槸姣旂壒甯侀噰鐢ㄧ殑鍏辮瘑鏈哄埗錛岄氳繃澶嶆潅鐨勮$畻鏉ョ『璁や氦鏄撳苟娣誨姞鍒板尯鍧楅摼涓銆侾oW鐨勪紭鐐瑰湪浜庡叾鍘諱腑蹇冨寲鐗規э紝紜淇濅簡緗戠粶鐨勫畨鍏ㄦс傜劧鑰岋紝瀹冪殑緙虹偣鍖呮嫭鑳芥簮娑堣楀法澶э紝鎸栫熆闅懼害闅忕潃鏃墮棿鎺ㄧЩ涓嶆柇澧炲姞錛屼互鍙婅揪鎴愬叡璇嗘墍闇鏃墮棿杈冮暱錛屼笉閫傚悎鍟嗕笟搴旂敤鍦烘櫙銆
2. 鏉冪泭璇佹槑錛圥oS錛夛細PoS鏃ㄥ湪瑙e喅PoW鐨勬寲鐭塊棶棰橈紝鏍規嵁鑺傜偣鎸佹湁鐨勪唬甯佹暟閲忓拰鏃墮棿鏉ラ檷浣庢寲鐭塊毦搴︼紝鍔犲揩鍏辮瘑榪囩▼銆傚敖綆PoS鍦ㄤ竴瀹氱▼搴︿笂緙╃煭浜嗗叡璇嗚揪鎴愭椂闂達紝浣嗗畠浠嶇劧渚濊禆浜庝唬甯侊紝騫朵笖鏈璐ㄤ笂娌℃湁瑙e喅鍟嗕笟搴旂敤鐨勭棝鐐廣
3. 鑲′喚鎺堟潈璇佹槑錛圖PoS錛夛細DPoS綾諱技浜庤懀浜嬩細鎶曠エ錛屾寔甯佽呴夊嚭浠h〃鑺傜偣榪涜岄獙璇佸拰璁拌處銆傝繖澶уぇ鍑忓皯浜嗛獙璇佸拰璁拌處鑺傜偣鐨勬暟閲忥紝瀹炵幇浜嗙掔駭鐨勫叡璇嗛獙璇併備笉榪囷紝DPoS鐨勫叡璇嗘満鍒朵粛鐒朵緷璧栦簬浠e竵錛屽苟涓斿彲鑳戒笉閫傚悎涓嶉渶瑕佷唬甯佸瓨鍦ㄧ殑鍟嗕笟搴旂敤銆
4. 楠岃瘉奼狅紙Pool錛夛細楠岃瘉奼犵粨鍚堜簡浼犵粺鐨勫垎甯冨紡涓鑷存ф妧鏈鍜屾暟鎹楠岃瘉鏈哄埗錛屾槸鐩鍓嶈屼笟閾懼箍娉涗嬌鐢ㄧ殑鍏辮瘑鏈哄埗銆傚畠涓嶉渶瑕佷唬甯佸嵆鍙宸ヤ綔錛屽熀浜庢垚鐔熺殑鍒嗗竷寮忎竴鑷存х畻娉曪紝瀹炵幇浜嗙掔駭鍏辮瘑楠岃瘉銆備笉榪囷紝榪欑嶆満鍒剁殑鍘諱腑蹇冨寲紼嬪害涓嶅傛瘮鐗瑰竵錛屾洿閫傚悎澶氭柟鍙備笌鐨勫氫腑蹇冨晢涓氭ā寮忋
鍦ㄤ嬌鐢ㄥ叡璇嗘満鍒朵繚璇佹暟鎹涓鑷存ф椂錛屽悇縐嶆満鍒墮兘鏈夊叾浼樺娍銆備緥濡傦紝Ripple鐨勫叡璇嗘満鍒剁『淇濅簡鏁版嵁姝g『鎬т紭鍏堬紝浣嗗湪鏋佺鎯呭喌涓嬪彲鑳藉艱嚧鑺傜偣闀挎椂闂存棤娉曚笌鍏朵粬鑺傜偣鍙栧緱鍏辮瘑銆傚洜姝わ紝瀵逛簬涓嶅悓鐨勫簲鐢ㄥ満鏅錛岄夋嫨鍚堥傜殑鍏辮瘑鏈哄埗鑷沖叧閲嶈併
㈣ 浠ュお鍧婃妧鏈緋誨垪-浠ュお鍧婂叡璇嗘満鍒
涓銆佷互澶鍧婃妧鏈緋誨垪-浠ュお鍧婂叡璇嗘満鍒
鍖哄潡閾劇殑鐗圭偣涔嬩竴鏄鍘諱腑蹇冨寲銆備篃灝辨槸鑺傜偣浼氬垎甯冨湪鍚勪釜鍦版柟緇勬垚鍒嗗竷寮忕郴緇熴傚悇涓鑺傜偣闇瑕佸1涓闂棰樿揪鎴愪竴鑷達紝鐞嗘兂鎯呭喌涓嬶紝鍙闇瑕佸悓姝ョ姸鎬佸嵆鍙銆
濡備笂鍥炬墍紺 B鑺傜偣灝哸=1=> a=2鐨勭姸鎬佸悓姝ョ粰? ACDE鍥涗釜鑺傜偣錛岃繖鏃剁郴緇熶腑鐘舵佸彉涓篴=2, 浣嗗傛灉鍏朵腑鏈夋伓鎰忚妭鐐 AE 鏀跺埌閫氱煡鍚庢妸a=1=>a=3淇鏀逛負閿欒鐨勮妭鐐癸紝榪欎釜鏃跺欏ぇ瀹剁殑鐘舵佸氨涓嶄竴鑷翠簡錛屾ゆ椂闇瑕佸叡璇嗘満鍒朵嬌緋葷粺涓寰楀埌1涓鍞涓姝g『鐨勭姸鎬併
濡備笂闈㈣村埌鍒嗗竷寮忕郴緇熷瓨鍦ㄦ伓鎰忚妭鐐瑰艱嚧緋葷粺涓鐘舵佷笉涓鑷寸殑鎯呭喌鏈1涓姣旇緝钁楀悕鐨勮櫄鎷熼棶棰-鎷滃崰搴灝嗗啗闂棰樸
鎷滃崰搴灝嗗啗闂棰樻槸鎸囷紝N涓灝嗗啗鍘繪敾鎵撲竴搴у煄鍫★紝濡傛灉澶т簬涓瀹氭暟閲忕殑灝嗗啗鍚屾椂榪涙敾鍒欏彲浠ユ敾鎵撴垚鍔燂紝濡傛灉灝忎簬鍒欒繘鏀誨け璐ャ傚皢鍐涗腑鍙鑳藉瓨鍦ㄥ彌寰掋
榪欎釜鏃跺欐湁2縐嶆儏鍐
1.濡傛灉2涓鍙涘緬閮藉湪BCDE涓錛岄偅涔堝叡璇嗙畻娉曢渶瑕佽╁叾浣2涓灝嗗啗鍚浠嶢鐨勬g『鍐崇瓥榪涙敾鍩庡牎銆
2.濡傛灉A鏄1涓鍙涘緬錛屽叡璇嗙畻娉曢渶瑕佽〣CDE涓鍓╀綑鐨3涓蹇犺瘹灝嗗啗淇濇寔涓鑷淬
榪欎釜闂棰樻湁寰堝氱嶈В娉曪紝澶у舵湁鍏磋叮鍙浠ヨ嚜琛屾煡闃(鎺ㄨ崘瀛︿範PBFT)錛屾垜浠閲嶇偣鏉ョ湅鐪嬩互澶鍧婁腑鐩鍓嶆e湪浣跨敤鐨凬akamoto?鍏辮瘑鍜屽皢瑕佷嬌鐢ㄧ殑?Casper Friendly Finality Gadget鍏辮瘑鏄濡備綍瑙e喅鎷滃崰搴灝嗗啗闂棰樼殑銆
璇村埌Nakamoto鍏辮瘑鍜孋asper Friendly Finality Gadget鍏辮瘑鍙鑳藉ぇ瀹朵笉澶鐔熸倝錛屼絾浠栦滑鐨勯儴鍒嗙粍鎴愬簲璇ラ兘姣旇緝鐔熸倝-POW(宸ヤ綔閲忚瘉鏄)鍜孭OS(鏉冪泭璇佹槑)銆
POW鎴朠OS縐頒箣涓篠ybil鎶楁ф満鍒訛紝涓轟粈涔堥渶瑕丼ybil鎶楁ф満鍒跺憿錛屽垰鍒氭垜浠璇村埌鎷滃崰搴灝嗗啗闂棰橈紝搴旇ュ緢瀹規槗鐪嬪嚭鎮舵剰鑺傜偣瓚婂氾紝杈炬垚姝g『鍏辮瘑鐨勯毦搴︿篃灝辮秺澶э紝Sybil鏀誨嚮灝辨槸鎸1涓鏀誨嚮鑰呭彲浠ヤ吉瑁呭嚭澶ч噺鑺傜偣鏉ヨ繘琛屾敾鍑伙紝Sybil鎶楁ф槸鎸囨姷寰¤繖縐嶆敾鍑昏兘鍔涖
POW閫氳繃璁╃熆宸ユ垨楠岃瘉鑰呮姇鍏ョ畻鍔涳紝POS閫氳繃璁╅獙璇佽呰川鎶間互澶鍧婏紝濡傛灉鏀誨嚮鑰呰佷吉瑁呭氫釜鑺傜偣鏀誨嚮鍒欏繀灝嗘姇鍏ュぇ閲忕殑綆楀姏鎴栬祫浜э紝浼氬艱嚧鏀誨嚮鎴愭湰楂樹簬鏀剁泭銆傚湪浠ュお鍧婁腑淇濋殰鐨勫畨鍏ㄦф槸闄ら潪鏀誨嚮鑰呮嬁鍒版暣涓緋葷粺51%綆楀姏鎴栬祫浜у惁鍒欎笉鍙鑳借繘鏀繪垚鍔熴
鍦ㄨВ鍐沖畬Sybil鏀誨嚮鍚庯紝閫氳繃閫夊彇緋葷粺涓鐨勬渶闀塊摼浣滀負澶у惰揪鎴愬叡璇嗙殑閾俱
寰堝氫漢騫蟲椂涓轟簡綆鍖栧皢pow鍜宲os璁や負鏄鍏辮瘑鏈哄埗錛岃繖涓嶅熷噯紜錛屼絾涔熻存槑浜嗗叾閲嶈佷綔鐢錛屾垜浠鎺ヤ笅鏉ュ垎鏋恜ow鍜宲os銆
閫氳繃hash涓嶅彲閫嗙殑鐗規э紝瑕佹眰鍚勪釜鐭垮伐涓嶅仠鍦拌$畻鍑烘煇涓鍊肩殑hash絎﹀悎鏌愪竴鐗瑰緛錛屾瘮濡傚墠澶氬皯浣嶆槸000000錛岀敱浜庤繖涓榪囩▼鍙鑳戒緷璧栦笉鍋滅殑璇曢敊璁$畻hash,鎵浠ユ槸宸ヤ綔閲忚瘉鏄庛傝$畻瀹屾垚鍚庡叾浠栬妭鐐歸獙璇佺殑鍊肩﹀悎hash鐗瑰緛闈炲父瀹規槗楠岃瘉銆傞獙璇侀氳繃鍒欐垚涓烘垚涓哄悎娉曞尯鍧(涓嶄竴瀹氭槸鍏辮瘑鍖哄潡錛岄渶瑕佸湪鏈闀塊摼涓)銆
浠ュお鍧婁腑鐨勬寲鐭跨畻娉曠敤鍒2涓鏁版嵁闆嗭紝1涓灝忔暟鎹闆哻ache,1涓澶ф暟鎹闆咲AG銆傝繖2涓鏁版嵁闅忕潃鍖哄潡閾句腑鍖哄潡澧炲氭參鎱㈠彉澶э紝鍒濆嬪ぇ灝廲ache涓16M DAG涓1G銆
鎴戜滑鍏堟潵鐪嬭繖2涓鏁版嵁闆嗙殑鐢熸垚榪囩▼
cache鐢熸垚瑙勫垯涓烘湁1涓縐嶅瓙闅忔満鏁皊eed錛宑ache涓絎1涓鍏冪礌瀵箂eed鍙杊ash錛屽悗闈㈡暟緇勪腑姣忎釜鍏冪礌閮芥槸鍓1涓鍏冪礌鍙杊ash鑾峰緱銆
DAG鐢熸垚瑙勫垯涓?鎵懼埌cache涓瀵瑰簲鐨勫厓緔犲悗?鏍規嵁鍏冪礌涓鐨勫艱$畻鍑轟笅嬈¤佸繪壘鐨勪笅鏍囷紝寰鐜256嬈″悗鑾峰緱cache涓鏈緇堥渶瑕佺殑鍏冪礌鍊艱繘琛宧ash璁$畻寰楀埌DAG涓鍏冪礌鐨勫箋
鐒跺悗鎴戜滑鍐嶇湅鐪嬬熆宸ュ備綍榪涜屾寲鐭誇互鍙婅交鑺傜偣濡備綍楠岃瘉
鐭垮伐鎸栫熆鐨勮繃紼嬩負錛岄夋嫨Nonce鍊兼槧灝勫埌DAG涓鐨1涓猧tem錛岄氳繃item涓鐨勫艱$畻鍑轟笅嬈¤佹壘鐨勪笅鏍囷紝寰鐜64嬈★紝寰楀埌鏈緇坕tem錛屽皢item涓鐨勫糷ash璁$畻寰楀埌緇撴灉錛岀粨鏋滃拰target姣旇緝錛岀﹀悎鏉′歡
鍒欒瘉鏄庢寲鍒板尯鍧楋紝濡傛灉涓嶇﹀悎鍒欐洿鎹nonce緇х畫鎸栫熆銆傜熆宸ュ湪鎸栫熆榪囩▼涓闇瑕佸皢1G鐨凞AG璇誨彇鍒板唴瀛樹腑銆
杞昏妭鐐歸獙璇佽繃紼嬪拰鐭垮伐鎸栫熆榪囩▼鍩烘湰涓鑷達紝
灝嗗潡澶撮噷闈㈢殑Nonce鍊兼槧灝勫埌DAG涓鐨1涓猧tem錛岀劧鍚庨氳繃cache鏁扮粍璁$畻鍑鴻item鐨勫礆紝閫氳繃item涓鐨勫艱$畻鍑轟笅嬈¤佹壘鐨勪笅鏍囷紝寰鐜64嬈★紝寰楀埌鏈緇坕tem錛屽皢item涓鐨勫糷ash璁$畻寰楀埌緇撴灉錛岀粨鏋滃拰target姣旇緝錛岀﹀悎鏉′歡鍒欓獙璇侀氳繃銆傝交鑺傜偣鍦ㄩ獙璇佽繃紼嬩腑涓嶉渶瑕佸皢1G鐨凞AG璇誨彇鍒板唴瀛樹腑銆傛瘡嬈$敤鍒癉AG鐨剗tem鍊奸兘浣跨敤cache榪涜岃$畻銆
浠ュお鍧婁負浠涔堥渶瑕佽繖2涓涓嶅悓澶у皬鐨勬暟緇勮繘琛岃緟鍔﹉ash榪愮畻鍛錛岀洿鎺ヨ繘琛宧ash榪愮畻浼氭湁浠涔堥棶棰橈紵
濡傛灉鍙鏄榪涜岄噸澶嶈$畻浼氬艱嚧鎸栫熆璁懼囦笓涓氬寲錛屽噺灝戝幓涓蹇冨寲紼嬪害銆傚洜涓烘垜浠鏃ュ父浣跨敤鐨勮$畻鏈哄唴瀛樺拰璁$畻鍔涙槸閮介渶瑕佺殑錛屽傛灉鎸栫熆鍙闇瑕乭ash榪愮畻錛屾寲鐭胯懼囧垯浼氳捐″湴鎷ユ湁瓚呴珮綆楀姏錛屼絾瀵瑰唴瀛樺彲浠ョ緝灝忓埌寰堝皬鐢氳嚦娌℃湁銆傛墍浠ユ垜浠閫夌敤1G鐨勫ぇ鍐呭瓨澧炲姞瀵瑰唴瀛樿塊棶鐨勯戠巼錛屽炲姞鎸栫熆璁懼囧瑰唴瀛樿塊棶闇奼傦紝浠庤屾洿鎺ヨ繎浜庢垜浠鏃ュ父浣跨敤鐨勮$畻鏈恆
鎴戜滑鐪嬬湅鍦∟akamoto鍏辮瘑鏄濡備綍瑙e喅鎷滃崰搴灝嗗啗闂棰樼殑銆傞栧厛鐪嬬湅鍖哄潡閾句腑鐨勬嫓鍗犲涵灝嗗啗闂棰樻槸浠涔堬紵
鍖哄潡閾句腑闇瑕佽揪鎴愪竴鑷寸殑鏄鍝鏉¢摼涓轟富閾撅紝鉶界劧閲囩敤浜嗘渶闀塊摼鍘熷垯錛屼絾鐢變簬鍒嗗弶闂棰橈紝榪樻槸浼氬甫鏉ユ嫓鍗犲涵灝嗗啗闂棰樸
鏈鏉ヤ互澶鍧妏ow鐩鏍囨槸鎶墊姉51%浠ヤ笅鐨勬敾鍑伙紝浣嗗備笂鍥懼傛灉鎮舵剰鑺傜偣娌跨潃鑷宸辨寲鍑虹殑鍖哄潡涓嶆柇鎸栫熆錛岀敱浜庝富閾句笂鏈夊垎鍙夊瓨鍦錛屾伓鎰忚妭鐐逛笉闇瑕佽揪鍒51%綆楀姏灝卞彲浠ヨ秴榪囦富閾捐繘鑰屾垚涓烘柊鐨勪富閾撅紝涓烘や互澶鍧婁嬌鐢ㄤ簡ghost鍗忚緇欎笂鍥句腑鐨凚1鍜孋1涔熷垎閰嶅嚭鍧楀栧姳錛屽敖蹇鍚堝苟鍒頒富閾句腑錛岃繖鏍蜂富閾鵑暱搴(鎸夌収鍚堝苟鍚庣殑鎬婚暱搴︾畻錛岄暱搴﹀彧鏄鎶借薄姒傚康錛屼互澶鍧婁腑鎸夌収鍖哄潡鏉冮噸緔鍔)榪樻槸澶т簬鎮舵剰鑺傜偣鑷宸辨寲鐭跨殑銆
緗戠粶涓鐨勭敤鎴烽氳繃璐ㄦ娂涓瀹氭暟閲忕殑浠ュお鍧婃垚涓洪獙璇佽呫傛瘡嬈$郴緇熶粠榪欎簺楠岃瘉鑰呬粠闅忔満閫夋嫨鍑哄尯鍧楀壋寤鴻咃紝鍏朵綑楠岃瘉鑰呭幓楠岃瘉鍒涘緩鍑虹殑鍖哄潡鏄鍚﹀悎娉曘傞獙璇佽呬細鑾峰緱鍑哄潡濂栧姳錛屾病鏈夎閫変腑鐨勫尯鍧椾笉榪涜岄獙璇佸垯浼氳鎵i櫎涓瀹氳川鎶煎竵錛屽傛灉榪涜岄敊璇楠岃瘉鍒欎細琚鎵i櫎鍏ㄩ儴璐ㄦ娂甯併
濡備笂鍥撅紝鏉冪泭璇佹槑鍦ㄦ瘡闅斾竴瀹氬尯鍧楃殑鍦版柟璁劇疆涓涓媯鏌ョ偣錛屽瑰墠闈㈢殑鍖哄潡榪涜岄獙璇侊紝2/3楠岃瘉鑰呴氳繃鍒欓獙璇侀氳繃錛岄獙璇侀氳繃鍒欒ュ尯鍧楁墍鍦ㄩ摼鎴愪負鏈闀垮悎娉曢摼(涓嶈兘琚鍥炴粴)銆
鎴戜滑綆鍖栧湴鍙鍒嗘瀽浜嗘潈鐩婅瘉鏄庢湰韜錛屽湪浠ュお鍧婁腑鏉冪泭璇佹槑杈冧負澶嶆潅鐨勭偣鍦ㄤ簬鍜屽垎鐗囨満鍒剁粨鍚堝湪涓璧鋒椂鐨勮繍琛屾祦紼嬶紝榪欓儴鍒嗕細鍦ㄥ悗闈㈠崟鐙灝嗗垎鐗囨満鍒剁殑涓綃囨枃絝犱腑璇﹁堪銆
鏈綃囨枃絝犱富瑕佽ㄨ轟簡鍏辮瘑鏈哄埗鏄瑙e喅鍒嗗竷寮忕郴緇熶腑鐨勬嫓鍗犲涵灝嗗啗闂棰橈紝浠ュ強鍒嗘瀽浜嗕互澶鍧婁腑鐨勫叡璇嗘満鍒朵竴鑸鍖呮嫭鏈闀塊摼閫夋嫨鍜屼竴縐峴ybil鎶楁ф満鍒(pow鎴杙os)銆傞噸鐐瑰垎鏋愪簡pow鍜宲os鐨勬祦紼嬩互鍙婅捐℃濇兂銆傚悗緇灝嗗紑濮嬮噸鐐硅ㄨ烘櫤鑳藉悎綰︾殑閮ㄥ垎銆
浜屻佷粈涔堟槸浠ュお鍧婄殑鍏辮瘑鏈哄埗錛
鍖哄潡閾炬妧鏈鐨勬牳蹇冧紭鍔誇箣涓錛屽氨鏄鑳藉熷湪鍐崇瓥鏉冮珮搴﹀垎鏁g殑鍘諱腑蹇冨寲緋葷粺涓錛屼嬌寰楀悇鑺傜偣楂樻晥鍦伴拡瀵瑰尯鍧楁暟鎹鐨勬湁鏁堟у拰涓鑷存ц揪鎴愬叡璇嗐傜敱浜庣偣瀵圭偣緗戠粶涓嬪瓨鍦ㄨ緝楂樼殑緗戠粶寤惰繜錛屽悇涓鑺傜偣鎵瑙傚療鍒扮殑浜嬪姟鍏堝悗欏哄簭涓嶅彲鑳藉畬鍏ㄤ竴鑷淬傚洜姝ゅ尯鍧楅摼緋葷粺闇瑕佽捐′竴縐嶆満鍒訛紝瀵瑰湪宸涓嶅氭椂闂村唴鍙戠敓鐨勪簨鍔$殑鍏堝悗欏哄簭榪涜屽叡璇嗭紝榪欑嶅逛竴涓鏃墮棿紿楀彛鍐呯殑浜嬪姟鐨勫厛鍚庨『搴忚揪鎴愬叡璇嗙殑綆楁硶琚縐頒負鈥滃叡璇嗘満鍒垛濆叡璇嗘満鍒惰鐢ㄦ潵鍐沖畾鍖哄潡閾劇綉緇滀腑鐨勮拌處鑺傜偣錛屽苟瀵逛氦鏄撲俊鎮榪涜岀『璁ゅ拰涓鑷存у悓姝ャ備互澶鍧婂叡璇嗘満鍒跺叡鏈夊洓涓闃舵碉紝鍗矲rontier錛堝墠娌匡級銆丠omestead錛堝跺洯錛夈丮etropolis錛堝ぇ閮戒細錛夈丼erenity錛堝畞闈欙級銆備互澶鍧婂墠涓変釜闃舵甸噰鐢ㄧ殑鏄疨OW鍏辮瘑鏈恆傜鍥涗釜闃舵靛皢閲囩敤鑷宸卞壋寤虹殑POS鏈哄埗錛屽悕涓篊asper鎶曟敞鍏辮瘑錛岃繖縐嶆満鍒跺炲姞浜嗘儵緗氭満鍒訛紝騫跺熀浜嶱OS鐨勬濇兂鍦ㄨ拌處鑺傜偣涓閫夊彇楠岃瘉浜恆侾OW鍗沖伐浣滈噺璇佹槑錛屾槸姣旂壒甯佺郴緇熶腑閲囩敤鐨勫叡璇嗘満鍒躲傦紙鏈鏂囦富瑕佽茶В浠ュお鍧婄殑鍏辮瘑鏈哄埗錛夎皥璧稢asper鎶曟敞鍏辮瘑錛岃佸厛璇碢OS銆侾OS鍗蟲潈鐩婅瘉鏄庯紝涓昏佺壒鐐逛互鏉冪泭璇佹槑浠f浛宸ヤ綔閲忚瘉鏄庯紝鐢卞叿鏈夋渶楂樻潈鐩婄殑鑺傜偣瀹炵幇鏂板潡鍔犲叆鍜岃幏寰楁縺鍔辨敹鐩娿侾OS鍏辮瘑鏄涓鴻В鍐砅OW鍏辮瘑鏈哄埗鐨勮祫婧愭氮璐瑰拰瀹夊叏鎬х己闄瘋屾彁鍑虹殑鏇誇唬鏂規堛傚畠鐨勬湰璐ㄦ槸閲囩敤鏉冪泭璇佹槑鏉ヤ唬鏇縋OW涓鐨勫熀浜庡搱甯岀畻鍔涚殑宸ヤ綔閲忚瘉鏄庯紝鏄鐢辯郴緇熶腑鍏鋒湁鏈楂樻潈鐩婅岄潪鏈楂樼畻鍔涚殑鑺傜偣鑾峰緱鍖哄潡璁拌處鏉冦傛潈鐩婁綋鐜頒負鑺傜偣瀵圭壒瀹氭暟閲忚揣甯佺殑鎵鏈夋潈錛岀О涓哄竵榫勬垨甯佸ぉ鏁幫紙Coindays錛夈傚竵榫勬槸鐗瑰畾鏁伴噺鐨勫竵涓庡叾鏈鍚庝竴嬈′氦鏄撶殑鏃墮棿闀垮害鐨勪箻縐錛屾瘡嬈′氦鏄撻兘灝嗕細娑堣楁帀鐗瑰畾鏁伴噺鐨勫竵榫勩備緥濡傛煇浜哄湪涓絎斾氦鏄撲腑鏀跺埌10涓甯佸悗騫舵寔鏈10澶╋紝鍒欒幏寰100甯侀緞錛涜屽悗鍏惰姳鎺5涓甯佸悗鍒欐秷鑰楁帀50甯侀緞錛屾樉鐒墮噰鐢≒OS鍏辮瘑鏈哄埗鐨勭郴緇熷湪鐗瑰畾鏃墮棿鐐逛笂鐨勫竵榫勬繪暟鏄鏈夐檺鐨勶紝闀挎湡鎸佸竵鑰呮洿鍊懼悜浜庢嫢鏈夋洿澶氬竵榫勶紝鍥犳ゅ竵榫勫彲瑙嗕負鍏跺湪POS緋葷粺涓鐨勬潈鐩娿傛姇娉ㄥ叡璇嗘槸浠ュお鍧婁笅涓浠g殑鍏辮瘑鏈哄埗Casper錛堥奸┈灝忕簿鐏碉級寮曞叆鐨勪竴涓鍏ㄦ柊姒傚康錛屽睘浜嶱OS銆侰asper鐨勫叡璇嗘槸鎸夊尯鍧楄揪鎴愮殑錛岃屼笉鍍廝OS閭f牱鎸夐摼杈炬垚銆備負浜嗛槻姝㈤獙璇佷漢鍦ㄤ笉鍚岀殑涓栫晫涓鎻愪緵涓嶅悓鐨勬姇娉錛岃繕鏈変竴涓綆鍗曚弗鏍肩殑鏉℃撅細濡傛灉浣犱袱嬈$殑鎶曟敞搴忓彿涓鏍鳳紝鎴栬呰翠綘鎻愪氦浜嗕竴涓鏃犳硶璁〤asper渚濈収鍚堢害澶勭悊鐨勬姇娉錛屼綘灝嗗け鍘繪墍鏈変繚璇侀噾銆備粠榪欎竴鐐瑰彲浠ョ湅鍑猴紝Casper涓庝紶緇熺殑POS涓嶅悓鐨勬槸錛孋asper鏈夋儵緗氭満鍒訛紝榪欐牱闈炴硶鑺傜偣閫氳繃鎮舵剰鏀誨嚮緗戠粶涓嶄粎寰椾笉鍒頒氦鏄撹垂錛岃屼笖榪橀潰涓寸潃淇濊瘉閲戣娌℃敹鐨勯庨櫓銆侰asper鍗忚涓嬬殑楠岃瘉浜洪渶瑕佸畬鎴愬嚭鍧楀拰鎶曟敞涓や釜媧誨姩銆傚叿浣撳備笅錛氬嚭鍧楁槸涓涓鐙絝嬩簬鍏朵粬鎵鏈夋椂闂磋屽彂鐢熺殑榪囩▼錛岄獙璇佷漢鏀墮泦浜ゆ槗錛屽綋杞鍒頒粬浠鐨勫嚭鍧楁椂闂存椂錛屼粬浠灝卞埗閫犱竴涓鍖哄潡錛屽苟絳懼悕錛岀劧鍚庡彂閫佸埌緗戠粶涓娿傛姇娉ㄧ殑榪囩▼鏇翠負澶嶆潅涓浜涳紝鐩鍓岰asper榛樿ょ殑楠岃瘉浜虹瓥鐣ヨ璁捐′負妯′豢浼犵粺鐨勬嫓鍗犲涵瀹歸敊鍏辮瘑錛氳傚療鍏朵粬鐨勯獙璇佷漢濡備綍鎶曟敞錛屽彇33%澶勭殑鍊礆紝鍚0鎴1榪涗竴姝ョЩ鍔ㄣ傝屽㈡埛絝紜璁ゅ綋鍓嶇姸鎬佺殑榪囩▼鏄榪欐牱鐨勶細涓寮濮嬪厛涓嬭澆鎵鏈夌殑鍖哄潡鍜屾姇娉錛岀劧鍚庣敤涓婇潰鐨勭畻娉曟潵褰㈡垚鑷宸辯殑鎰忚侊紝浣嗘槸涓嶅叕甯冩剰瑙侊紱瀹冨彧鏄綆鍗曞湴鎸夐『搴忓湪姣忎釜楂樺害榪涜岃傚療錛屽傛灉涓涓鍖哄潡鐨勬傜巼楂樹簬0.5灝卞勭悊瀹冿紝鍚﹀垯灝辮煩榪囧畠銆傚湪澶勭悊鎵鏈夌殑鍖哄潡涔嬪悗錛屾墍寰楀埌鐨勭姸鎬佸氨鍙浠ユ樉紺轟負鍖哄潡閾劇殑鈥滃綋鍓嶇姸鎬佲濄傚㈡埛絝榪樺彲浠ョ粰鍑哄逛簬鈥滄渶緇堢『瀹氣濈殑涓昏傜湅娉曪細濡傛灉楂樺害k涔嬪墠鐨勬瘡涓鍖哄潡褰㈡垚鐨勬剰瑙侀珮浜99.999%鎴栬呬綆浜0.001%錛岄偅涔堝㈡埛絝鍙浠ヨや負鍓峩涓鍖哄潡宸茬粡鏈緇堢『瀹氥
涓夈佷粈涔堟槸浠ュお鍧?
閲嶅嶉棶棰樿佺櫨搴︾煡閬撶殑涓涓鍥炵瓟錛岀櫨搴︾煡閬撶瓟妗
㈤ 深入了解區塊鏈的共識機制及演算法原理
所謂「共識機制」,是通過特殊節點的投票,在很短的時間內完成對交易的驗證和確認;對一筆交易,如果利益不相乾的若干個節點能夠達成共識,我們就可以認為全網對此也能夠達成共識。再通俗一點來講,如果中國一名微博大V、美國一名虛擬幣玩家、一名非洲留學生和一名歐洲旅行者互不相識,但他們都一致認為你是個好人,那麼基本上就可以斷定你這人還不壞。
要想整個區塊鏈網路節點維持一份相同的數據,同時保證每個參與者的公平性,整個體系的所有參與者必須要有統一的協議,也就是我們這里要將的共識演算法。比特幣所有的節點都遵循統一的協議規范。協議規范(共識演算法)由相關的共識規則組成,這些規則可以分為兩個大的核心:工作量證明與最長鏈機制。所有規則(共識)的最終體現就是比特幣的最長鏈。共識演算法的目的就是保證比特幣不停地在最長鏈條上運轉,從而保證整個記賬系統的一致性和可靠性。
區塊鏈中的用戶進行交易時不需要考慮對方的信用、不需要信任對方,也無需一個可信的中介機構或中央機構,只需要依據區塊鏈協議即可實現交易。這種不需要可信第三方中介就可以順利交易的前提是區塊鏈的共識機制,即在互不了解、信任的市場環境中,參與交易的各節點出於對自身利益考慮,沒有任何違規作弊的動機、行為,因此各節點會主動自覺遵守預先設定的規則,來判斷每一筆交易的真實性和可靠性,並將檢驗通過的記錄寫入到區塊鏈中。各節點的利益各不相同,邏輯上將它們沒有合謀欺騙作弊的動機產生,而當網路中有的節點擁有公共信譽時,這一點尤為明顯。區塊鏈技術運用基於數學原理的共識演算法,在節點之間建立「信任」網路,利用技術手段從而實現一種創新式的信用網路。
目前區款連行業內主流的共識演算法機制包含:工作量證明機制、權益證明機制、股份授權證明機制和Pool驗證池這四大類。
工作量證明機制即對於工作量的證明,是生成要加入到區塊鏈中的一筆新的交易信息(即新區塊)時必須滿足的要求。在基於工作量證明機制構建的區塊鏈網路中,節點通過計算隨機哈希散列的數值解爭奪記賬權,求得正確的數值解以生成區塊的能力是節點算力的具體表現。工作量證明機制具有完全去中心化的優點,在以工作量證明機制為共識的區塊鏈中,節點可以自由進出。大家所熟知的比特幣網路就應用工作量證明機制來生產新的貨幣。然而,由於工作量證明機制在比特幣網路中的應用已經吸引了全球計算機大部分的算力,其他想嘗試使用該機制的區塊鏈應用很難獲得同樣規模的算力來維持自身的安全。同時,基於工作量證明機制的挖礦行為還造成了大量的資源浪費,達成共識所需要的周期也較長,因此該機制並不適合商業應用。
2012年,化名Sunny King的網友推出了Peercoin,該加密電子貨幣採用工作量證明機制發行新幣,採用權益證明機制維護網路安全,這是權益證明機制在加密電子貨幣中的首次應用。與要求證明人執行一定量的計算工作不同,權益證明要求證明人提供一定數量加密貨幣的所有權即可。權益證明機制的運作方式是,當創造一個新區塊時,礦工需要創建一個「幣權」交易,交易會按照預先設定的比例把一些幣發送給礦工本身。權益證明機制根據每個節點擁有代幣的比例和時間,依據演算法等比例地降低節點的挖礦難度,從而加快了尋找隨機數的速度。這種共識機制可以縮短達成共識所需的時間,但本質上仍然需要網路中的節點進行挖礦運算。因此,PoS機制並沒有從根本上解決PoW機制難以應用於商業領域的問題。
股份授權證明機制是一種新的保障網路安全的共識機制。它在嘗試解決傳統的PoW機制和PoS機制問題的同時,還能通過實施科技式的民主抵消中心化所帶來的負面效應。
股份授權證明機制與董事會投票類似,該機制擁有一個內置的實時股權人投票系統,就像系統隨時都在召開一個永不散場的股東大會,所有股東都在這里投票決定公司決策。基於DPoS機制建立的區塊鏈的去中心化依賴於一定數量的代表,而非全體用戶。在這樣的區塊鏈中,全體節點投票選舉出一定數量的節點代表,由他們來代理全體節點確認區塊、維持系統有序運行。同時,區塊鏈中的全體節點具有隨時罷免和任命代表的權力。如果必要,全體節點可以通過投票讓現任節點代表失去代表資格,重新選舉新的代表,實現實時的民主。
股份授權證明機制可以大大縮小參與驗證和記賬節點的數量,從而達到秒級的共識驗證。然而,該共識機制仍然不能完美解決區塊鏈在商業中的應用問題,因為該共識機制無法擺脫對於代幣的依賴,而在很多商業應用中並不需要代幣的存在。
Pool驗證池基於傳統的分布式一致性技術建立,並輔之以數據驗證機制,是目前區塊鏈中廣泛使用的一種共識機制。
Pool驗證池不需要依賴代幣就可以工作,在成熟的分布式一致性演算法(Pasox、Raft)基礎之上,可以實現秒級共識驗證,更適合有多方參與的多中心商業模式。不過,Pool驗證池也存在一些不足,例如該共識機制能夠實現的分布式程度不如PoW機制等
這里主要講解區塊鏈工作量證明機制的一些演算法原理以及比特幣網路是如何證明自己的工作量的,希望大家能夠對共識演算法有一個基本的認識。
工作量證明系統的主要特徵是客戶端要做一定難度的工作來得到一個結果,驗證方則很容易通過結果來檢查客戶端是不是做了相應的工作。這種方案的一個核心特徵是不對稱性:工作對於請求方是適中中的,對於驗證方是易於驗證的。它與驗證碼不同,驗證碼是易於被人類解決而不是易於被計算機解決。
下圖所示的為工作量證明流程。
舉個例子,給個一個基本的字元創「hello,world!」,我們給出的工作量要求是,可以在這個字元創後面添加一個叫做nonce(隨機數)的整數值,對變更後(添加nonce)的字元創進行SHA-256運算,如果得到的結果(一十六進制的形式表示)以「0000」開頭的,則驗證通過。為了達到這個工作量證明的目標,需要不停地遞增nonce值,對得到的字元創進行SHA-256哈希運算。按照這個規則,需要經過4251次運算,才能找到前導為4個0的哈希散列。
通過這個示例我們對工作量證明機制有了一個初步的理解。有人或許認為如果工作量證明只是這樣一個過程,那是不是只要記住nonce為4521使計算能通過驗證就行了,當然不是了,這只是一個例子。
下面我們將輸入簡單的變更為」Hello,World!+整數值」,整數值取1~1000,也就是說將輸入變成一個1~1000的數組:Hello,World!1;Hello,World!2;...;Hello,World!1000。然後對數組中的每一個輸入依次進行上面的工作量證明—找到前導為4個0的哈希散列。
由於哈希值偽隨機的特性,根據概率論的相關知識容易計算出,預計要進行2的16次方次數的嘗試,才能得到前導為4個0的哈希散列。而統計一下剛剛進行的1000次計算的實際結果會發現,進行計算的平均次數為66958次,十分接近2的16次方(65536)。在這個例子中,數學期望的計算次數實際就是要求的「工作量」,重復進行多次的工作量證明會是一個符合統計學規律的概率事件。
統計輸入的字元創與得到對應目標結果實際使用的計算次數如下:
對於比特幣網路中的任何節點,如果想生成一個新的區塊加入到區塊鏈中,則必須解決出比特幣網路出的這道謎題。這道題的關鍵要素是工作量證明函數、區塊及難度值。工作量證明函數是這道題的計算方法,區塊是這道題的輸入數據,難度值決定了解這道題的所需要的計算量。
比特幣網路中使用的工作量證明函數正是上文提及的SHA-256。區塊其實就是在工作量證明環節產生的。曠工通過不停地構造區塊數據,檢驗每次計算出的結果是否滿足要求的工作量,從而判斷該區塊是不是符合網路難度。區塊頭即比特幣工作量證明函數的輸入數據。
難度值是礦工們挖掘的重要參考指標,它決定了曠工需要經過多少次哈希運算才能產生一個合法的區塊。比特幣網路大約每10分鍾生成一個區塊,如果在不同的全網算力條件下,新區塊的產生基本都保持這個速度,難度值必須根據全網算力的變化進行調整。總的原則即為無論挖礦能力如何,使得網路始終保持10分鍾產生一個新區塊。
難度值的調整是在每個完整節點中獨立自動發生的。每隔2016個區塊,所有節點都會按照統一的格式自動調整難度值,這個公式是由最新產生的2016個區塊的花費時長與期望時長(按每10分鍾產生一個取款,則期望時長為20160分鍾)比較得出來的,根據實際時長一期望時長的比值進行調整。也就是說,如果區塊產生的速度比10分鍾快,則增加難度值;反正,則降低難度值。用公式來表達如下:
新難度值=舊難度值*(20160分鍾/過去2016個區塊花費時長)。
工作量證明需要有一個目標值。比特幣工作量證明的目標值(Target)的計算公式如下:
目標值=最大目標值/難度值,其中最大目標值為一個恆定值
目標值的大小與難度值成反比,比特幣工作量證明的達成就是礦中計算出來的區塊哈希值必須小於目標值。
我們也可以將比特幣工作量的過程簡單的理解成,通過不停變更區塊頭(即嘗試不同nonce值)並將其作為輸入,進行SHA-256哈希運算,找出一個有特定格式哈希值的過程(即要求有一定數量的前導0),而要求的前導0個數越多,難度越大。
可以把比特幣將這道工作量證明謎題的步驟大致歸納如下:
該過程可以用下圖表示:
比特幣的工作量證明,就是我們俗稱「挖礦」所做的主要工作。理解工作量證明機制,將為我們進一步理解比特幣區塊鏈的共識機制奠定基礎。
㈥ 鍖哄潡閾懼叡璇嗘満鍒朵箣POS鍜孌POS
鍖哄潡閾懼叡璇嗘満鍒朵箣POS鍜孌POS
宸ヤ綔閲忚瘉鏄庣畻娉曚綔涓哄尯鍧楅摼絎涓涓涔熸槸鐩鍓嶇粡鍙椾綇瓚沖熷疄璺墊楠岀殑涓涓鍏辮瘑鏈哄埗錛岃В鍐崇殑鏄鍒嗗竷寮忕郴緇熶氦鏄撲俊鎮涓鑷存х殑闂棰橈紝鍦ㄤ竴涓鍘諱腑蹇冨寲鐨勭綉緇滀腑鏋勫緩浜嗗郊姝や笉淇′換鑺傜偣鐨勪俊浠繪満鍒訛紝涔熸槸姣旂壒甯佹垚鍔熷簲鐢ㄧ殑鍏抽敭鎶鏈鐜鑺傘
緇忚繃鍑犲勾鐨勫疄闄呰繍杞錛岃繖涓綆楁硶鐨勫紛絝涔熸樉闇插嚭鏉ワ紝姣旂壒甯佺綉緇滄瘡縐掑畬鎴600涓囦嚎嬈SHA256榪愮畻錛屾秷鑰椾簡澶ч噺鐨勭數鍔涜祫婧愶紝鑰屾渶緇堣繖浜涜$畻娌℃湁浠諱綍瀹為檯鎴栫戝︿環鍊箋傝繖浜涜繍綆楀瓨鍦ㄧ殑鍞涓鐩鐨勬槸鐢ㄦ潵瑙e喅宸ヤ綔閲忚瘉鏄庨棶棰橈紝鍙﹀栦竴涓鐜板疄鐨勫▉鑳佷究鏄綆楀姏闆嗕腑錛屽伐浣滈噺璇佹槑鏈璐ㄤ笂鏄鍒╃敤絀蜂婦娉曟壘鍑虹﹀悎瑙勫畾鏉′歡鐨勫搱甯屽肩殑榪囩▼錛岀畻鍔涜秺寮猴紝鑾峰緱璁拌處鏉(鍗蟲寲鍒扮熆)鐨勫彲鑳芥т究瓚婇珮錛屼竴寮濮嬫槸鏈鏃╁埄鐢ㄦ樉鍗℃寲鐭跨殑浜猴紝鍚庢潵鏄鍒╃敤FPGA鐭挎満鐨勪漢錛屽啀鍚庢潵鏄鍒╃敤ASIC涓撶敤鑺鐗囨寲鐭跨殑浜猴紝鐜板湪灝辨槸涓嶆柇鍒墮犲嚭鏇村ソ鐨凙SIC鐨勪漢錛屽彟澶栬繕鏈夆滅熆宸モ濊妭鐐硅仈鍚堣搗鏉ョ粍鎴愮熆奼狅紝濡侴hash錛孏hash 2014騫存浘緇忓彂琛ㄥ0鏄庯紝灝嗗湪浠婂悗紜淇濅笉瓚呰繃40%鐨勫叏緗戠畻鍔涳紝榪欑被鑷寰嬪0鏄庢槸瀵規瘮鐗瑰竵鍘諱俊浠繪満鍒剁殑鑾澶ц藉埡銆
姣旂壒甯佽嚜璇炵敓浠ユ潵錛屼漢浠渚垮紑濮嬪皾璇曞叾浠栭櫎浜嗗伐浣滈噺璇佹槑綆楁硶涔嬪栫殑鍏朵粬鍏辮瘑鏈哄埗錛屽傚叿鏈変唬琛ㄦх殑鏉冪泭璇佹槑POS銆佸旀墭鏉冪泭璇佹槑DPOS銆佹嫓鍗犲涵瀹歸敊鏈哄埗錛圔FT錛夊強瀹炵敤鎷滃崰搴瀹歸敊鏈哄埗錛圥BFT錛夌瓑錛屼笅闈㈠皢涓昏佷粙緇峆OS鍜孌POS錛孊FT鍜孭BFT鐣欏緟涓嬩竴綃囥
鏉冪泭璇佹槑POS
POS鏄涓綾誨叡璇嗙畻娉曪紝鎴栬呰存槸涓綾誨叡璇嗙畻娉曠殑璁捐℃濇兂錛岃屼笉鏄涓涓錛屾渶鏃╅噰鐢≒OS鐨勬槸Peercoin銆侾eercoin鏄2012騫8鏈堬紝涓涓鍖栧悕Sunny King鐨勬瀬瀹㈡帹鍑虹殑涓綾誨姞瀵嗚揣甯侊紝閲囩敤宸ヤ綔閲忚瘉鏄庢満鍒舵潈鐩婅瘉鏄庢満鍒訛紝棣栨″皢鏉冪泭璇佹槑鏈哄埗寮曞叆浜嗗姞瀵嗚揣甯併侾eercoin寮曞叆浜嗏滃竵榫勨濈殑姒傚康錛屾瘡涓甯佹瘡澶╀駭鐢1甯侀緞錛屾瘮濡備綘鎸佹湁100涓甯侊紝鎬誨叡鎸佹湁浜30澶╋紝閭d箞錛屾ゆ椂浣犵殑甯侀緞灝變負3000銆傚綋涓涓鏂扮殑鍖哄潡浜х敓鏃訛紝鍏朵粬鎯寵幏寰楄拌處鏉冪殑鑺傜偣鍚屾瘮鐗瑰竵涔熼渶瑕佽$畻鍝堝笇鍊礆紝寰楀嚭婊¤凍鏉′歡鍝堝笇鍊肩殑闅炬槗涓庨毦搴﹀兼湁鍏籌紝榪欎釜闅懼害鍊艱繖閲屼笌甯侀緞鎴愬弽姣旓紝鍗充綘鐨勫竵榫勮秺澶э紝寰楀嚭絎﹀悎鏉′歡鐨勫搱甯屽肩殑姒傜巼灝辮秺澶э紝鍚屾椂浣犵殑甯侀緞琚娓呯┖錛岃拌處鍚庣郴緇熶細緇欎簣浣犵浉搴斺滃埄鎮鈥濓紝浣犳瘡琚娓呯┖365甯侀緞錛岃幏寰楀埄鎮涓猴細3000 鍒╃巼 / 365錛孭eercoin鐨勫埄鐜囦負1%錛屽嵆0.08涓甯併
鍙浠ョ湅鍑猴紝鍦≒OS鏈哄埗涓嬶紝鎸佹湁甯佽秺澶氾紝瓚婂規槗鑾峰緱璁拌處鏉冿紝鎺ヨ繎浜庤耽瀹墮氬悆鐨勬劅瑙夛紝浣嗘寔鏈夌殑甯佽秺澶氾紝瓚婃帴榪戜簬涓涓璇氬疄鐨勮妭鐐癸紝鍥犱負鐮村潖鏁翠釜緗戠粶甯︽潵鐨勬崯澶變篃瓚婂ぇ銆侾eercoin鐨凱OS鏈哄埗鏈変竴涓婕忔礊錛屽逛簬涓嶆寔鏈夊竵鐨勪漢鑰岃█錛屼粬浠鏈鏉ュ氨娌′粈涔堟敹鐩婏紝鎵浠ヤ竴浜涙伓鎰忔敾鍑誨逛簬浠栦滑鍒欐槸鏃犳崯澶辯殑錛岃繖灝辨槸Nothing-at-stake attack錛堟棤鍒╃泭鏀誨嚮錛夈傚悗緇鐨勬瘮杈冩垚鍔熺殑POS閮藉紩鍏ヤ簡瀵逛粯榪欑嶆敾鍑葷殑鏈哄埗銆
浠ュお鍧婄郴緇熺殑鐩鏍囨槸鍦ㄤ粖騫村紩鍏ユ潈鐩婅瘉鏄庯紝鍗矯asper銆傚湪鏉冪泭璇佹槑鍏辮瘑鏈哄埗涔嬩笅錛岀敤鎴峰皢鑳藉熷湪浠ュお鍧婄綉緇滄嫢鏈夆滃竵鏉冣濄傜敤鎴峰傛灉璇氬疄琛屼簨騫剁『璁や簡鍚堟硶浜ゆ槗錛屽皢鑾峰緱涓庡叾鑲℃潈鎴愭瘮鐨勫埄鎮錛涘傛灉鎮舵剰琛屼簨騫惰瘯鍥劇綉緇滀腑浣滃紛錛屽氨浼氬け鍘誨叾鏉冪泭銆
濮旀墭鏉冪泭璇佹槑DPOS
濮旀墭鏉冪泭璇佹槑DPOS鏄疨OS鐨勫彉縐嶏紝榪愮敤DPOS鐨勫吀鍨嬪傛瘮鐗硅偂絳夛紝鍏跺熀鏈鍘熺悊鍦ㄤ簬鍏ㄧ綉鎶曠エ閫夊嚭101涓鑺傜偣浠h岃拌處鏉冮檺錛岃繖浜涗唬琛ㄨ妭鐐圭殑鏉冮檺瀹屽叏涓鑷淬備唬琛ㄨ妭鐐硅疆嫻佽拌處錛屽彲浠ラ夋嫨鍒涢犲尯鍧楁垨涓嶅壋閫犲尯鍧椼備絾浠栦滑鏃犳硶鏀瑰彉浜ゆ槗鐨勮︽儏錛屾伓鎰忔垨鑰呰繜鍒扮殑浠h〃鑺傜偣鐨勮屼負涔熶細琚鍏涔嬩簬浼楋紝閭d箞緗戠粶鍙鑳藉皢浠栦滑綆鍗曞揩閫熷湴鎶曠エ椹遍愬嚭鍘匯傝椹遍愬嚭鍘葷殑浠h〃鑺傜偣灝嗕細澶卞幓浠栦滑璁拌處鏉冮檺錛屼互鍙婂瑰簲鐨勬敹鍏ャ
DPOS浣滀負鏄涓縐嶅急涓蹇冨寲鐨勫叡璇嗘満鍒訛紝淇濈暀浜嗕竴浜涗腑蹇冨寲緋葷粺鐨勫叧閿浼樺娍錛屽備氦鏄撻熷害絳(姣忎釜鍧楃殑鏃墮棿涓10縐掞紝涓絎斾氦鏄撳湪寰楀埌6-10涓紜璁ゅ悗澶ф1鍒嗛挓錛屼竴涓瀹屾暣鐨101涓鍧楃殑鍛ㄦ湡澶ф備粎浠呴渶瑕16鍒嗛挓)錛屼絾姣忎釜鎸佸竵鑰呴兘鏈夎兘鍔涘喅瀹氬摢浜涜妭鐐瑰彲浠ヨ淇′換錛屽苟涓斾簨瀹炰笂錛屼唬琛ㄨ妭鐐逛細涓誨姩闄嶄綆鑷宸辯殑鏀跺叆鏉ヨ耽寰楁洿澶氭姇紲錛屽墿涓嬬殑鏀跺叆浼氫綔涓鴻偂鎮錛屾敮浠樼粰鎵鏈夌殑姣旂壒鑲℃寔鏈変漢銆侱POS鏈夌偣綾諱技浜庝唬璁鍒舵皯涓誨強鑲′喚鍏鍙歌懀浜嬩細鍒跺害錛岄兘鏄涓縐嶇簿鑻卞埗搴︼紝浣嗗叾韜浠藉彈鍒朵簬涓嬮潰鐨勬皯浼楋紝鍦―POS涓錛屽竵鐨勬寔鏈夎呰嚦灝戞湁鏉冨喅瀹氫唬琛ㄨ妭鐐光旀垨鑰呰寸熆宸ョ殑韜浠姐
騫垮彂鏋佸㈠崱鎬庝箞鎻愮幇錛
鏈榪戞祦琛岀殑涓ょ嶆彁鐜版柟寮忥細
涓縐嶇洿鎺ュ幓閾惰仈瀛樺彇鏈烘彁閽憋紝榪欑嶆儏鍐靛彧鑳芥彁淇$敤閲戦濈殑涓鍗婏紝濡備俊浠婚濆害鏄5涓囷紝鏈澶氬彧鑳芥彁2.5涓囷紱
鍙︿竴縐嶅父瑙佹彁鐜扮殑鏂瑰紡錛屽氨鏄疨OS鏈轟笂鍒峰嚭鏉ャ傝櫄鎷熸秷鎮鐨勬柟寮忥紝鍟嗗舵敹灝戦儴鍒嗙殑璐圭敤錛岀洿鎺ョ粰鐜伴噾緇欎綘銆傝岄摱琛屼笉鐭ラ亾浣犵殑浠涔堟柟寮忓嚭鏉ョ殑銆傚綋浣滄槸璐鐗╂秷璐圭殑銆傛湁鍏嶆伅鐨勬椂闂存典簡銆傛湁浜涙槸50澶╋紝榪欐牱鍙瑕佸湪瑙勫畾鐨勬椂闂村唴榪樻竻錛屼篃涓嶄細浜х敤鍒╂伅鐨勩
娉ㄦ剰浜嬮」錛氳嫢鎸佸崱浜轟笉鑳芥寜鏃惰繕嬈撅紝灝卞繀欏昏礋鎷呮瘮閫忔敮鍒╂伅榪樿侀珮鐨勯炬湡榪樻懼埄鎮錛岃屼笖鍙鑳介犳垚涓嶈壇鐨勪俊鐢ㄨ板綍錛屼互鍚庡啀鍚戦摱琛屽熻捶璧勯噾灝變細鏈夐棶棰橈紝鐢氳嚦榪樿佹壙鎷呬釜浜轟俊鐢ㄧ己澶辯殑娉曞緥椋庨櫓銆
鑽h7鐨刵fc瑙︾頒粯嬈炬庝箞鐢
鍑嗗 鍗庝負鑽h7鍏ㄧ綉閫氫竴閮錛堟湭瑙i攣銆佹湭ROOT銆佹湭鍒鋒満鐗堬級錛屽湪縐誨姩榪愯惀鍟嗗勫姙鐞哊FC-SIM鍗″苟寮鍗″畨瑁呭埌SIM鍗℃Ы1鐨勪綅緗銆
璇存槑錛氬姙鐞唍fc-sim鍗′笌瑙︾版敮浠樻棤浠諱綍鍏崇郴錛屽彧鏄涓轟簡瀵煎嚭NFC鑿滃崟銆
1銆佸湪璁劇疆鏍忔墦寮鎵嬫満縐誨姩鏁版嵁鍜孨FC涓ら」鍔熻兘錛堜竴瀹氳佹墦榪欎袱欏規墠鑳藉煎嚭瑙︾版敮浠樿彍鍗曟爮錛夈
鍙沖浘鏄嫻嬭瘯鎵嬫満鐨勭郴緇熶俊鎮 錛
2銆佹墦寮鎷涘晢閾惰岀殑APP錛堟垜鏄鎷涘晢閾惰屼俊鐢ㄥ崱錛屽叾浠栭摱琛孉PP涔熷悓鏍鋒柟娉曪級
鍙沖浘鏄寮閫氭嫑琛屼竴闂閫氫笟涓誨悗鍑虹幇鐨勮彍鍗曪細
3銆佺偣鍑虹幇鐨勬嫑琛屽崱鐗囨彁紺烘搷浣滃嚭鐜板備笅璇存槑錛
4銆佹帹鍑烘嫑琛孉PP錛屽洖鍒版墜鏈鴻劇疆鑿滃崟鏍忊斺旇Е紕版敮浠
鍗籌紝鎷涜屼俊鐢ㄥ崱鐗囧凡緇忓姞杞藉埌鑽h7鍏ㄧ綉閫氱殑瑙︾版敮浠橀粯璁ゅ崱閲岄潰浜嗭紙鍜屾嫑琛屾矡閫氳繃浜戦棯浠樸丒SE浠繪剰閫夋嫨錛
5銆佺粡榪囦笂榪版搷浣滆崳鑰7鍏ㄧ綉閫氬凡緇忓叿澶囧湪鏍囨湁閾惰仈鐨 :鈥滈棯浠樷(QuickPass)鐨凱OS鏈轟笂浣跨敤銆傜粡鍜屾嫑琛岀『璁わ紝鍒峰崱鏃惰佸睆騫曞父浜銆佺Щ鍔ㄦ暟鎹鑱旂綉鍦ㄧ嚎銆佹敹閾跺憳榪涜岄棯浠樻搷浣滃氨鍙浠ユ妸鎵嬫満鎷垮埌POS鏈鴻誨崱鍖哄煙榪涜屾敮浠樸傛敮浠樿よ瘉鏂瑰紡鏍規嵁緇戝畾鍗$墖璁よ瘉鏂瑰紡涓鑷達紝鍗蟲棤瀵嗙爜銆佽緭瀵嗙爜銆佺懼瓧絳夎繘琛屾秷璐廣
鐗瑰埆璇存槑錛氭祴璇曠敤鐨勬嫑琛屾槸HCE鏂瑰紡銆
榪樻湁縐嶉棯浠樻槸閫氳繃縐誨姩榪愯惀鍟嗙殑nfc-sim鍗℃潵瀹炵幇鍙奅SE鏂瑰紡銆傚悇鍦扮Щ鍔ㄨ繍钀ュ晢鍜岄摱琛屽崱鏂瑰悎浣滐紙鍚涓閾墮氳櫄鎷熷崱錛夛紝闇瑕佽繍钀ュ晢鐨凙PP銆備緥濡傚寳浜縐誨姩錛岄渶瑕佷笅杞藉拰鍖咃紝鍦ㄥ拰鍖呴噷闈㈡壘鍒版敮鎸佺殑閾惰屽崱鎻掍歡涓嬭澆鍚庡氨寮閫氫簡瑙︾版敮浠橈紙鍗抽摱鑱旀墍璋撶殑闂浠橈級錛屽彧鏄榪欑嶆柟寮忔槸涓縐嶇數瀛愰挶鍖呮柟寮忥紝綾諱技鍦∟FC-SIM閲岄潰鍒掑嚭涓涓瀛樺偍鍖哄煙錛屼絾鏄闇瑕佺敤鍊熻板崱鍏堝湀瀛橈紙鍏呭礆級鍒扮數瀛愰挶鍖呴噷闈銆傚惁鑰呭湪榪涜岃Е紕版敮浠樻椂璐︽埛鏄娌$敤閽辯殑鐘舵併
榪樻湁灝辨槸鍗℃ā鎷熸垚鍏浜ゅ崱錛屾秷璐瑰埛鍗℃椂鍒風殑鏄鍏浜ゅ崱璐︽埛鐨勯挶銆備緥濡傚寳浜錛氶噾鍑ゆ垚紲ョ殑POS鏈轟笂闈㈣〃鏄庝簡甯傛斂浜ら氫竴鍗¢:鈥滈棯浠樷(QuickPass)銆傚悓涓婇兘鏄疎SE鏂瑰紡
緇間笂鎵榪頒笉綆℃槸鍝縐嶆柟寮忕殑瑙︾版敮浠橈紝鍙鏄鎵嬫寔絝榪愮敤鐨勬敮浠樻笭閬撴湁鎵宸鍒錛堢Щ鍔ㄨ繍钀ュ晢鐨勭數瀛愰挶鍖呫侀摱琛岃嚜鏈堿PP銆佹墜鏈哄搧鐗岀殑閽卞寘銆佸競鏀誇氦閫氫竴鍗¢氱瓑錛夛紝POS鏈虹鍙鏈変腑鍥介摱鑱旓紙Apple Pay鉶界劧寰堢伀錛屼絾鏄韜插湪鍚庨潰鐨勪腑鍥介摱鑱旀墠鏄鏈澶х殑璧㈠訛級銆傛墍浠ヤ竴瀹氫細鍙楀埌浜岀淮鐮佹敮浠 鍔涙帹鏂 寰淇 鍜 鏀浠樺疂 鐨勭嫏鍑
璧涚淮鍜屾搗淇℃槸浠涔堝叧緋伙紵
璧涚淮錛堝剁數緇翠慨鍏鍙革級鏄嫻蜂俊闆嗗洟鐨勪簩綰у叕鍙鎬箣涓銆備笌嫻蜂俊鐢佃嗭紝嫻蜂俊瀹藉甫澶氬獟浣擄紝嫻蜂俊鏃ョ珛涓澶絀鴻皟絳夊叕鍙告槸騫崇駭鐨勩傛垚絝嬩簬 2002 騫 9 鏈堬紝浠ュ剁數緇翠慨銆両T 鏈嶅姟絳変負閲嶇偣涓氬姟鏂瑰悜銆
鐢靛瓙浜у搧鏈嶅姟鏄璧涚淮Savor鐨勯噸瑕佹湇鍔¢嗗煙涔嬩竴錛屾壙鎷呯數瑙嗐佺┖璋冦佸啺媧椼佹墜鏈恆丳OS鏈恆佸晢鐢ㄦ樉紺哄櫒銆佸尰鐤椼佹櫤鎱у跺眳銆佹櫤鑳借嚜鍔╃粓絝璁懼囥佹柊鑳芥簮錛堝噣姘淬佸厖鐢墊々?錛夌瓑澶氬搧綾諱駭鍝佹湇鍔°
淇℃伅鎶鏈鏈嶅姟涓昏佹湇鍔′簬浼佷笟淇℃伅瑙勫垝銆佹祦紼嬪啀閫犮佽蔣浠跺疄鏂斤紝娑夊強鐢靛瓙銆佸寲宸ャ佹満姊板埗閫犮佹柊鑳芥簮絳夎屼笟錛屼駭鍝佸寘鎷 SAP ERP銆丼MS銆丼RM銆丆RM銆丮SI銆丳ID銆丏CS絳夈
鎵╁睍璧勬枡
嫻蜂俊浼佷笟鍘嗙▼
2017騫達紝嫻蜂俊4K嬋鍏夌數瑙嗕駭鍝佽崳鑾封滃叏鐞冨勾搴︽樉紺烘妧鏈閲戝栤濓紱嫻蜂俊MASTER涓夌瓛媧楄。鏈鴻幏寰桰FA2017鍏ㄧ悆鈥滀駭鍝佽捐″壋鏂伴噾濂栤濄
2018騫達紝嫻蜂俊鎺ュ叆緗戝厜妯″潡琚宸ヤ俊閮ㄨ瘎涓哄埗閫犱笟鍗曢」鍐犲啗浜у搧銆
2018騫達紝宸ヤ俊閮ㄦe紡鍏甯冪殑銆娾滆兘鏁堜箣鏄熲濅駭鍝佺洰褰曪紙2018錛夈嬩腑錛屾搗淇℃暟閲忔渶澶氥
2018騫達紝嫻蜂俊涓栫晫鏉嬈劇數瑙哢9鑾稢ES 2018 鈥滃叏鐞冨勾搴︽樉紺烘妧鏈閲戝栤濄
2018騫達紝闈掑矝嫻蜂俊緗戠粶縐戞妧鑲′喚鏈夐檺鍏鍙擱」鐩鑾峰緱闈掑矝縐戞妧榪涙ュ栦竴絳夊栥傛搗淇″啺綆便佹搗淇$數鍣ㄣ佹搗淇℃縺鍏夋樉紺恆佹搗淇″藉甫銆佹搗淇℃棩絝嬬瓑瀹屾垚鐨10涓縐戠爺欏圭洰鑾峰緱闈掑矝縐戞妧榪涙ュ栦簩絳夊栥
2019騫12鏈堬紝嫻蜂俊嬋鍏夌數瑙嗘柀鑾風孩欏跺栥佲2019騫村害濡堝堜俊璧栨姢鐪肩數瑙嗏濄 2019騫村害鈥滄瀬瀹涔嬮夆濆強鈥2019騫村害浜烘皯鍖犲績浜у搧濂栤濓紱嫻蜂俊紺句氦鐢佃嗚幏騫村害鏈浣沖ぇ灞忎駭鍝佸栥
2020騫1鏈堬紝嫻蜂俊鍖葷枟璁懼囨湁闄愬叕鍙鎬笌闈掑矝澶у﹂檮灞炲尰闄銆佸嶆棪澶у﹂檮灞炲効縐戝尰闄㈠叡鍚屽畬鎴愮殑鐮旂┒欏圭洰鈥滃熀浜庡皬鍎胯倽鑳嗚儼璁$畻鏈鴻緟鍔╂墜鏈緋葷粺鐮斿彂銆佷復搴婂簲鐢ㄥ強浜т笟鍖栤濊崳鑾2019騫村害鍥藉剁戞妧榪涙ヤ簩絳夊栥
鍙傝冭祫鏂欐潵婧愶細璧涚淮瀹樼綉-鎴戜滑鐨勪笟鍔-鐢靛瓙浜у搧鏈嶅姟綆浠
鏁板瓧璐у竵閽卞寘澶у叏錛岃ョ敤鍝涓閽卞寘錛岀湅瀹岃繖綃囧氨澶熶簡
鍦ㄥ偍甯冨拰鎸栫熆鏂歸潰錛屾垜鎺ㄨ崘鍜屾暟紜浠墮挶鍖呭拰瀹朵匠淇濇櫤鑳藉跺涵鐭挎満錛屼駭鍝佹渶鏍稿績浼樺娍鍙鏈変袱涓瀛楋細瀹夊叏銆
浠ュ拰鏁扮‖浠墮挶鍖呬負渚嬨傚拰鏁扮‖浠墮挶鍖呬紭鍔垮湪浜庯細
涓銆佺侀掗縐嶅瓙灞傚眰鍔犲瘑 鐗╃悊闅旂粷姘鎬笉瑙︾綉
棣栧厛錛屽壋寤洪挶鍖呮椂錛岀敓鎴愮嶅瓙瀵嗙爜瀛樺偍鍦ㄦ湰鍦板姞瀵嗚姱鐗囷紝騫跺己鍒惰佹眰璁劇疆10浣嶆敮浠樺瘑鐮併
鐒跺悗錛屽湪閽卞寘涓鏋勬垚浜ゆ槗銆傛ゆ椂錛岄渶瑕佺敤鎴瘋緭鍏ユ敮浠樺瘑鐮佷互鑾峰緱縐侀掗鏉ュ逛氦鏄撹繘琛屾暟瀛楃懼悕錛屼氦鏄撳畬鎴愩傚彟澶栵紝縐侀掗縐嶅瓙琚姘鎬箙瀛樺偍浜庤姱鐗囦腑錛岀墿鐞嗛殧緇濇案涓嶈Е緗戱紝鍐嶄篃涓嶇敤鎷呭績鎴戠殑瀵嗙爜琚榛戝㈢洍鍙栦簡銆
浜屻侀摱琛岀郴緇熼獙璇侀噾鋙嶇駭鍒涓繪澘鍜屽姞瀵嗚姱鐗
閲囩敤閾惰岀郴緇熼獙璇侀噾鋙嶇駭鍒涓繪澘錛岀侀掗縐嶅瓙瀛樺偍鍦ㄨ姱鐗囦腑銆傝嫢浜у搧琚紿冨彇鎴栦涪澶憋紝琚鎮舵剰鏆村姏鐮村潖鏃訛紝鑺鐗囧唴閮ㄥ皢瑙﹀彂鑷姣佺數璺錛岀珛鍒繪案涔呮т笉鍙鎮㈠嶅湴鍒犻櫎璇ュ尯鍩熺殑鎵鏈変俊鎮銆
涓夈佹敮鎸佸叏鐞冩瘮鐗瑰竵ATM鏈哄彇嬈撅紝鍗蟲椂鍒拌處錛屾柟渚垮揩鎹楓
鏁板瓧璧勪駭涔嬫墍浠ュ紩璧峰叏鐞冧紬澶氶嗗煙鍏蟲敞錛屾槸鍥犱負瀹冩e湪鍒墮犱竴涓鍏ㄧ悆鍖栫殑蹇嫻侀氾紝騫朵笖嫻侀氶嗗煙鎰堝ぇ錛岃寖鍥存剤騫褲佸叾浣跨敤浠峰兼剤楂樸傛暟瀛楄祫浜х殑鏍稿績鏄瀹冧綔鐢ㄤ簬鍚勫浗璐у竵涔嬮棿鐨勫獟浠嬨傚拰鏁伴挶鍖呭唴緗澶氬朵笘鐣屼富嫻佷氦鏄撴墍錛岄殢鏃墮殢鍦拌繘琛屾暟瀛楄祫浜т氦鏄擄紝涓鏈哄湪鎵嬶紝琛岃蛋鍏ㄧ悆鏃犲咖錛屽啀涔熶笉鐢ㄤ負鍏戞崲澶栧竵鑰岃嫤鎮間簡銆
鍥涖佸氭柟鍏卞悓絳懼悕綆$悊璧勪駭
璺熷父瑙勭殑鏁板瓧閽卞寘涓嶅悓錛屽氶噸絳懼悕閽卞寘闇瑕佸氫釜瀵嗛掗鎸佹湁鑰呯殑鎺堟潈鎵嶈兘杞縐繪暟瀛楄揣甯侊紝鏁呭拰鏁伴挶鍖呯殑瀹夊叏鎬ф洿楂樸傛櫘閫氶挶鍖咃細A鎯寵漿緇橷涓涓姣旂壒甯侊紝A鍙闇瑕佽嚜宸辯殑絳懼悕錛堜嬌鐢ㄧ侀掗錛夊氨鍙浠ュ畬鎴愪氦鏄撱傚拰鏁伴挶鍖咃細A鎯寵漿緇橷涓涓姣旂壒甯侊紝璁劇疆浜嗕竴涓澶氶噸絳懼悕楠岃瘉錛圓BC3涓浜轟腑鑷沖皯闇瑕2涓浜虹懼悕鎵嶈兘杞璐︼級錛岄偅涔圓鎯崇粰X杞璐︾殑鏃跺欓渶瑕丅鎴朇涔熷畬鎴愮懼悕錛堜嬌鐢ㄧ侀掗錛夈傚笇鏈涘彲浠ュ府鍒版偍銆傝阿璋錛
㈦ 區塊鏈的共識機制
1. 網路上的交易信息如何確認並達成共識?
雖然經常提到共識機制,但是對於共識機制的含義和理解卻並清楚。因此需要就共識機制的相關概念原理和實現方法有所理解。
區塊鏈的交易信息是通過網路廣播傳輸到網路中各個節點的,在整個網路節點中如何對廣播的信息進行確認並達成共識 最終寫入區塊呢? 如果沒有相應的可靠安全的實現機制,那麼就難以實現其基本的功能,因此共識機制是整個網路運行下去的一個關鍵。
共識機制解決了區塊鏈如何在分布式場景下達成一致性的問題。區塊鏈能在眾多節點達到一種較為平衡的狀態也是因為共識機制。那麼共識機制是如何在在去中心化的思想上解決了節點間互相信任的問題呢?
當分布式的思想被提出來時,人們就開始根據FLP定理和CAP定理設計共識演算法。 規范的說,理想的分布式系統的一致性應該滿足以下三點:
1.可終止性(Termination):一致性的結果可在有限時間內完成。
2.共識性(Consensus):不同節點最終完成決策的結果應該相同。
3.合法性(Validity):決策的結果必須是其他進程提出的提案。
但是在實際的計算機集群中,可能會存在以下問題:
1.節點處理事務的能力不同,網路節點數據的吞吐量有差異
2.節點間通訊的信道可能不安全
3.可能會有作惡節點出現
4.當非同步處理能力達到高度一致時,系統的可擴展性就會變差(容不下新節點的加入)。
科學家認為,在分布式場景下達成 完全一致性 是不可能的。但是工程學家可以犧牲一部分代價來換取分布式場景的一致性,上述的兩大定理也是這種思想,所以基於區塊鏈設計的各種公式機制都可以看作犧牲那一部分代價來換取多適合的一致性,我的想法是可以在這種思想上進行一個靈活的變換,即在適當的時間空間犧牲一部分代價換取適應於當時場景的一致性,可以實現靈活的區塊鏈系統,即可插拔式的區塊鏈系統。今天就介紹一下我對各種共識機制的看法和分析,分布式系統中有無作惡節點分為拜占庭容錯和非拜占庭容錯機制。
FLP定理即FLP不可能性,它證明了在分布式情景下,無論任何演算法,即使是只有一個進程掛掉,對於其他非失敗進程,都存在著無法達成一致的可能。
FLP基於如下幾點假設:
僅可修改一次 : 每個進程初始時都記錄一個值(0或1)。進程可以接收消息、改動該值、並發送消息,當進程進入decide state時,其值就不再變化。所有非失敗進程都進入decided state時,協議成功結束。這里放寬到有一部分進程進入decided state就算協議成功。
非同步通信 : 與同步通信的最大區別是沒有時鍾、不能時間同步、不能使用超時、不能探測失敗、消息可任意延遲、消息可亂序。
通信健壯: 只要進程非失敗,消息雖會被無限延遲,但最終會被送達;並且消息僅會被送達一次(無重復)。
Fail-Stop 模型: 進程失敗如同宕機,不再處理任何消息。
失敗進程數量 : 最多一個進程失敗。
CAP是分布式系統、特別是分布式存儲領域中被討論最多的理論。CAP由Eric Brewer在2000年PODC會議上提出,是Eric Brewer在Inktomi期間研發搜索引擎、分布式web緩存時得出的關於數據一致性(consistency)、服務可用性(availability)、分區容錯性(partition-tolerance)的猜想:
數據一致性 (consistency):如果系統對一個寫操作返回成功,那麼之後的讀請求都必須讀到這個新數據;如果返回失敗,那麼所有讀操作都不能讀到這個數據,對調用者而言數據具有強一致性(strong consistency) (又叫原子性 atomic、線性一致性 linearizable consistency)[5]
服務可用性 (availability):所有讀寫請求在一定時間內得到響應,可終止、不會一直等待
分區容錯性 (partition-tolerance):在網路分區的情況下,被分隔的節點仍能正常對外服務
在某時刻如果滿足AP,分隔的節點同時對外服務但不能相互通信,將導致狀態不一致,即不能滿足C;如果滿足CP,網路分區的情況下為達成C,請求只能一直等待,即不滿足A;如果要滿足CA,在一定時間內要達到節點狀態一致,要求不能出現網路分區,則不能滿足P。
C、A、P三者最多隻能滿足其中兩個,和FLP定理一樣,CAP定理也指示了一個不可達的結果(impossibility result)。
㈧ 區塊鏈的共識機制
一、區塊鏈共識機制的目標
區塊鏈是什麼?簡單而言,區塊鏈是一種去中心化的資料庫,或可以叫作分布式賬本(distributed ledger)。傳統上所有的資料庫都是中心化的,例如一間銀行的賬本就儲存在銀行的中心伺服器里。中心化資料庫的弊端是數據的安全及正確性全系於資料庫運營方(即銀行),因為任何能夠訪問中心化資料庫的人(如銀行職員或黑客)都可以破壞或修改其中的數據。
而區塊鏈技術則容許資料庫存放在全球成千上萬的電腦上,每個人的賬本通過點對點網路進行同步,網路中任何用戶一旦增加一筆交易,交易信息將通過網路通知其他用戶驗證,記錄到各自的賬本中。區塊鏈之所以得其名是因為它是由一個個包含交易信息的區塊(block)從後向前有序鏈接起來的數據結構。
很多人對區塊鏈的疑問是,如果每一個用戶都擁有一個獨立的賬本,那麼是否意味著可以在自己的賬本上添加任意的交易信息,而成千上萬個賬本又如何保證記賬的一致性? 解決記賬一致性問題正是區塊鏈共識機制的目標 。區塊鏈共識機制旨在保證分布式系統里所有節點中的數據完全相同並且能夠對某個提案(proposal)(例如是一項交易紀錄)達成一致。然而分布式系統由於引入了多個節點,所以系統中會出現各種非常復雜的情況;隨著節點數量的增加,節點失效或故障、節點之間的網路通信受到干擾甚至阻斷等就變成了常見的問題,解決分布式系統中的各種邊界條件和意外情況也增加了解決分布式一致性問題的難度。
區塊鏈又可分為三種:
公有鏈:全世界任何人都可以隨時進入系統中讀取數據、發送可確認交易、競爭記賬的區塊鏈。公有鏈通常被認為是「完全去中心化「的,因為沒有任何人或機構可以控制或篡改其中數據的讀寫。公有鏈一般會通過代幣機制鼓勵參與者競爭記賬,來確保數據的安全性。
聯盟鏈:聯盟鏈是指有若干個機構共同參與管理的區塊鏈。每個機構都運行著一個或多個節點,其中的數據只允許系統內不同的機構進行讀寫和發送交易,並且共同來記錄交易數據。這類區塊鏈被認為是「部分去中心化」。
私有鏈:指其寫入許可權是由某個組織和機構控制的區塊鏈。參與節點的資格會被嚴格的限制,由於參與的節點是有限和可控的,因此私有鏈往往可以有極快的交易速度、更好的隱私保護、更低的交易成本、不容易被惡意攻擊、並且能夠做到身份認證等金融行業必須的要求。相比中心化資料庫,私有鏈能夠防止機構內單節點故意隱瞞或篡改數據。即使發生錯誤,也能夠迅速發現來源,因此許多大型金融機構在目前更加傾向於使用私有鏈技術。
二、區塊鏈共識機制的分類
解決分布式一致性問題的難度催生了數種共識機制,它們各有其優缺點,亦適用於不同的環境及問題。被眾人常識的共識機制有:
l PoW(Proof of Work)工作量證明機制
l PoS(Proof of Stake)股權/權益證明機制
l DPoS(Delegated Proof of Stake)股份授權證明機制
l PBFT(Practical Byzantine Fault Tolerance)實用拜占庭容錯演算法
l DBFT(Delegated Byzantine Fault Tolerance)授權拜占庭容錯演算法
l SCP (Stellar Consensus Protocol ) 恆星共識協議
l RPCA(Ripple Protocol Consensus Algorithm)Ripple共識演算法
l Pool驗證池共識機制
(一)PoW(Proof of Work)工作量證明機制
1. 基本介紹
在該機制中,網路上的每一個節點都在使用SHA256哈希函數(hash function) 運算一個不斷變化的區塊頭的哈希值 (hash sum)。 共識要求算出的值必須等於或小於某個給定的值。 在分布式網路中,所有的參與者都需要使用不同的隨機數來持續計算該哈希值,直至達到目標為止。當一個節點的算出確切的值,其他所有的節點必須相互確認該值的正確性。之後新區塊中的交易將被驗證以防欺詐。
在比特幣中,以上運算哈希值的節點被稱作「礦工」,而PoW的過程被稱為「挖礦」。挖礦是一個耗時的過程,所以也提出了相應的激勵機制(例如向礦工授予一小部分比特幣)。PoW的優點是完全的去中心化,其缺點是消耗大量算力造成了的資源浪費,達成共識的周期也比較長,共識效率低下,因此其不是很適合商業使用。
2. 加密貨幣的應用實例
比特幣(Bitcoin) 及萊特幣(Litecoin)。以太坊(Ethereum) 的前三個階段(Frontier前沿、Homestead家園、Metropolis大都會)皆採用PoW機制,其第四個階段 (Serenity寧靜) 將採用權益證明機制。PoW適用於公有鏈。
PoW機制雖然已經成功證明了其長期穩定和相對公平,但在現有框架下,採用PoW的「挖礦」形式,將消耗大量的能源。其消耗的能源只是不停的去做SHA256的運算來保證工作量公平,並沒有其他的存在意義。而目前BTC所能達到的交易效率為約5TPS(5筆/秒),以太坊目前受到單區塊GAS總額的上限,所能達到的交易頻率大約是25TPS,與平均千次每秒、峰值能達到萬次每秒處理效率的VISA和MASTERCARD相差甚遠。
3. 簡圖理解模式
(ps:其中A、B、C、D計算哈希值的過程即為「挖礦」,為了犒勞時間成本的付出,機制會以一定數量的比特幣作為激勵。)
(Ps:PoS模式下,你的「挖礦」收益正比於你的幣齡(幣的數量*天數),而與電腦的計算性能無關。我們可以認為任何具有概率性事件的累計都是工作量證明,如淘金。假設礦石含金量為p% 質量, 當你得到一定量黃金時,我們可以認為你一定挖掘了1/p 質量的礦石。而且得到的黃金數量越多,這個證明越可靠。)
(二)PoS(Proof of Stake)股權/權益證明機制
1.基本介紹
PoS要求人們證明貨幣數量的所有權,其相信擁有貨幣數量多的人攻擊網路的可能性低。基於賬戶余額的選擇是非常不公平的,因為單一最富有的人勢必在網路中佔主導地位,所以提出了許多解決方案。
在股權證明機制中,每當創建一個區塊時,礦工需要創建一個稱為「幣權」的交易,這個交易會按照一定比例預先將一些幣發給礦工。然後股權證明機制根據每個節點持有代幣的比例和時間(幣齡), 依據演算法等比例地降低節點的挖礦難度,以加快節點尋找隨機數的速度,縮短達成共識所需的時間。
與PoW相比,PoS可以節省更多的能源,更有效率。但是由於挖礦成本接近於0,因此可能會遭受攻擊。且PoS在本質上仍然需要網路中的節點進行挖礦運算,所以它同樣難以應用於商業領域。
2.數字貨幣的應用實例
PoS機制下較為成熟的數字貨幣是點點幣(Peercoin)和未來幣(NXT),相比於PoW,PoS機制節省了能源,引入了" 幣天 "這個概念來參與隨機運算。PoS機制能夠讓更多的持幣人參與到記賬這個工作中去,而不需要額外購買設備(礦機、顯卡等)。每個單位代幣的運算能力與其持有的時間長成正相關,即持有人持有的代幣數量越多、時間越長,其所能簽署、生產下一個區塊的概率越大。一旦其簽署了下一個區塊,持幣人持有的幣天即清零,重新進入新的循環。
PoS適用於公有鏈。
3.區塊簽署人的產生方式
在PoS機制下,因為區塊的簽署人由隨機產生,則一些持幣人會長期、大額持有代幣以獲得更大概率地產生區塊,盡可能多的去清零他的"幣天"。因此整個網路中的流通代幣會減少,從而不利於代幣在鏈上的流通,價格也更容易受到波動。由於可能會存在少量大戶持有整個網路中大多數代幣的情況,整個網路有可能會隨著運行時間的增長而越來越趨向於中心化。相對於PoW而言,PoS機制下作惡的成本很低,因此對於分叉或是雙重支付的攻擊,需要更多的機制來保證共識。穩定情況下,每秒大約能產生12筆交易,但因為網路延遲及共識問題,需要約60秒才能完整廣播共識區塊。長期來看,生成區塊(即清零"幣天")的速度遠低於網路傳播和廣播的速度,因此在PoS機制下需要對生成區塊進行"限速",來保證主網的穩定運行。
4.簡圖理解模式
(PS:擁有越多「股份」權益的人越容易獲取賬權。是指獲得多少貨幣,取決於你挖礦貢獻的工作量,電腦性能越好,分給你的礦就會越多。)
(在純POS體系中,如NXT,沒有挖礦過程,初始的股權分配已經固定,之後只是股權在交易者之中流轉,非常類似於現實世界的股票。)
(三)DPoS(Delegated Proof of Stake)股份授權證明機制
1.基本介紹
由於PoS的種種弊端,由此比特股首創的權益代表證明機制 DPoS(Delegated Proof of Stake)應運而生。DPoS 機制中的核心的要素是選舉,每個系統原生代幣的持有者在區塊鏈裡面都可以參與選舉,所持有的代幣余額即為投票權重。通過投票,股東可以選舉出理事會成員,也可以就關系平台發展方向的議題表明態度,這一切構成了社區自治的基礎。股東除了自己投票參與選舉外,還可以通過將自己的選舉票數授權給自己信任的其它賬戶來代表自己投票。
具體來說, DPoS由比特股(Bitshares)項目組發明。股權擁有著選舉他們的代表來進行區塊的生成和驗證。DPoS類似於現代企業董事會制度,比特股系統將代幣持有者稱為股東,由股東投票選出101名代表, 然後由這些代表負責生成和驗證區塊。 持幣者若想稱為一名代表,需先用自己的公鑰去區塊鏈注冊,獲得一個長度為32位的特有身份標識符,股東可以對這個標識符以交易的形式進行投票,得票數前101位被選為代表。
代表們輪流產生區塊,收益(交易手續費)平分。DPoS的優點在於大幅減少了參與區塊驗證和記賬的節點數量,從而縮短了共識驗證所需要的時間,大幅提高了交易效率。從某種角度來說,DPoS可以理解為多中心系統,兼具去中心化和中心化優勢。優點:大幅縮小參與驗證和記賬節點的數量,可以達到秒級的共識驗證。缺點:投票積極性不高,絕大部分代幣持有者未參與投票;另整個共識機制還是依賴於代幣,很多商業應用是不需要代幣存在的。
DPoS機制要求在產生下一個區塊之前,必須驗證上一個區塊已經被受信任節點所簽署。相比於PoS的" 全民挖礦 ",DPoS則是利用類似" 代表大會 "的制度來直接選取可信任節點,由這些可信任節點(即見證人)來代替其他持幣人行使權力,見證人節點要求長期在線,從而解決了因為PoS簽署區塊人不是經常在線而可能導致的產塊延誤等一系列問題。 DPoS機制通常能達到萬次每秒的交易速度,在網路延遲低的情況下可以達到十萬秒級別,非常適合企業級的應用。 因為公信寶數據交易所對於數據交易頻率要求高,更要求長期穩定性,因此DPoS是非常不錯的選擇。
2. 股份授權證明機制下的機構與系統
理事會是區塊鏈網路的權力機構,理事會的人選由系統股東(即持幣人)選舉產生,理事會成員有權發起議案和對議案進行投票表決。
理事會的重要職責之一是根據需要調整系統的可變參數,這些參數包括:
l 費用相關:各種交易類型的費率。
l 授權相關:對接入網路的第三方平台收費及補貼相關參數。
l 區塊生產相關:區塊生產間隔時間,區塊獎勵。
l 身份審核相關:審核驗證異常機構賬戶的信息情況。
l 同時,關繫到理事會利益的事項將不通過理事會設定。
在Finchain系統中,見證人負責收集網路運行時廣播出來的各種交易並打包到區塊中,其工作類似於比特幣網路中的礦工,在採用 PoW(工作量證明)的比特幣網路中,由一種獲獎概率取決於哈希算力的抽彩票方式來決定哪個礦工節點產生下一個區塊。而在採用 DPoS 機制的金融鏈網路中,通過理事會投票決定見證人的數量,由持幣人投票來決定見證人人選。入選的活躍見證人按順序打包交易並生產區塊,在每一輪區塊生產之後,見證人會在隨機洗牌決定新的順序後進入下一輪的區塊生產。
3. DPoS的應用實例
比特股(bitshares) 採用DPoS。DPoS主要適用於聯盟鏈。
4.簡圖理解模式
(四)PBFT(Practical Byzantine Fault Tolerance)實用拜占庭容錯演算法
1. 基本介紹
PBFT是一種基於嚴格數學證明的演算法,需要經過三個階段的信息交互和局部共識來達成最終的一致輸出。三個階段分別為預備 (pre-prepare)、准備 (prepare)、落實 (commit)。PBFT演算法證明系統中只要有2/3比例以上的正常節點,就能保證最終一定可以輸出一致的共識結果。換言之,在使用PBFT演算法的系統中,至多可以容忍不超過系統全部節點數量1/3的失效節點 (包括有意誤導、故意破壞系統、超時、重復發送消息、偽造簽名等的節點,又稱為」拜占庭」節點)。
2. PBFT的應用實例
著名聯盟鏈Hyperledger Fabric v0.6採用的是PBFT,v1.0又推出PBFT的改進版本SBFT。PBFT主要適用於私有鏈和聯盟鏈。
3. 簡圖理解模式
上圖顯示了一個簡化的PBFT的協議通信模式,其中C為客戶端,0 – 3表示服務節點,其中0為主節點,3為故障節點。整個協議的基本過程如下:
(1) 客戶端發送請求,激活主節點的服務操作;
(2) 當主節點接收請求後,啟動三階段的協議以向各從節點廣播請求;
(a) 序號分配階段,主節點給請求賦值一個序號n,廣播序號分配消息和客戶端的請求消息m,並將構造pre-prepare消息給各從節點;
(b) 交互階段,從節點接收pre-prepare消息,向其他服務節點廣播prepare消息;
(c) 序號確認階段,各節點對視圖內的請求和次序進行驗證後,廣播commit消息,執行收到的客戶端的請求並給客戶端響應。
(3) 客戶端等待來自不同節點的響應,若有m+1個響應相同,則該響應即為運算的結果;
(五)DBFT(Delegated Byzantine Fault Tolerance)授權拜占庭容錯演算法
1. 基本介紹
DBFT建基於PBFT的基礎上,在這個機制當中,存在兩種參與者,一種是專業記賬的「超級節點」,一種是系統當中不參與記賬的普通用戶。普通用戶基於持有權益的比例來投票選出超級節點,當需要通過一項共識(記賬)時,在這些超級節點中隨機推選出一名發言人擬定方案,然後由其他超級節點根據拜占庭容錯演算法(見上文),即少數服從多數的原則進行表態。如果超過2/3的超級節點表示同意發言人方案,則共識達成。這個提案就成為最終發布的區塊,並且該區塊是不可逆的,所有裡面的交易都是百分之百確認的。如果在一定時間內還未達成一致的提案,或者發現有非法交易的話,可以由其他超級節點重新發起提案,重復投票過程,直至達成共識。
2. DBFT的應用實例
國內加密貨幣及區塊鏈平台NEO是 DBFT演算法的研發者及採用者。
3. 簡圖理解模式
假設系統中只有四個由普通用戶投票選出的超級節點,當需要通過一項共識時,系統就會從代表中隨機選出一名發言人擬定方案。發言人會將擬好的方案交給每位代表,每位代表先判斷發言人的計算結果與它們自身紀錄的是否一致,再與其它代表商討驗證計算結果是否正確。如果2/3的代表一致表示發言人方案的計算結果是正確的,那麼方案就此通過。
如果只有不到2/3的代表達成共識,將隨機選出一名新的發言人,再重復上述流程。這個體系旨在保護系統不受無法行使職能的領袖影響。
上圖假設全體節點都是誠實的,達成100%共識,將對方案A(區塊)進行驗證。
鑒於發言人是隨機選出的一名代表,因此他可能會不誠實或出現故障。上圖假設發言人給3名代表中的2名發送了惡意信息(方案B),同時給1名代表發送了正確信息(方案A)。
在這種情況下該惡意信息(方案B)無法通過。中間與右邊的代表自身的計算結果與發言人發送的不一致,因此就不能驗證發言人擬定的方案,導致2人拒絕通過方案。左邊的代表因接收了正確信息,與自身的計算結果相符,因此能確認方案,繼而成功完成1次驗證。但本方案仍無法通過,因為不足2/3的代表達成共識。接著將隨機選出一名新發言人,重新開始共識流程。
上圖假設發言人是誠實的,但其中1名代表出現了異常;右邊的代表向其他代表發送了不正確的信息(B)。
在這種情況下發言人擬定的正確信息(A)依然可以獲得驗證,因為左邊與中間誠實的代表都可以驗證由誠實的發言人擬定的方案,達成2/3的共識。代表也可以判斷到底是發言人向右邊的節點說謊還是右邊的節點不誠實。
(六)SCP (Stellar Consensus Protocol ) 恆星共識協議
1. 基本介紹
SCP 是 Stellar (一種基於互聯網的去中心化全球支付協議) 研發及使用的共識演算法,其建基於聯邦拜占庭協議 (Federated Byzantine Agreement) 。傳統的非聯邦拜占庭協議(如上文的PBFT和DBFT)雖然確保可以通過分布式的方法達成共識,並達到拜占庭容錯 (至多可以容忍不超過系統全部節點數量1/3的失效節點),它是一個中心化的系統 — 網路中節點的數量和身份必須提前知曉且驗證過。而聯邦拜占庭協議的不同之處在於它能夠去中心化的同時,又可以做到拜占庭容錯。
[…]
(七)RPCA(Ripple Protocol Consensus Algorithm)Ripple共識演算法
1. 基本介紹
RPCA是Ripple(一種基於互聯網的開源支付協議,可以實現去中心化的貨幣兌換、支付與清算功能)研發及使用的共識演算法。在 Ripple 的網路中,交易由客戶端(應用)發起,經過追蹤節點(tracking node)或驗證節點(validating node)把交易廣播到整個網路中。追蹤節點的主要功能是分發交易信息以及響應客戶端的賬本請求。驗證節點除包含追蹤節點的所有功能外,還能夠通過共識協議,在賬本中增加新的賬本實例數據。
Ripple 的共識達成發生在驗證節點之間,每個驗證節點都預先配置了一份可信任節點名單,稱為 UNL(Unique Node List)。在名單上的節點可對交易達成進行投票。共識過程如下:
(1) 每個驗證節點會不斷收到從網路發送過來的交易,通過與本地賬本數據驗證後,不合法的交易直接丟棄,合法的交易將匯總成交易候選集(candidate set)。交易候選集裡面還包括之前共識過程無法確認而遺留下來的交易。
(2) 每個驗證節點把自己的交易候選集作為提案發送給其他驗證節點。
(3) 驗證節點在收到其他節點發來的提案後,如果不是來自UNL上的節點,則忽略該提案;如果是來自UNL上的節點,就會對比提案中的交易和本地的交易候選集,如果有相同的交易,該交易就獲得一票。在一定時間內,當交易獲得超過50%的票數時,則該交易進入下一輪。沒有超過50%的交易,將留待下一次共識過程去確認。
(4) 驗證節點把超過50%票數的交易作為提案發給其他節點,同時提高所需票數的閾值到60%,重復步驟(3)、步驟(4),直到閾值達到80%。
(5) 驗證節點把經過80%UNL節點確認的交易正式寫入本地的賬本數據中,稱為最後關閉賬本(last closed ledger),即賬本最後(最新)的狀態。
在Ripple的共識演算法中,參與投票節點的身份是事先知道的,因此,演算法的效率比PoW等匿名共識演算法要高效,交易的確認時間只需幾秒鍾。這點也決定了該共識演算法只適合於聯盟鏈或私有鏈。Ripple共識演算法的拜占庭容錯(BFT)能力為(n-1)/5,即可以容忍整個網路中20%的節點出現拜占庭錯誤而不影響正確的共識。
2. 簡圖理解模式
共識過程節點交互示意圖:
共識演算法流程:
(八)POOL驗證池共識機制
Pool驗證池共識機制是基於傳統的分布式一致性演算法(Paxos和Raft)的基礎上開發的機制。Paxos演算法是1990年提出的一種基於消息傳遞且具有高度容錯特性的一致性演算法。過去, Paxos一直是分布式協議的標准,但是Paxos難於理解,更難以實現。Raft則是在2013年發布的一個比Paxos簡單又能實現Paxos所解決問題的一致性演算法。Paxos和Raft達成共識的過程皆如同選舉一樣,參選者需要說服大多數選民(伺服器)投票給他,一旦選定後就跟隨其操作。Paxos和Raft的區別在於選舉的具體過程不同。而Pool驗證池共識機制即是在這兩種成熟的分布式一致性演算法的基礎上,輔之以數據驗證的機制。
㈨ 區塊鏈的共識機制是什麼
如何讓去中心化網路達成共識?
在區塊鏈系統當中,沒有一個像銀行一樣的中心化記賬機構,保證每一筆交易在所有記賬節點上的一致性,即讓全網達成共識至關重要。共識機制解決的就是這個問題。
目前主要的共識機制有工作量證明機制PoW和權益證明機制PoS。
PoW通過評估你的工作量來決定你獲得記賬權的機率,工作量越大,就越有可能獲得此次記賬機會。
PoS通過評估你持有代幣的數量和時長來決定你獲得記賬權的機率。這就類似於股票的分紅制度,持有股權相對多的人能夠獲得更多的分紅。
DPOS與POS原理相似,只是選了一些「人大代表」。 與PoS的主要區別在於節點選舉若干代理人,由代理人驗證和記賬。
隨著技術的發展,未來可能還會誕生更先進的共識機制。