這個我就先簡單一寫,因為我覺得沒啥特別,基本都已經知道了,具體的還要後續加
3.1 utxo(unspent transaction output)
位元幣中是沒有賬戶的,所以想證明你有錢,要麼是你挖礦憑空造出了錢,要麼是有人轉給你了錢,你只要證明這兩者之一就行了,而這就是未話費的交易輸出。
下圖是正常的交易過程,證明傳送方的錢準確無誤地傳送給接收方卻不被修改。
1.首先,傳送方用接收方的公鑰對資訊進行加密。**分析:**假設c擷取資訊,他想篡改內容。首先簽名無法篡改,因為他沒有傳送方的私鑰,如果用自己的私鑰進行簽名,那麼接收方用傳送方的公鑰解密時是解不開的。所以他只能篡改密文。但接收方解出密文並進行雜湊運算後得到的摘要必然和原來的摘要不同,而用傳送方的公鑰解密出簽名得到的摘要肯定不會被篡改,所以兩次摘要就會出現不一致,就能確認內容被篡改了。2.傳送方對原資訊進行雜湊運算得到乙個結果(稱為摘要),再用自己的私鑰對摘要進行加密得到乙個簽名(這裡用私鑰加密得到的簽名,可以用公鑰進行解密,這裡和之前的公鑰加密私鑰解密用的不是同一套演算法)。
3.把密文和簽名一起傳送給接收方。
4.接收方首先用自己的私鑰對密文進行解密得到原文,再對原文進行雜湊運算得到摘要。
5.接收方用傳送方的公鑰對傳送方的簽名進行解密得到傳送方簽名前的摘要。
6.接收方把兩次得到的摘要進行比對,如果是一樣的,則證明原文沒有被篡改,並且確實是傳送方傳送的。
3.2 共識(這個有點意思)
如果目前有乙個區塊的資料要不要寫入鏈中呢?
可以有很多種方法。比如民主一點,每個人投票,看一半。但是對於區塊鏈而言,什麼叫乙個賬戶呢?我只要有過utxo就叫乙個賬戶,哪怕我雖然只有乙個位元幣,但是我也能弄出無限個賬戶,那豈不是我乙個人就可以決定這個交易是否有效了嗎?所以用賬戶的民主是不合理的。而這種造賬戶的方式叫做**sybil attack(女巫攻擊)**。
區塊鏈採用的是競爭的方式。當乙個人率先挖到了礦,那就有權力將區塊寫入區塊鏈,完了由後續的人進行驗證。當然如果這位礦工寫入的資料連utxo都不滿足肯定就玩完,別人不會認的。意思就是只有最強算力的人有**決定權,然而算力齊次的有驗證權,如果不符合utxo民眾有監督權,可以選擇不介紹這個區塊。而這個最強礦工不僅有記錄的決定權,也會憑空產生位元幣,這就是出塊獎勵。出塊獎勵是越來越少的,而且也不能只靠出塊獎勵來激勵打包,因為有的節點比較自私,只會打包自己的交易(沒聽懂肖老師啥意思,總之就是不會打包全部的交易),因為驗證交易的合法性是要算utxo的,這也是要耗資源的。因此區塊鏈設計了一種叫做transaction fee的小費機制。兩者的差別能差到100被,下面有交易的可以看。
最早的位元幣是乙個區塊50個,每21萬個區塊減半,十分鐘會產生乙個區塊。如果區塊挖完了,以後交易位元幣的成本就要增加了。類似於現在的交易費是中本聰替你交,以後就得你自己交了。
3.3 51%攻擊
這個51%不是絕對的,只是一種概率的說法,而且下面會講礦池的概念,並不是說卡死這個值。總的來說就是記賬權是否總會掌握在有同一目的人的手裡。
3.3.1 分叉攻擊
先說一下正常的分叉現象:如果有兩個區塊幾乎同時算好了雜湊,它倆幾乎同時打包,理論上這兩條鏈都是有效的,那怎麼才能確定唯一的一條呢?就看一段時間後哪條鏈更長,短的被廢棄的鏈叫orghon line。據吳兆恆說,目前全球已經出現了三條鏈。
那麼分叉攻擊呢,比如a節點給b節點5個bitcoin,b等了六個區塊後認為安全了,結果a現在再發布乙個交易a給自己,替換掉a給b 5個位元幣的那個交易,現在主鏈已經比這條鏈長6個區塊了,這條錯誤鏈有可能比主鏈還要長嗎?可能,因為它的算力已經到了51%,總會成功的。
3.3.2 boycott攻擊
如果節點a看b節點不順眼,任何存在b節點交易的區塊一旦打包進區塊,a節點就會發動分叉攻擊,使b得一切交易都無效,久而久之其它的礦工也不敢將b的交易打包進區塊了,因為只要打包進去就被攻擊掉,誰還玩啊。
位元幣 位元幣中的共識協議
在位元幣系統中,hash指標有兩個用途 指向前乙個區塊和指向某筆交易。位元幣支付過程中,每筆交易都必須包含輸入和輸出。在交易時,首先會從區塊中驗證交易輸入,驗證通過後才會執行交易輸出。這一步可以防止 雙花 攻擊。區塊鏈是乙個去中心化的分布式賬本,既然是分布式,那就需要網路中的各個節點對賬本資訊達成共...
位元幣協議與實現
從技術角度看,位元幣是一種數字加密貨幣協議,它僅僅約定了在位元幣網路中 節點旳行為規範,因此任何人都可以遵照此規範實現自己的位元幣節點軟體並接入 位元幣網路。如果你希望深入了解位元幣協議,可以檢視 這裡。容易理解,在現有的諸多實現中,最著名的就是最早由中本聰本人發起的 bitcoincore專案 部...
位元幣記錄篇 三
位元幣 位元幣是乙個分布式的點對點網路系統,因此沒有 伺服器。也沒有 發行機構。位元幣是通過 挖礦 產生的,挖礦就是驗證位元幣交易的同時參與競賽來解決乙個數學問題。任何參與者都可以做礦工,用他們的電腦算力來驗證和記錄交易。平均每10min就有人能驗證過去這10min發生的交易,他將會獲得新幣作為工作...