utxo:位元幣交易中的基礎構建單元是交易輸出。 交易輸出是位元幣不可分割的基本組合,記錄在區塊上,並被整個網路識別為有效。位元幣完整節點跟蹤所有可找到的和可使用的輸出,稱為 「未花費的交易輸出」(unspent transaction outputs),即utxo。。。。儘管utxo可以是任意值,但一旦被創造出來,即不可分割。乙個utxo只能在一次交易中作為乙個整體被消耗。
過年了 你在某寶上定製了一枚鑽戒,將白花花的銀子打到螞蟻金服這樣的第三方權威機構上,等待賣鑽戒的人發貨給你,好討女朋友的歡心,可惜,尷尬的事情發生了,螞蟻金服大佬和小姨子逃跑了,卷走了你的錢,你目前人財兩空,獨自走在街頭流淚。
把這件事情放在區塊鏈的領域,那麼這件事情就簡單很多了,你只需要和賣家相互確認這件事情,那麼就ok了,當然這還不是很明顯,假設有成千上萬的交易,那麼去中心化的機制,是不是顯得更加便捷、節省資源。假設你買了一點安全措施,也沒必要擔心資訊洩漏,嘿嘿。
那麼問題來了,沒有了這種類似央行一樣的權威中心,那麼我怎麼知道你所發的訊息是準確而且可信的(這是兩個問題:乙個準確,乙個可信)
所以,要想解決上述問題,也就必須面對,困擾已久的兩個難題
提到;兩軍問題,首先談一下咱們最熟悉的tcp三次握手協議,那麼大家想乙個問題,tcp三次握手之後難道就能保證通道是絕對安全的麼?所以,專業點來說就是「在分布式計算上,試圖在非同步系統和不可靠的通道上達到一致性是不可能的」。所以,tcp三次握手是我們在長期的經驗之下得出來的一種共識,是一種相對穩定的狀態。
其次,從拜占庭將軍問題所反應到區塊鏈的問題來看,在乙個去中心的系統中,肯定會存在一些節點是處於不work的狀態,那麼這就會造成他們不與其它節點互動,或者send error message。也就沒辦法保證資料傳輸的準確性。
琮琮是當地的大地主,有一天「洗衣機磊」結婚缺點錢,向琮琮借了一萬塊,琮琮怕洗衣機磊哪天耍賴皮,所以找來了他的小三,小四等三千後宮佳麗,都做見證人,大家都在自己的小本本上,記錄:洗衣機磊今天借了琮琮的一萬塊,琮琮也向大家宣布,今天洗衣機磊借了我的一萬塊。這麼乙個簡單的去中心化系統就建立起來了,我們不需要任何權威機構見證,假如,哪天洗衣機磊,出來說:自己沒有借錢,那麼琮琮的三千後宮佳麗會當場見證,你借過。
在上述的這個去中心化系統中,有三個角色:琮琮、洗衣機磊、三千佳麗。
大家可能會意識到,其實在這個系統中,「1w元」我可以替換成任意東西,只要琮琮和洗衣機磊認可,後宮三千佳麗見證,那麼這個交易便是成立的,ok,那麼,換成大家所期待的位元幣也是乙個道理。
中本聰正是基於這樣的一種設想,構建了他的第一版區塊鏈示意圖:
區塊鏈示意圖
這個簡單的去中心化模型,漏洞百出,琮琮的後宮三千佳麗正在和琮琮的堂弟表哥們玩耍,被叫過來,很是不爽,我憑什麼要過來啊。這時土豪琮也覺得有道理,所以琮琮說,凡是第乙個為我見證的將得到十克拉鑽石。這也就是中本聰設想的區塊鏈中的—激勵機制。
那麼交易費該如何理解呢?
後面過來的小**開心了,和琮琮撒嬌,我有個弟弟也要結婚,我也想與你做乙個交易,你借我5000塊就行,可是土豪琮只有一萬塊一張的整幣,沒轍,只好給小五,剩下的5000塊作為交易費送給小五。
在這個過程中,還有一種情況可能會發生,那就是小三和小四是雙胞胎,他們一起喊出:我收到洗衣機磊借琮琮的一萬塊這條訊息,緊接著過來的小五小六。。。有點懵,我該聽誰的呢?管她呢,小五和小三關係好,聽小三的,小六和小四關係好,聽小四的,但是理論上這種情況可能會一直延續下去啊,那麼該如何解決呢?土豪琮設定了一定的難度規則,小三坐飛機過來,結果它過來的快了,所以小四你別做飛機了,你坐馬車吧。。不斷如此調整這個難度規則,來保證,小三,小四。。。過來的時間都是差不多的。這種情況就是區塊鏈中所描述的暫時分叉問題,這種情況是暫時的,當有一方獲勝的時候,另一方會將自己的交易以utxo集的形式重新扔回礦池中,繼續廣播,尋求下一步認證。
那麼在區塊鏈中:整個網路會通過調整「難度」這個變數來控制生成工作量證明所需要的計算力。全網中每新增2016個區塊,全網難度將重新計算,該新難度值將依據前2016個區塊的雜湊算力而定。目的就是使整個網路的計算力大致每10分鐘產生乙個區塊。
上述所描述的究竟我是該聽小三還是小四的問題(暫時分叉),就是中本聰破解拜占庭將軍問題的設想。在解決這個問題上,用到了密碼學中merkle樹的思想來簡化儲存、尋找、驗證等問題。merkle樹是從下到上構建的。
小三,小四。。在自己小本本上記錄的過程就是,我們挖礦的過程。
小三坐飛機,小四坐馬車,也就是琮琮設定的不同難度,就好位元幣挖礦的難度。
飛機的速度,馬車的速度,就好比我當前全網的算力究竟有多快。
琮琮通過設定新的規則,就是工作量證明(pow)。
區塊鏈就好比一條單向(絕對不可能反向)的鍊錶,每乙個節點就好比乙個塊,每乙個塊的第一筆交易(幣基交易)作為激勵獎勵給發現這個塊的礦工,通過不斷的難度調整,通過工作量證明,來保證整個工作鏈不出現分叉。這個鏈不斷的延伸,所以越來越難挖,目前顯示卡、fpga、都挖不動了,基本到了10奈米級的晶元,一台伺服器,搭載幾百個這樣的晶元在做計算,再發展下去,感覺需要用到銀河二號出馬了。
大話區塊鏈與位元幣
區塊鏈 blockchain 是分布式資料儲存 點對點傳輸 共識機制 加密演算法等計算機技術的新型應用模式。區塊鏈是位元幣的乙個重要概念,它本質上是乙個去中心化的資料庫,同時作為位元幣的底層技術。2008年由中本聰第一次提出了區塊鏈的概念。位元幣 英文原版其實並未出現 blockchain 一詞,而...
區塊鏈 區塊鏈雜湊演算法
雜湊演算法是區塊鏈中保證交易資訊不被篡改的單向密碼機制。雜湊演算法接收一段明文後,以一種不可逆的方式將其轉化為一段長度較短 位數固定的雜湊資料。它有兩個特點 加密過程不可逆,意味著我們無法通過輸出的雜湊資料倒推原本的明文是什麼 輸入的明文與輸出的雜湊資料一一對應,任何乙個輸入資訊的變化,都必將導致最...
區塊鏈節點和區塊區別 區塊鏈的「區塊」和「鏈」
2017年以來,區塊鏈大火,但是其技術相對生澀。很多 紛紛用通俗易懂的漫畫方式,簡單明瞭的體現出來了區塊鏈的區別和特點。區塊鏈由以前的一人記賬,變成了大家一起記賬的模式,讓賬目和交易更加安全,這就是分布式資料儲存。此外,區塊鏈相關的技術除了分布式儲存,還有去中心化 智慧型合約 加密演算法等等。分布式...