閑來無聊碎连,就把精通比特幣又看了一遍灰羽,上次讀還是在今天1月份的時(shí)候,也是快要放假的時(shí)候鱼辙,當(dāng)時(shí)說實(shí)話絕大多數(shù)都沒有看懂廉嚼,但是還是硬著頭皮看完了。現(xiàn)在再看一遍倒戏,也是對這半個(gè)學(xué)期的學(xué)習(xí)的一個(gè)檢驗(yàn)怠噪,也是對目前學(xué)習(xí)公鏈開發(fā)進(jìn)行一個(gè)思路整理《捧危看完之后傍念,發(fā)現(xiàn)竟然全部能看懂了,也是很興奮葱椭,這半個(gè)學(xué)期的努力還是有回報(bào)的捂寿。下面我就簡單介紹下比特幣的基本原理,以及比特幣和區(qū)塊鏈的關(guān)系等孵运,來幫助更多的人入門區(qū)塊鏈秦陋,當(dāng)做這個(gè)時(shí)代的弄潮兒,高手勿噴哈治笨!
先來說說什么是區(qū)塊鏈驳概,區(qū)塊鏈就是一個(gè)分布式的賬本赤嚼,區(qū)塊鏈網(wǎng)絡(luò)上有很多節(jié)點(diǎn),每個(gè)人都有一份一模一樣的賬本信息顺又,這個(gè)信息是通過共識機(jī)制來保證一致性的更卒。舉個(gè)例子,比如小明向我借了1000元稚照,只是口頭上的蹂空,當(dāng)我向小明討債時(shí),他就抵賴果录,這時(shí)候我也沒有辦法去拿回這筆錢上枕。但是當(dāng)小明向我借1000元時(shí),旁邊有小紅弱恒、小王辨萍、小張,他們都有一個(gè)小本子返弹,都記下了小明向我借1000元這件事情锈玉,當(dāng)我再去向小明討債時(shí),他就沒辦法抵賴了义起,這里的這個(gè)本子就相當(dāng)于區(qū)塊鏈了拉背,記錄了整個(gè)網(wǎng)絡(luò)中所有的信息。還有一種情況是并扇,小明向我借了1000元去团,在一個(gè)月之后還錢抡诞,當(dāng)不按時(shí)還錢時(shí)穷蛹,可以將其其他財(cái)產(chǎn)歸到我名下,將這件事件可以寫成一個(gè)智能合約昼汗,運(yùn)行在區(qū)塊鏈上肴熏,就可以確保小明不會再去抵賴了,也確保了我的利益顷窒。至于智能合約是什么蛙吏,簡單來說就是一段代碼,定義了系列規(guī)則鞋吉,當(dāng)觸發(fā)某個(gè)條件時(shí)鸦做,會自動執(zhí)行一些規(guī)則。但是比特幣是非圖靈完備的谓着,只能編寫簡單的腳步泼诱,對于以太坊就是圖靈完備的,采用了一種Solidity的編程語言赊锚。
再解釋一下區(qū)塊鏈和比特幣的關(guān)系治筒,兩者并不相等屉栓。區(qū)塊鏈?zhǔn)潜忍貛诺讓蛹夹g(shù),區(qū)塊鏈一般來說包括網(wǎng)絡(luò)層耸袜、共識層友多、激勵層、應(yīng)用層堤框,比特幣可以說是應(yīng)用層上的域滥。區(qū)塊鏈這個(gè)詞是技術(shù)人員從比特幣的白皮書中提取出來的,比特幣只是區(qū)塊鏈的一個(gè)應(yīng)用蜈抓,還有以太坊骗绕、EOS、Ripple等等很多资昧。
我們就來看看一筆交易酬土,比如Alice向Bob轉(zhuǎn)賬1個(gè)比特幣,在比特幣網(wǎng)絡(luò)上是如何產(chǎn)生格带、流通到最后被記錄到區(qū)塊鏈中的撤缴,我簡化了其中的過程,就是讓新手對整個(gè)交易過程有個(gè)大致的了解叽唱。
Alice首先會有自己的比特幣錢包屈呕,錢包是干嘛用的呢?就是用來管理地址棺亭、創(chuàng)建交易虎眨、對交易進(jìn)行簽名的。首先Alice在錢包中輸入轉(zhuǎn)賬的金額1BTC镶摘,Bob的比特幣地址(20字節(jié))嗽桩。
這里出現(xiàn)了比特幣地址就來談?wù)劚忍貛诺刂罚@里需要具備一些密碼學(xué)知識凄敢,非對稱加密碌冶、哈希算法,橢圓曲線加密涝缝,我就不在這里說了扑庞,Google上有很多介紹。比特幣錢包根據(jù)系統(tǒng)自帶的生成隨機(jī)數(shù)工具生成一個(gè)隨機(jī)數(shù)拒逮,對其使用SHA256哈希算法罐氨,就會產(chǎn)生一個(gè)256位的數(shù)字,這個(gè)就是私鑰滩援,私鑰是非常重要的栅隐,是你擁有這筆比特幣的唯一憑證。再對私鑰進(jìn)行橢圓曲線加密得到公鑰,再對公鑰進(jìn)行SHA256约啊、RIPEMD160邑遏、Base58Check編碼,就得到了我們常見的比特幣地址恰矩。
接下來錢包就創(chuàng)建了一個(gè)交易记盒,發(fā)送給自己相連接的節(jié)點(diǎn),節(jié)點(diǎn)首先會驗(yàn)證這筆交易外傅,驗(yàn)證成功纪吮,這個(gè)節(jié)點(diǎn)再發(fā)送到其相連接的節(jié)點(diǎn),很快這筆交易被傳播到了整個(gè)比特幣網(wǎng)絡(luò)中萎胰。在比特幣網(wǎng)絡(luò)中有一群人是專門收集這些交易碾盟,然后對一個(gè)復(fù)雜的數(shù)學(xué)問題進(jìn)行計(jì)算,當(dāng)計(jì)算出這個(gè)數(shù)學(xué)問題的答案技竟,就會把這些交易打包起來冰肴,然后發(fā)送到網(wǎng)絡(luò)中,其他節(jié)點(diǎn)進(jìn)行驗(yàn)證榔组,驗(yàn)證成功熙尉,則這些交易就相當(dāng)于被比特幣網(wǎng)絡(luò)確認(rèn)過了。這個(gè)過程就是挖礦的過程搓扯,打包的交易是進(jìn)入?yún)^(qū)塊里面检痰,被網(wǎng)絡(luò)確認(rèn)過就被連接到了比特幣的區(qū)塊鏈上,得出復(fù)雜數(shù)學(xué)問題的答案的那個(gè)人就會得到比特幣獎勵锨推。
差不多一筆交易就是這個(gè)流程铅歼,當(dāng)然忽略了很多細(xì)節(jié)方面的東西,比如比特幣是基于UTXO模型换可,而不是賬戶模型椎椰,交易的各種類型等等,大家有興趣可以去看看精通比特幣這本書锦担。