官术网_书友最值得收藏!

2

數(shù)字貨幣基本原理

(一)防止貨幣偽造

對(duì)于杜絕偽造貨幣,比特幣的解決方案是保留所有貨幣的所有流通信息(即全網(wǎng)總賬本),可對(duì)每一個(gè)貨幣的來源進(jìn)行追溯,一直到創(chuàng)造出該貨幣的那個(gè)時(shí)刻;每進(jìn)行一次交易,就多記錄一次流通信息,并在點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)上進(jìn)行廣播,使得所有節(jié)點(diǎn)(即參與流通渠道維護(hù)的所有計(jì)算機(jī))都保存有全部貨幣的全部流通信息。這樣任意一個(gè)節(jié)點(diǎn)在交易之前就可以輕松發(fā)現(xiàn)偽造的貨幣,從而杜絕偽造貨幣的流通。

(二)防止重復(fù)支付

為了防止同一個(gè)貨幣被同一個(gè)人重復(fù)花費(fèi),中本聰采用了工作量證明法。如前所述,每個(gè)交易都要向網(wǎng)絡(luò)進(jìn)行廣播,重復(fù)花費(fèi)多次就意味著多次廣播關(guān)于同一個(gè)比特幣的交易。其他網(wǎng)絡(luò)節(jié)點(diǎn)將把其接收到的其中某一次交易放到一個(gè)區(qū)塊A內(nèi)(一個(gè)區(qū)塊包含了多個(gè)近期的交易單)進(jìn)行驗(yàn)證,驗(yàn)證方法是進(jìn)行一次耗時(shí)的計(jì)算,如果計(jì)算成功,則向全網(wǎng)進(jìn)行廣播。如果另一個(gè)節(jié)點(diǎn)在區(qū)塊A的基礎(chǔ)上完成了下一個(gè)區(qū)塊B的驗(yàn)證,它就會(huì)把B的區(qū)塊掛在A區(qū)塊之后,依此類推,形成一個(gè)區(qū)塊鏈。

對(duì)于同一比特幣的多次交易會(huì)形成多個(gè)區(qū)塊鏈,最終的結(jié)果就是:哪個(gè)鏈條最長,哪個(gè)交易就被確認(rèn)為有效,其他交易則被廢棄。這樣就確保了一個(gè)比特幣只能被一個(gè)人支付一次。

(三)無須第三方監(jiān)管

通過工作量證明法,比特幣還基本杜絕了非法篡改歷史交易記錄的可能性,因?yàn)闅v史記錄一旦被篡改,就意味著某個(gè)比特幣的交易記錄出現(xiàn)了一個(gè)新分支,篡改者需要自行對(duì)新分支進(jìn)行驗(yàn)證;與此同時(shí),其他所有網(wǎng)絡(luò)節(jié)點(diǎn)仍在老分支上進(jìn)行驗(yàn)證,持續(xù)構(gòu)造驗(yàn)證鏈,除非篡改者擁有超越其他所有網(wǎng)絡(luò)節(jié)點(diǎn)之和的計(jì)算能力,否則它的分支增長速度永遠(yuǎn)無法追上老分支,結(jié)果是他的篡改行為必將被宣告無效。

在所有節(jié)點(diǎn)上保存全部交易記錄,通過耗時(shí)的計(jì)算對(duì)交易進(jìn)行驗(yàn)證,二者結(jié)合起來,就構(gòu)成了一個(gè)安全、可靠的去中心化的支付系統(tǒng)。其本質(zhì)是把集中監(jiān)管的工作量交付給一個(gè)人人參與的龐大網(wǎng)絡(luò),網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都承擔(dān)監(jiān)管職責(zé)。如欲偽造貨幣或欺騙其他用戶,就是與整個(gè)網(wǎng)絡(luò)作對(duì),因而無法得逞。

(四)比特幣的發(fā)行

比特幣的發(fā)行源于貨幣流通渠道自身。由于每個(gè)比特幣的每筆交易都需要進(jìn)行驗(yàn)證,為了鼓勵(lì)節(jié)點(diǎn)全身心投入驗(yàn)證以維護(hù)系統(tǒng)的正常運(yùn)作,中本聰提出了相應(yīng)的激勵(lì)機(jī)制:“對(duì)每個(gè)區(qū)塊的第一筆交易進(jìn)行特殊化處理,該交易產(chǎn)生一枚由該區(qū)塊創(chuàng)造者(也就是第一個(gè)對(duì)交易進(jìn)行成功驗(yàn)證的人)擁有的新的電子貨幣。這樣就增加了促使節(jié)點(diǎn)支持該網(wǎng)絡(luò)的激勵(lì),并在沒有中央集權(quán)機(jī)構(gòu)發(fā)行貨幣的情況下,提供了一種將電子貨幣分配到流通領(lǐng)域的方法”, “如果某筆交易的輸出值小于輸入值,那么差額就是交易費(fèi),該交易費(fèi)將被增加到該區(qū)塊的激勵(lì)中”。也就是說,第一批比特幣可被視為“創(chuàng)世紀(jì)”比特幣,在被“創(chuàng)造”出來之后進(jìn)行流通,后續(xù)比特幣通過驗(yàn)證“創(chuàng)世紀(jì)”比特幣參與的交易產(chǎn)生,再加入流通渠道,產(chǎn)生滾雪球效應(yīng),從而使得比特幣越來越多。

但是比特幣無法永遠(yuǎn)增加,由于算法本身的設(shè)計(jì),每4年產(chǎn)生的比特幣數(shù)值會(huì)減半,因而最終比特幣的數(shù)量會(huì)趨近于2100萬個(gè)。

因?yàn)閷?duì)比特幣系統(tǒng)進(jìn)行維護(hù)的人可以通過復(fù)雜的計(jì)算獲得比特幣獎(jiǎng)勵(lì),過程類似于礦工挖礦,因此維護(hù)者被稱為“礦工”,其維護(hù)行為被稱為“挖礦”。值得注意的是,“礦工”自帶設(shè)備(一般為定制化的計(jì)算機(jī),又稱礦機(jī))、自發(fā)參與維護(hù),因而人數(shù)很多且時(shí)刻變化,不會(huì)形成固定的“第三方監(jiān)管者”。而在特定的時(shí)間間隔內(nèi),只有一個(gè)礦工能夠得到獎(jiǎng)勵(lì),挖礦的爭(zhēng)奪非常激烈,從而保證了系統(tǒng)的安全性和穩(wěn)固性。

(五)挖礦

比特幣的本質(zhì)是一個(gè)互相驗(yàn)證的公開記賬系統(tǒng),而挖礦的本質(zhì)則是在爭(zhēng)奪記賬權(quán)。從工作內(nèi)容來看,“挖礦”是將過去一段時(shí)間內(nèi)發(fā)生的、尚未經(jīng)過網(wǎng)絡(luò)公認(rèn)的交易信息收集、檢驗(yàn)、確認(rèn),最后打包加密成為一個(gè)無法被篡改的交易記錄信息塊,從而成為這個(gè)比特幣網(wǎng)絡(luò)上公認(rèn)已經(jīng)完成的交易記錄,永久保存。

在比特幣的世界里,大約每10分鐘會(huì)向公開賬本上記錄一個(gè)數(shù)據(jù)塊,這個(gè)數(shù)據(jù)塊里包含了這10分鐘內(nèi)全網(wǎng)已被驗(yàn)證的交易。因?yàn)樗械耐诘V計(jì)算機(jī)都在嘗試打包這個(gè)數(shù)據(jù)塊提交,于是最后以誰提交的為最終結(jié)果,是需要爭(zhēng)奪的。最終成功生成那個(gè)“交易記錄塊”(即區(qū)塊)的人,可以獲得伴隨這些交易而生成的交易費(fèi)用,外加一筆額外的報(bào)酬。交易費(fèi)用一般都是轉(zhuǎn)出資金方自愿提供給挖礦者的,因此不是系統(tǒng)新增的貨幣;額外的報(bào)酬是新生成的比特幣——這就是前面所說的“比特幣的發(fā)行”。

比特幣的有限性就由“額外的報(bào)酬”數(shù)量來控制。依據(jù)比特幣系統(tǒng)的設(shè)計(jì),大約每10分鐘可以生產(chǎn)一個(gè)“交易記錄塊”,最初每生產(chǎn)一個(gè)“交易記錄塊”可以獲得50比特幣的額外報(bào)酬,這意味著比特幣網(wǎng)絡(luò)每天增加7200個(gè)比特幣,但是該報(bào)酬每4年就會(huì)減半,因此最終整個(gè)系統(tǒng)中最多只能有2100萬個(gè)比特幣。

(六)區(qū)塊鏈

礦工們?yōu)闋?zhēng)奪記賬權(quán)所運(yùn)行的計(jì)算,實(shí)際上是根據(jù)哈希值反向求解隨機(jī)數(shù)。大家比賽的是在10分鐘內(nèi)看誰找到一個(gè)隨機(jī)數(shù),這個(gè)隨機(jī)數(shù)與上一個(gè)數(shù)據(jù)塊的哈希以及10分鐘內(nèi)驗(yàn)證過的新交易記錄合起來可以得到滿足某個(gè)條件的最小哈希值。這個(gè)值越小對(duì)應(yīng)的比特幣網(wǎng)絡(luò)的難度系數(shù)越高。由于哈希值的結(jié)果相當(dāng)隨機(jī),無法預(yù)知結(jié)果大小,所以只能采取窮舉法比拼算力。如果某個(gè)礦工10分鐘內(nèi)沒搶到記賬權(quán),就只能等待下一輪的競(jìng)爭(zhēng)。

之所以在求解隨機(jī)數(shù)時(shí)要加上一個(gè)區(qū)塊的哈希,是因?yàn)檫@樣所有的數(shù)據(jù)塊就被組成了一條可以從前到后不斷驗(yàn)證的數(shù)據(jù)鏈條。修改中間任何一個(gè)數(shù)據(jù)塊的任何交易記錄,都會(huì)導(dǎo)致從此之后的所有數(shù)據(jù)塊的哈希無法驗(yàn)證成功,而如果企圖修改記錄后重新找一個(gè)合理值算出符合條件的哈希重新打包,那就意味著之后所有的數(shù)據(jù)塊都需要重新計(jì)算哈希,即使都找到了還必須比整個(gè)比特幣網(wǎng)絡(luò)計(jì)算得更快,才能讓網(wǎng)絡(luò)接受你的結(jié)果,這意味著攻擊者要擁有超過整個(gè)比特幣網(wǎng)絡(luò)其他部分的計(jì)算力,換句話說,要使用超過整個(gè)網(wǎng)絡(luò)50%以上的計(jì)算力才能保證攻擊有效。

這個(gè)數(shù)據(jù)鏈條就稱為區(qū)塊鏈,又稱全網(wǎng)總賬本,它永久保存在每個(gè)用戶的計(jì)算機(jī)上。只有擁有50%以上全網(wǎng)算力才可能篡改這個(gè)全網(wǎng)總賬本,比特幣系統(tǒng)就是通過區(qū)塊鏈+“挖礦”的機(jī)制實(shí)現(xiàn)了貨幣無法被偽造、交易無法被篡改和雙重支付無法得逞的目標(biāo)。

(七)計(jì)算難度與確認(rèn)次數(shù)

礦工找到一個(gè)有效的哈希值后,就會(huì)迅速把生成的數(shù)據(jù)塊轉(zhuǎn)發(fā)出去,別的礦工收到并認(rèn)可這個(gè)數(shù)據(jù)塊后,就會(huì)以它為基礎(chǔ)進(jìn)行下一輪的計(jì)算。如果期間收到具有更小哈希值的塊,則首先以數(shù)據(jù)鏈長度為優(yōu)先,其次以哈希值更小為優(yōu)先,拋棄之前的結(jié)果,在新的基礎(chǔ)上繼續(xù)進(jìn)行下一輪計(jì)算。

為了自動(dòng)協(xié)調(diào)比特幣的發(fā)行速度,系統(tǒng)根據(jù)之前若干數(shù)據(jù)塊生成的平均速度自動(dòng)調(diào)整挖礦難度。如果之前數(shù)據(jù)塊的生成時(shí)間低于10分鐘,就把難度提高,如果高于10分鐘就自動(dòng)把難度降低。難度提升很簡(jiǎn)單,就是降低哈希值的下限,由于哈希算法的特性,這會(huì)造成計(jì)算量的指數(shù)級(jí)上升,因而會(huì)增加礦工計(jì)算的時(shí)間。

對(duì)于某筆特定的比特幣交易(主要指轉(zhuǎn)賬,即把比特幣由一個(gè)地址轉(zhuǎn)到另外一個(gè)地址),正常情況下,這筆交易的交易單會(huì)被打包到當(dāng)前的數(shù)據(jù)塊中。當(dāng)某個(gè)礦工計(jì)算出了滿足當(dāng)前數(shù)據(jù)塊要求的哈希值并廣播出去,這筆交易得到第1次確認(rèn)。其他礦工過10分鐘后把新的數(shù)據(jù)塊掛接在當(dāng)前數(shù)據(jù)塊之后,區(qū)塊鏈延長,每延長一個(gè)塊就意味著得到的確認(rèn)加1。當(dāng)一筆交易獲得了6次確認(rèn),就可以認(rèn)為這筆交易已經(jīng)得到了全網(wǎng)的認(rèn)同,合法、有效,而且不可撤銷。

(八)客戶端錢包軟件

在比特幣體系里,用戶的賬戶(地址)由本地客戶端自動(dòng)生成,是類似1Gz9XmfTK4aH89MVXky1QxtyMcG44NqDRv的一串字符。用戶告訴別人這一地址后,對(duì)方就可以向該地址轉(zhuǎn)賬了。

比特幣地址其實(shí)是一套非對(duì)稱密鑰對(duì)中的公鑰,這對(duì)密鑰通過橢圓曲線算法生成,其獨(dú)特之處在于:使用公鑰加密一段信息后,使用公鑰解不開,必須使用私鑰才可以解開;同樣,使用私鑰加密一段信息后,使用私鑰解不開,必須使用公鑰才可以解開。更加獨(dú)特的是,根據(jù)私鑰可以很容易地算出公鑰,但是根據(jù)公鑰幾乎無法算出私鑰。

因此,用戶可以把自己的地址(公鑰)告訴別人,與其進(jìn)行加密通信。例如,用戶A把自己的公鑰告訴B,然后以自己的私鑰加密信息,用戶B用A的公鑰解開這份加密信息,并可確認(rèn)該信息由A發(fā)出(因?yàn)橹挥杏肁的公鑰才可以解開);用戶B用A的公鑰加密信息,用戶A用自己的私鑰解開這份加密信息,并可確認(rèn)該信息是發(fā)給自己的(因?yàn)橹挥杏米约旱乃借€才能解開)。但是用戶絕不能把私鑰告訴別人,因?yàn)樗借€唯一確定了地址(公鑰)的所有權(quán),而且無法通過公鑰計(jì)算出來。一旦告訴了別人自己的私鑰,就等于把該地址里所存的比特幣拱手讓給了對(duì)方,對(duì)方可根據(jù)私鑰計(jì)算出公鑰(地址),然后從區(qū)塊鏈(全網(wǎng)總賬本)中查找該地址關(guān)聯(lián)的比特幣信息,并動(dòng)用這些比特幣。

用戶賬戶的地址和私鑰都保存在比特幣錢包文件里,一般情況下私鑰是看不見的,由比特幣客戶端軟件自動(dòng)進(jìn)行加密、解密運(yùn)算。因此,錢包文件必須妥善保管,一旦丟失,錢包里所有地址保存的所有比特幣就不安全了,有可能被別人盜走。由于整套比特幣體系的去中心化和匿名性特性,比特幣一旦被盜,沒有任何人有權(quán)力或能力找回。

用戶賬戶的地址及對(duì)應(yīng)的私鑰均由客戶端軟件自動(dòng)生成。由于可使用的地址數(shù)目足夠多,理論上超過2160個(gè),而全世界的沙粒僅有約263個(gè),每粒沙子都可以分配297個(gè)地址,仍然是一個(gè)巨大的天文數(shù)字。因此,不同用戶賬戶地址重合的可能性基本上不存在。由于賬戶地址輸入錯(cuò)誤,導(dǎo)致這一地址恰好是別人賬戶地址的概率,比飛入你眼中的一粒沙,恰好是去年你在海灘踩到的一粒沙的概率還小得多。

(九)比特幣轉(zhuǎn)賬

因?yàn)楸忍貛挪淮嬖诂F(xiàn)金交易的概念,一切的交易都依靠賬戶間的數(shù)字轉(zhuǎn)移,所以比特幣的支付概念類似于銀行轉(zhuǎn)賬。假設(shè)A有100個(gè)比特幣,他要轉(zhuǎn)賬給B。那么A寫一條信息“從A的地址轉(zhuǎn)賬100比特幣到B的地址”,然后用自己錢包里的私鑰加密并傳播到整個(gè)比特幣網(wǎng)絡(luò)上,網(wǎng)絡(luò)上的人都用A的地址(公鑰)解密驗(yàn)證這條信息確實(shí)是由A發(fā)出,而通過歷史交易數(shù)據(jù)計(jì)算出A的地址確實(shí)擁有100個(gè)比特幣,于是整個(gè)網(wǎng)絡(luò)公認(rèn)此次轉(zhuǎn)賬操作,搶得記賬權(quán)的礦工把當(dāng)前時(shí)間區(qū)間內(nèi)的所有交易記錄(當(dāng)然包括A給B的轉(zhuǎn)賬)打包掛在區(qū)塊鏈上,A錢包中存款減少100比特幣,B錢包中存款增加100比特幣,并顯示該筆轉(zhuǎn)賬被確認(rèn)了一次。大約一個(gè)小時(shí)后,6次確認(rèn)完成,B獲得了這100個(gè)比特幣的支配權(quán),這次轉(zhuǎn)賬徹底完成。

非對(duì)稱加密技術(shù)使這個(gè)轉(zhuǎn)賬過程得以順利實(shí)現(xiàn),礦工的挖礦則保證了交易的合法性、有效性和不可撤回性。

(十)匿名與公開

由于沒有傳統(tǒng)銀行開戶和身份認(rèn)證的過程,比特幣系統(tǒng)是純匿名的,即無法把用戶賬戶的地址與用戶本人相關(guān)聯(lián),擁有某個(gè)地址私鑰的人就擁有對(duì)該地址的唯一所有權(quán)。雖然我們可以根據(jù)本地完整的交易記錄查詢每個(gè)賬號(hào)的流水信息,但卻幾乎沒有辦法知道這個(gè)賬號(hào)的主人是誰。只要愿意,每個(gè)人都可以擁有幾乎無限個(gè)地址。同樣也沒有任何人有能力操作他人賬號(hào)上的比特幣。這是人類歷史上第一次從技術(shù)上保障了“貨幣”不可追蹤、不可凍結(jié)、不可未經(jīng)許可而占有。

反之,賬戶所有人可以輕易證明自己擁有某個(gè)地址上的財(cái)富。只需要使用私鑰加密一條信息發(fā)布出來,大家就可以確認(rèn)他對(duì)該賬戶的擁有權(quán),而不必把私鑰公開,這同樣適用于證明某筆匿名支付確實(shí)由某人發(fā)出。

當(dāng)然,雖然比特幣系統(tǒng)是匿名的,但若一個(gè)組織愿意公開自己的比特幣賬號(hào),那么整個(gè)網(wǎng)絡(luò)可以隨時(shí)追蹤到該賬號(hào)的所有流水信息。每一筆轉(zhuǎn)賬的到賬時(shí)間、數(shù)額和支出都可以清晰地看到,相當(dāng)于直接查詢銀行內(nèi)部原始賬單。對(duì)于NGO(非政府組織)或公益組織來說,可以大幅降低賬目維護(hù)成本,做到100%的透明度。2013年的蘆山地震,壹基金就曾接受比特幣捐贈(zèng),其比特幣賬目在網(wǎng)絡(luò)上清晰可查。

(十一)不可撤銷與不可找回

前面已經(jīng)提到,如果一筆交易被確認(rèn)了足夠多次,該交易即不可撤銷、不可逆轉(zhuǎn)。這意味著,如果一個(gè)人錯(cuò)誤地把比特幣打到另外一個(gè)人的合法地址中,除非對(duì)方愿意把比特幣再打回來,否則這個(gè)人的比特幣將永遠(yuǎn)無法追回。因?yàn)楸忍貛攀澜绮淮嬖谥俨谜撸瑹o法強(qiáng)制用戶進(jìn)行操作,因此錯(cuò)誤的交易能否被挽回,只取決于對(duì)方的自覺性。

基于同樣的原因,如果用戶的錢包文件(私鑰)損壞,就意味著錢包包含的所有地址上的所有比特幣都徹底丟失了,徹底躺在了交易記錄的歷史中,任何人都可以看到它,但卻得不到。因?yàn)檫@里可沒有拿身份證找回這一碼事。而如果想通過破解私鑰的辦法拿回丟失的比特幣,只能等到量子計(jì)算機(jī)出現(xiàn)了。依據(jù)當(dāng)前的加密理論,只有量子計(jì)算機(jī)才有可能在較短時(shí)間內(nèi)破解橢圓曲線加密算法。

主站蜘蛛池模板: 潜山县| 新河县| 壶关县| 高青县| 宁武县| 科技| 亚东县| 汝南县| 扬中市| 林西县| 咸宁市| 山阴县| 通山县| 隆德县| 林口县| 凯里市| 晋江市| 金阳县| 东丽区| 巴林右旗| 二连浩特市| 华坪县| 阿荣旗| 高邮市| 民县| 泰安市| 东源县| 凤凰县| 五莲县| 肇州县| 阿荣旗| 长春市| 手游| 关岭| 报价| 探索| 昭通市| 渑池县| 江西省| 京山县| 郓城县|