要想了解bitcoin的技術(shù)原理,首先需要了解兩個(gè)重要的密碼技術(shù): HASH碼:將一個(gè)長(zhǎng)字符串轉(zhuǎn)換成固定長(zhǎng)度的字符串,并且其轉(zhuǎn)換不可逆,即不太可能從HASH碼猜出原字符串.bitcoin協(xié)議里使用的主要是SHA256.
公鑰體系:對(duì)應(yīng)一個(gè)公鑰和私鑰,在應(yīng)用中自己保留私鑰,并公開(kāi)公鑰.當(dāng)甲向乙傳遞信息時(shí),可使用甲的私鑰加密信息,乙可用甲的公鑰進(jìn)行解密,這樣可確保第三方無(wú)法冒充甲發(fā)送信息;同時(shí),甲向乙傳遞信息時(shí),用乙的公鑰加密后發(fā)給乙,乙再用自己的私鑰進(jìn)行解密,這樣可確保第三者無(wú)法偷聽(tīng)兩人之間的通信.最常見(jiàn)的公鑰體系為RSA,但bitcoin協(xié)議里使用的是lliptic Curve Digital Signature Algorithm. 和現(xiàn)金、銀行賬戶的區(qū)別? bitcoin為電子貨幣,單位為BTC.在這篇文章里也用來(lái)指代整個(gè)bitcoin系統(tǒng). 和在銀行開(kāi)立賬戶一樣,bitcoin里的對(duì)應(yīng)概念為地址.每個(gè)人都可以有1個(gè)或若干個(gè)bitcoin地址,該地址用來(lái)付賬和收錢.每個(gè)地址都是一串以1開(kāi)頭的字符串,比如我有兩個(gè)bitcoin賬戶,1911HhKdLbnsffT5cRSiHgK3mdzMiyspXf和1JSUzrzMk7f6iymfVkvqLBJDBZXBopyfZK.一個(gè)bitcoin賬戶由一對(duì)公鑰和私鑰唯一確定,要保存賬戶,只需要保存好私鑰文件即可. 和銀行賬戶不一樣的地方在于,銀行會(huì)保存所有的交易記錄和維護(hù)各個(gè)賬戶的賬面余額,而bitcoin的交易記錄則由整個(gè)P2P網(wǎng)絡(luò)通過(guò)事先約定的協(xié)議共同維護(hù). 我的賬戶地址里到底有多少錢? 雖然使用bitcoin的軟件可以看到當(dāng)前賬戶的余額,但和銀行不一樣,并沒(méi)有一個(gè)地方維護(hù)每個(gè)地址的賬面余額.它只能通過(guò)所有歷史交易記錄去實(shí)時(shí)推算賬戶余額. 我如何付賬? 當(dāng)我從地址A向?qū)Ψ降牡刂稡付賬時(shí),付賬額為e,此時(shí)雙方將向各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)公告交易信息,告訴地址A向地址B付賬,付賬額為e.為了防止有第三方偽造該交易信息,該交易信息將使用地址A的私鑰進(jìn)行加密,此時(shí)接受到該交易信息的網(wǎng)絡(luò)節(jié)點(diǎn)可以使用地址A的公鑰進(jìn)行驗(yàn)證該交易信息的確由A發(fā)出.當(dāng)然交易軟件會(huì)幫我們做這些事情,我們只需要在軟件中輸入相關(guān)參數(shù)即可. 網(wǎng)絡(luò)節(jié)點(diǎn)后收到交易信息后會(huì)做什么? 這個(gè)是整個(gè)bitcoin系統(tǒng)里最重要的部分,需要詳細(xì)闡述.為了簡(jiǎn)單起見(jiàn),這里只使用目前已經(jīng)實(shí)現(xiàn)的bitcoin協(xié)議,在當(dāng)前版本中,每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)都會(huì)通過(guò)同步保存所有的交易信息. 歷史上發(fā)生過(guò)的所有交易信息分為兩類,一類為"驗(yàn)證過(guò)"的交易信息,即已經(jīng)被驗(yàn)證過(guò)的交易信息,它保存在一連串的“blocks”里面.每個(gè)"block"的信息為前一個(gè)"bock"的ID(每個(gè)block的ID為該block的HASH碼的HASH碼)和新增的交易信息(參見(jiàn)一個(gè)實(shí)際的block).另外一類指那些還"未驗(yàn)證"的交易信息,上面剛剛付賬的交易信息就屬于此類. 當(dāng)一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)接收到新的未驗(yàn)證的交易信息之后(可能不止一條),由于該節(jié)點(diǎn)保存了歷史上所有的交易信息,它可以推算中在當(dāng)時(shí)每個(gè)地址的賬面余額,從而可以推算出該交易信息是否有效,即付款的賬戶里是否有足夠余額.在剔除掉無(wú)效的交易信息后,它首先取出最后一個(gè)"block"的ID,然后將這些未驗(yàn)證的交易信息和該ID組合在一起,再加上一個(gè)驗(yàn)證碼,形成一個(gè)新的“block”. 上面構(gòu)建一個(gè)新的block需要大量的計(jì)算工作,因?yàn)樗枰?jì)算驗(yàn)證碼,使得上面的組合成為一個(gè)block,即該block的HASH碼的HASH碼的前若干位為1.目前需要前13位為1(大致如此,不確定具體方式),此意味著如果通過(guò)枚舉法生成block的話,平均枚舉次數(shù)為16^13次.使用CPU資源生成block被稱為“挖金礦”,因?yàn)樯a(chǎn)該block將得到一定的獎(jiǎng)勵(lì),該獎(jiǎng)勵(lì)信息已經(jīng)被包含在這個(gè)block里面. 當(dāng)一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)生成一個(gè)新的block時(shí),它將廣播給其它的網(wǎng)絡(luò)節(jié)點(diǎn).但這個(gè)網(wǎng)絡(luò)block并不一定會(huì)被網(wǎng)絡(luò)接受,因?yàn)橛锌赡苡袆e的網(wǎng)絡(luò)節(jié)點(diǎn)更早生產(chǎn)出了block,只有最早產(chǎn)生的那個(gè)block或者后續(xù)block最多的那個(gè)block有效,其余block不再作為下一個(gè)block的初始block. 對(duì)方如何確認(rèn)支付成功? 當(dāng)該筆支付信息分發(fā)到網(wǎng)絡(luò)節(jié)點(diǎn)后,網(wǎng)絡(luò)節(jié)點(diǎn)開(kāi)始計(jì)算該交易是否有效(即賬戶余額是否足夠支付),并試圖生成包含該筆交易信息的blocks.當(dāng)累計(jì)有6個(gè)blocks(1個(gè)直接blocks和5個(gè)后續(xù)blocks)包含該筆交易信息時(shí),該交易信息被認(rèn)為“驗(yàn)證過(guò)”,從而該交易被正式確認(rèn),對(duì)方可確認(rèn)支付成功. 一個(gè)可能的問(wèn)題為,我將地址A里面的余額都支付給地址B,同時(shí)又支付給地址C,如果只驗(yàn)證單比交易都是有效的.此時(shí),我的作弊的方式為在真相大白之前產(chǎn)生6個(gè)僅包括B的block發(fā)給B,以及產(chǎn)生6個(gè)僅包含C的block發(fā)給C.由于我產(chǎn)生block所需要的CPU時(shí)間非常長(zhǎng),與全網(wǎng)絡(luò)相比,我這樣作弊成功的概率微乎其微. 網(wǎng)絡(luò)節(jié)點(diǎn)生產(chǎn)block的動(dòng)機(jī)是什么? 從上面描述可以看出,為了讓交易信息有效,需要網(wǎng)絡(luò)節(jié)點(diǎn)生成1個(gè)和5個(gè)后續(xù)block包含該交易信息,并且這樣的block生成非常耗費(fèi)CPU.那怎么樣讓其它網(wǎng)絡(luò)節(jié)點(diǎn)盡快幫忙生產(chǎn)block呢?答案很簡(jiǎn)單,協(xié)議規(guī)定對(duì)生產(chǎn)出block的地址獎(jiǎng)勵(lì)BTC,以及交易雙方承諾的手續(xù)費(fèi).目前生產(chǎn)出一個(gè)block的獎(jiǎng)勵(lì)為50BTC,未來(lái)每隔四年減半,比如2013年到2016年之間獎(jiǎng)勵(lì)為25BTC. 交易是匿名的嗎? 是,也不是.所有BITCOIN的交易都是可見(jiàn)的,我們可以查到每個(gè)賬戶的所有交易記錄,比如我的.但與銀行貨幣體系不一樣的地方在于,每個(gè)人的賬戶本身是匿名的,并且每個(gè)人可以開(kāi)很多個(gè)賬戶.總的說(shuō)來(lái),所謂的匿名性沒(méi)有宣稱的那么好. 但bitcoin用來(lái)做黑市交易的還有一個(gè)好處,它無(wú)法凍結(jié).即便警方追蹤到了某個(gè)bitcoin地址,除非根據(jù)網(wǎng)絡(luò)地址追蹤到交易所使用的電腦,否則還是毫無(wú)辦法. 如何保證bitcoin不貶值? 一般來(lái)說(shuō),在交易活動(dòng)相當(dāng)?shù)那闆r下,貨幣的價(jià)值反比于貨幣的發(fā)行量.不像傳統(tǒng)貨幣市場(chǎng),央行可以決定貨幣發(fā)行量,bitcoin里沒(méi)有一個(gè)中央的發(fā)行機(jī)構(gòu).只有通過(guò)生產(chǎn)block,才能獲得一定數(shù)量的BTC貨幣.所以bitcoin貨幣新增量決定于: 1、生產(chǎn)block的速度:bitcoin的協(xié)議里規(guī)定了生產(chǎn)block的難度固定在平均2016個(gè)每?jī)蓚€(gè)星期,大約10分鐘生產(chǎn)一個(gè).CPU速度每18個(gè)月速度加倍的摩爾定律,并不會(huì)加快生產(chǎn)block的速度. 2、生產(chǎn)block的獎(jiǎng)勵(lì)數(shù)量:目前每生產(chǎn)一個(gè)block獎(jiǎng)勵(lì)50BTC,每四年減半,2013年開(kāi)始獎(jiǎng)勵(lì)25BTC,2017年開(kāi)始獎(jiǎng)勵(lì)額為12.5BTC. 綜合上面兩個(gè)因素,bitcoin貨幣發(fā)行速度并不由網(wǎng)絡(luò)節(jié)點(diǎn)中任何單個(gè)節(jié)點(diǎn)所控制,其協(xié)議使得貨幣的存量是事先已知的,并且最高存量只有2100萬(wàn)BTC
比特幣如何算出來(lái)的
比特幣如何算出來(lái)的
其他人氣:243 ℃時(shí)間:2020-01-28 03:55:28
優(yōu)質(zhì)解答
我來(lái)回答
類似推薦
- 以下成語(yǔ)與哪個(gè)歷史人物有關(guān).草船借箭 完璧歸趙 臥薪嘗膽
- 三角梅的特點(diǎn)
- 故宮太和殿內(nèi)那塊牌匾上的四個(gè)字是什么?
- 求高手幫忙寫一篇英文信
- (1)某商店將某種DVD按進(jìn)價(jià)提高40%定價(jià),促銷后,每臺(tái)仍獲利2元.每臺(tái)DVD的進(jìn)價(jià)是多少元?
- People like to eat watermelon in hot summer.
- 對(duì)我來(lái)說(shuō)編英語(yǔ)對(duì)話不難 It ____ difficult ____ me ____ ____ ____ English dialogues
- 煤礦安全規(guī)程由多少條
- He doesn't walk_______the park.He goes _______bike.括號(hào)里填什么?A:to.on B:on.by C:to.by
- 半徑為6cm的扇形的弧長(zhǎng)為6.28cm,求這個(gè)扇形的面積
- 與常染色體隱性遺傳相比,X染色體上的隱性遺傳的特點(diǎn)是( ) A.男性患者多于女性患者 B.女性患者多于男性患者 C.只有男性發(fā)病 D.男女發(fā)病率相同
- pray to the sky意思
猜你喜歡
- 1“人體內(nèi)的細(xì)胞外液主要包括血漿,組織液和淋巴”這句話為什么不對(duì)
- 2y=-2x+b的圖像與兩坐標(biāo)軸圍城的三角形面積為3.(1)求這個(gè)函數(shù)的解析式(2)求原點(diǎn)到這個(gè)圖像的距離
- 34的n次方·a的2n次方·b的3n次方=( )的n次方.
- 4—What do you think made Mary soupset?_____her new bike.A.As she lo.com
- 5若X的二次方+3X+1=0,則X的三次方+5X的二次方+5X+8=?
- 6計(jì)算:5x-2y-6+ (1/x) + (1/y)
- 7英語(yǔ)翻譯
- 81,2題 有圖
- 9下列有關(guān)長(zhǎng)江中下游平原敘述正確的
- 10糖吃多了會(huì)怎樣,哪些食物糖類高
- 11排列與組合題,這樣有什么不對(duì)?
- 124/5x-x=120