大家好,這里是了鏈客區塊鏈技術問答社區。
鏈客,專為開發者而生,有問必答!
去中心化說起來似乎挺簡單,但是不用細想就會發現很多問題:
賬本存儲在每個節點中,如何保證每個節點中的數據一致,或者說如何防止某些節點的賬本被惡意篡改而影響到整個網絡的交易?
如果說交易的驗證由各個節點完成,那么如何在不把密碼泄露給其他節點的前提下,證明自己對某個賬戶的所有權呢?
去中心化就要求時刻有節點在線,由這些節點去完成記賬、驗證交易等工作,那么有什么機制能夠讓節點有動力自發的保持在線去完成這些工作呢?
倫交所與GFO-X合作提供比特幣指數期貨和期權的交易和清算:金色財經報道,倫敦證券交易所集團 (LSEG) 與數字資產交易所GFO-X合作,讓英國能夠在比特幣指數期貨和期權方面進行受監管的交易和清算。除了受監管的交易和期貨,LSEG 還計劃發布一個名為 Digital Asset Clear 的單獨產品,該產品將在 GFO-X 上實現以現金結算、以美元計價的數字資產交易。一旦歐盟官員批準這些服務,它們很可能在今年第四季度推出。[2023/5/25 10:38:15]
對于上面的問題,比特幣都給出了很優雅的解決方案,我們一一道來。
動態 | 比特幣誕生至今共完成11萬億美元的交易:加密貨幣分析師PlanB發推表示,2009年至2019年,比特幣一共完成了價值11萬億美元的轉賬。數據顯示其交易仍然保持著每天100億美元的強勁勢頭。[2019/10/25]
1.賬本驗證問題
實際上對于第一個問題,很容易想到解決方法,那就是少數服從多數,如果某個節點的賬本數據被篡改了,那么只需要和全網其他節點的數據比對,就必然能發現異常。
但問題在于,隨著時間的推移,記錄的累積,數據量會越來越龐大,記得在13年的時候,筆者下載的比特幣錢包,從網絡同步下載下來的交易賬本數據就已經多達幾十GB,如果說要對這么大的數據進行逐一傳輸、比對,可以說是不現實的。
在介紹比特幣的解決方案前,我們先了解一個函數:Hash函數,俗稱哈希函數。
動態 | 比特幣核心開發者 Pieter Wuille 發布新的比特幣腳本語言 Miniscript:比特幣核心開發者兼 Blockstream 聯合創始人 Pieter Wuille 發布推文宣布推出一個新的比特幣腳本語言 Miniscript,本質上,這是一種以結構化、可組合的方式編寫(某些)比特幣腳本的方法,允許各種靜態分析、通用簽名和策略編譯。該項目包括一個策略編譯器,當你設置好輸出花費條件和相對概率,它能夠找到最經濟的 Miniscript 兼容腳本。開發者不僅可以在網站上使用策略編譯器,而且,在無需知道腳本策略創建來源的情況下,Miniscript 的算法支持為任何兼容 Miniscript 的腳本構建見證。Pieter Wuille 稱,目前區塊鏈技術重心都放在擴展區塊鏈本身的功能以支持更復雜的應用程序上,然而通過一種可訪問、可組合和可分析的方式實現擴展功能卻被忽略了。Pieter Wuille 希望 Miniscript 和 PSBT 這類方案可以減少軟件之間的一些障礙。[2019/8/20]
關于Hash函數的細節,我們以后再描述,現在我們需要知道就是:一段數據經過Hash函數的運算后,得到一段長度很短的數據,我們稱之為摘要數據,可以表示成:
聲音 | 中本聰研究所聯合創始人:特朗普將比特幣與犯罪活動聯系在一起是不誠實的:據Dailyhodl消息,中本聰研究所聯合創始人Pierre Rochard近日對特朗普之前有關加密貨幣的言論做出了評價,他認為特朗普將犯罪活動與比特幣聯系在一起是種不誠實的想法,比特幣實際上對美元產生了威脅。美元作為世界儲備貨幣的地位讓美國政府能夠不考慮后果的隨意印發鈔票,從而導致通貨膨脹,讓美國以外的每個人承擔地緣的影響。[2019/7/21]
Hash(原始數據)=摘要數據
而Hash函數有以下三個特點:
同樣的原始數據,經過同一個Hash函數,總是能得到相同的摘要數據;
原始信息的任何微小的修改,通過Hash函數后,得到的摘要數據會面目全非;
不可逆運算,即:擁有摘要數據,無法逆向反推出原始數據。
比特幣的做法是,交易賬本數據按照時間分塊存儲,每一塊只存儲10分鐘的交易賬本數據,這每個存儲單元即稱之為“區塊”。而每一個區塊的頭部會記錄這一數據塊的序號、時間和Hash摘要數據。
比較巧妙的地方在于,區塊頭部中的Hash摘要數據是由上一個區塊的摘要數據和本區塊的交易賬本數據疊加后經過Hash函數得到的,即:
第n塊的Hash值=Hash(第n-1塊的Hash值+第n塊的賬本數據)
可以看到,雖然每一個區塊內的交易賬本數據是獨立的,但是區塊頭部的Hash值卻是依賴于上一區塊的Hash值,從而形成了一條鏈式的結構。這想必也就是“區塊鏈”名字的由來。
鏈上的任何一個區塊中的數據受到的篡改,都將反映到最新的一個區塊的Hash值上,因此,要想驗證某個節點的賬本數據是否正確,只需要比對最新一個區塊的Hash值即可。
2.賬戶所有權的證明
如果我要通過某個賬戶給另一個賬戶轉賬,必然需要證明我對此賬戶的所有權。對于中心化的貨幣系統,我們只需要向銀行出示密碼即可,但是對于去中心化的系統,如果我們也通過出示密碼給其他節點,來證明我們對賬戶的所有權,那么我們的密碼也就泄露給了其他節點。
事實上這是一個現代密碼學中比較基礎的問題,說白了就是如何在不暴露自己私鑰的前提下,自證身份,也有很成熟的解決方法:利用非對稱加密算法。關于算法的細節,計劃在后面單獨說說現代密碼學的一些基礎算法,這里我們就用類比的方法描述一下。
首先我們來確定要解決的問題:
A要從賬戶X中轉賬一筆錢給賬戶Y,就需要向全網廣播一條消息,網絡中的其他節點收到消息后,要有方法能夠驗證廣播這條消息的人,確實擁有賬戶X的所有權。同時,消息中不能包含賬戶X的密碼,否則就意味著賬戶的控制權泄露給了全網的用戶。
解決方法是這樣的:
由A向全網發布廣播,廣播的消息中需要包括:
①原始交易信息
②原始交易信息經過Hash算法后得到的一條摘要信息
③簽名
前兩條很好理解,關于簽名,我們可以這么理解:
有這么個簽名函數,輸入是打款賬戶的私鑰和②摘要信息,而輸出就是③簽名,即:
簽名=sign(私鑰,交易信息摘要)
網絡中其他節點收到廣播后需要驗證A是否有權將賬戶X中的錢轉出去,驗證步驟如下:
廣播中①原始交易信息中,有打款者的賬戶地址,這個地址其實就相當于公鑰。
相對應于簽名函數,還有個校驗函數,輸入是③簽名和公鑰,輸出則是摘要信息,即:
交易信息摘要=verify(簽名,公鑰)
只需要比對verify函數算出的交易信息摘要與廣播中的②交易信息摘要相吻合,那么就認為廣播這條消息的人,擁有正確的私鑰,即擁有賬戶X的所有權。
而通過公鑰是無法推算出私鑰的,因此也不會有泄露私鑰的風險。
Tags:比特幣區塊鏈比特幣中國官網聯系方式40億比特幣能提現嗎比特幣最新價格行情走勢區塊鏈工程專業學什么區塊鏈存證怎么弄區塊鏈技術發展現狀和趨勢
數字貨幣生態系統以新的增長潛力蘇醒。定于本周公布的預期積極經濟數據在一定程度上正在增強市場情緒.
1900/1/1 0:00:00柴犬在周末暴跌近25%后,上周經歷了一場戲劇性的暴跌。它的價格從0.000007美元的高位跌至0.000005美元的低位,引發了人們對進一步崩盤的擔憂.
1900/1/1 0:00:00領先的加密貨幣比特幣在突破27,500美元的重要阻力位時面臨困難。盡管近期看漲勢頭,但比特幣的上漲趨勢受到持續下跌趨勢線的阻礙.
1900/1/1 0:00:00比特幣(BTC)的出現和迅速崛起至今仍令投資和金融界著迷,成為近代史上最空前的事件之一。然而,考慮到這種加密貨幣僅在14年前推出,許多人并不完全了解比特幣的價格上漲究竟有多么驚人.
1900/1/1 0:00:00大家好,這里是鏈客區塊鏈技術問答社區。鏈客,專為開發者而生,有問必答! 區塊鏈基礎 區塊鏈作為一個概念對程序員來說并不難理解。原因是大多數復雜性只是為平臺提供一系列功能和承諾.
1900/1/1 0:00:00BakingSheet提到了Tezos新的Octezv16.1網絡升級的發布。然而,XTZ的價格在空頭的控制之下,因為它在上周下跌了大約8%.
1900/1/1 0:00:00