簡介
區塊鏈是一種防篡改的共享數字分布式賬本,可記錄公共或私有對等網絡中的交易。分布式賬本分布到網絡中的所有成員節點,以加密散列鏈接的塊的順序鏈,永久記錄網絡中對等點之間發生的資產交換的歷史記錄。
區塊鏈的廣為人知是從比特幣開始的,但是區塊鏈不是比特幣,區塊鏈只是比特幣底層的技術基礎。比特幣可以看做是區塊鏈的副產品。
本文不介紹炒幣,幣圈有風險,炒幣需謹慎。
更多內容請訪問www.flydean.com
我覺得做技術的還是要靜下心來,專心的搞搞技術,閑看庭前花開花落,漫隨天外雲卷雲舒!
如果你非要問我對幣圈的看法,個人覺得當你看完我的所有文章之后,就會發現其實虛擬貨幣就是那么回事,它只是一堆數字,你認為它有價值它就有價值,你覺得它沒用它就是一堆空氣而已。
其實區塊鏈的底層技術並不復雜,也不是什么新的技術,但是當這么多技術匯集在一起,就產生了強大的催化效應,於是區塊鏈誕生了。
區塊鏈中最重要的技術組成部分就是密碼學和分布式系統,通過在分布式系統使用共識機制和智能合約,最后產生了強大的區塊鏈系統。
總結:區塊鏈的本質就是記賬!
什么是區塊鏈
有同學會問了,講了這么多還是不明白什么是區塊鏈呀,接下來我們用一個例子來生動形象的說明,本例子純屬虛構,如有雷同實屬巧合:
話說一年一度的華山論劍又要到了,東邪,西毒,南帝,北丐,中神通外加新晉新秀郭小俠六個人又准備在華山山頂大塊肉,大口酒的瀟灑走一回了。
那么問題來了,吃肉喝酒是要經費的,六人商議決定每人交500文錢作為這次活動的經費。為了方便管理經費的使用情況,他們選擇了憨厚老實的郭小俠作為本次活動的記賬人,由郭小俠全權負責維護賬本的記錄情況。
這就是現在的集中式賬本系統,一切郭小俠一個人說了算,雖然郭小俠老實可靠,但總好像缺了點什么。
又到了月度回顧的時間了,郭小俠把這個月的消費記錄列了出來,發給大家。西毒看了賬單有異議了,因為賬單記錄了西毒出入易翠閣一次花費20文。西毒說他沒有去過,但是賬單如此,還是從他的賬戶中扣除了20文。
西毒覺得肯定是郭小俠想害他,故意弄錯了賬本記錄,但是他又沒有證據,只好求救於郭小俠的老婆黃小蓉。
黃小蓉想了想,找到了一個解決辦法,那這樣吧,六個人每個人保留一個賬本,只要有人消費了,都要通知其他的人,大家一起記賬,這樣就不存在一個人記賬中可能出現的篡改記錄的問題了。這就叫做分布式賬本,因為賬本是一塊記錄接着一塊記錄,按照時間來排序的,因此也稱為區塊鏈。
過了一段時間,問題又出現了,因為大家都覺得會有人來記賬,然后大家都沒有記賬,導致有些記錄丟失了。黃小蓉又想出來一個辦法,首先記賬的人可以得到1文錢的獎勵,通過這樣的獎勵機制,來鼓勵大家記賬,這個機制就叫做挖礦。
為了保證賬本中記的賬目都是真真的切切實實的這六大高手的花費,黃小蓉給他們分別分配了一個暗號,通過這個暗號就可以驗證消費是不是出自他們之手。這就叫做區塊鏈中的密碼學。
然而,問題還沒完,如果有多個人同時記賬,而記得賬目又不同,就導致了分布式賬本中數據不一致的問題,而解決這個問題的方法就叫做共識機制。共識機制有很多種,比如誰記得又快又多就用誰的,這種共識機制叫做POW。又比如按誰剩余的錢最多,就選誰來記賬,這叫做POS。
六人覺得,如果記賬記到第一百筆的時候,需要慶祝一下,去買個烤羊排啥的。大家把這個邏輯也寫在賬本中,這叫做智能合約。
西毒有一天想把自己的賬本歷史記錄修改一下,但是其他的五個人不同意,這就叫做防篡改機制。
如果把這個鏈的記賬權限擴展到整個武林,誰都可以來參與記賬,這叫做公鏈。
如果只能這六個人記賬,就叫做私鏈。
郭小俠的師傅江南七俠聽聞也建了一個鏈,想跟五絕的鏈打通,這就叫做跨鏈操作。
西毒昭告天下說,他要邀請天下好友建一個公鏈,說這個鏈有多么多么有前途,這叫做背書。
西毒說,在這個公鏈上挖礦,所得的獎勵是一片樹葉(附帶我的親筆簽名),這些樹葉非常有價值,並且上限1000枚,挖完就沒有了。這就叫做發幣。
但是西毒的鏈還沒有正式建好,就開始預售樹葉了,這叫做ICO。
看到大佬都在發幣,裘千尺也發幣了,西毒大佬看不起裘千尺,把他的幣叫做山寨幣。
於是大家都開始賣樹葉...沒人做實事了,最后ICO拿到了真金白銀跑路了。
例子就講這么多,如果還有人不明白區塊鏈到底是啥,請關注我,私信我!我手把手教你,不教到會誓不罷休。
區塊鏈不是什么
大家記住我的話,區塊鏈的本質只是一個分布式賬本,用來存儲數據用的,如果講得更高級一點,可能里面還包含有智能合約,就是在某個條件下會觸發某些記錄的更改操作。
它跟數據庫沒有什么本質的區別,記賬記賬記賬才是區塊鏈的真正作用。
區塊鏈不是銀彈,它只是一個記賬的手段。所以后面你看到那些山寨幣把自己的項目誇上天的那種,就要考慮考慮風險了。
什么納米幣,太空幣等等,你換一種方式記賬就能改造納米技術,讓衛星上天了?
更有甚者,覺得用了區塊鏈就改變了社會秩序和規則?什么鬼?
區塊鏈的基礎:密碼學
密碼學是區塊鏈的基礎中的基礎,沒有密碼學就沒有區塊鏈。
密碼學是區塊鏈世界中的安全保證。如何防范密鑰丟失,如何保證交易的安全,如何驗證交易的正確性等等都是密碼學要做的事情。
下面是我總結的關於密碼學的文章:
- 一致性hash算法
- 女巫攻擊及其防范
- HMAC算法及其應用
- MAC攻擊及缺陷
- 一次性密碼本-絕對不會被破譯的密碼
- DES算法
- AES算法
- 分組密碼與模式
- 公鑰私鑰
- RSA算法詳解
- 中間人攻擊
- 混合密碼系統
- 單向散列函數
- 數字簽名
- 一文讀懂密碼學中的證書
- 密鑰詳解
- 更加安全的密鑰生成方法Diffie-Hellman
- 基於口令的密碼(PBE)
- 一篇文章讓你徹底弄懂SSL/TLS協議
區塊鏈的基礎:分布式系統和共識機制
如果說密碼學是區塊鏈的鑰匙的話,那么分布式系統就是區塊鏈的基石,而共識機制就是保證區塊鏈基石穩定性的混凝土。
下面是有關分布式系統和共識機制的文章:
- 理解分布式一致性:Raft協議
- 理解分布式一致性:Paxos協議之Basic Paxos
- 理解分布式一致性:Paxos協議之Multi-Paxos
- 理解分布式一致性:Paxos協議之Cheap Paxos & Fast Paxos
- 理解分布式一致性:Paxos協議之Generalized Paxos & Byzantine Paxos
- 理解分布式一致性:拜占庭容錯與PBFT
超級賬本Hyperledger
Hyperledger是一項開源工作,旨在推動跨行業的區塊鏈技術供企業使用。這是由LinuxFoundation®主持的全球合作,其中包括金融,銀行,物聯網,供應鏈,制造和技術領域的領導者。這183個不同的成員和9個正在進行的項目(包括Hyperledger Fabric)協同工作,以創建一個開放的,標准化的企業級分布式分布式賬本框架和代碼庫。
Hyperledger其實是由很多各項目構成的,他們
Hyperledger Fabric框架在許可的網絡上支持分布式分布式賬本解決方案,成員之間彼此了解,適用於廣泛的行業。它的模塊化架構最大程度地提高了區塊鏈解決方案的機密性,彈性和靈活性。
下面是有關超級賬本的文章:
- 分布式賬本簡介
- Hyperledger Fabric基礎知識
- Fabric的6大特性
- 使用IBM Blockchain Platform extension開發你的第一個fabric智能合約
- 在IBM Cloud中運行Fabric
- 使用VSCode連接到IBM Cloud區塊鏈網絡
以太坊
以太坊是由程序員Vitalik Buterin在比特幣的基礎上開發出來的一套公鏈平台。它被稱為第二代加密貨幣與去中心化應用平台。
以太坊創造性的提出了智能合約的概念,擴充和豐富了人們的想象。
有了智能合約,以太坊也就插上了騰飛的翅膀,各種Dapp應運而生,而以太坊最最有名的就是做ICO發代幣了。
為什么會有這么多人在以太坊上發代幣呢?因為在以太坊上發代幣實在是太簡單了。
有多簡單呢?如果說不會寫程序的人都能發代幣好像還不能夠,不足以體現以太坊發代幣的簡單之處。那么這樣說吧:大媽都會發代幣你就懂了。
自己定義一個代幣的總個數,比如1000000000000億個。小手鼠標一點就創建好了。
接下來的套路就是建官網,建論壇,拉人氣,找人背書,吹一下這個項目如何如何厲害,如何如何有前景。接着就可以ICO了。
我還記得曾經看過的一個項目,具體名字不記得了,好像是叫做太空幣,那搞得一個高大上,貌似有了這個幣,就可以進行太空旅行,遨游太空的感覺。
不知道為什么還有那么多人相信!
吐槽了半天,這里想說的是以太坊真的是繼比特幣之后對於區塊鏈的又一大力作,尤其是其中的智能合約的概念更是應用廣泛。
下面是我寫的關於以太坊的文章,目前數目還不多,后續我會補充:
Libra
Libra是facebook發起的一個區塊鏈項目,其使命是建立一套簡單的、無國界的貨幣和為數十億人服務的金融基礎設施。
facebook認為傳統的金融服務離窮人太遠,並且被收取各種不菲且難以預測的費用。全球仍有17億成年人從來沒有接觸過金融系統,雖然他們中的10億人擁有手機,其中的5億人可以上網。
facebook希望借助與區塊鏈的獨特的金融特性來實現普惠金融的目標。
facebook希望借此創建一個開放、即時和低成本的全球性貨幣和金融基礎設施。兩者結合起來實現”貨幣互聯網“。
其實Libra的具體實現離區塊鏈的去中心化,匿名性和開放性還是有一定的距離的,所以Libra不能稱作為一個純粹的區塊鏈。
下面是我整理的關於Libra的文章:
- Libra白皮書解讀
- Libra教程之:Libra協議的關鍵概念
- Libra教程之:Transaction的生命周期
- Libra教程之:Libra testnet使用指南
- Libra教程之:來了,你最愛的Move語言
- Libra教程之:運行自定義move modules
- Libra教程之:Libra protocol的邏輯數據模型
- Libra教程之:執行Transactions
- Libra教程之:數據結構和存儲
- Libra教程之:move語言的特點和例子
比特幣
比特幣是區塊鏈的第一個應用,也是最成功的一個應用,通過比特幣我們才開始了解區塊鏈。
這一塊的內容等我后續補充。
總結
本文是區塊鏈的集合文章,會持續進行更新,希望大家能夠喜歡。有需要的同學可以關注並留言,我會盡量回復,謝謝!
本文鏈接:http://www.flydean.com/blockchain/
最通俗的解讀,最深刻的干貨,最簡潔的教程,眾多你不知道的小技巧等你來發現!
歡迎關注我的公眾號:「程序那些事」,懂技術,更懂你!