區塊雲挖礦源代碼
可以將區塊鏈看作一本記錄所有交易的公開總帳簿(列表),比特幣網路中的每個參與者都把它看作一本所有權的權威記錄。
比特幣沒有中心機構,幾乎所有的完整節點都有一份公共總帳的備份,這份總帳可以被視為認證過的記錄。
至今為止,在主幹區塊鏈上,沒有發生一起成功的攻擊,一次都沒有。
通過創造出新區塊,比特幣以一個確定的但不斷減慢的速率被鑄造出來。大約每十分鍾產生一個新區塊,每一個新區塊都伴隨著一定數量從無到有的全新比特幣。每開采210,000個塊,大約耗時4年,貨幣發行速率降低50%。
在2016年的某個時刻,在第420,000個區塊被「挖掘」出來之後降低到12.5比特幣/區塊。在第13,230,000個區塊(大概在2137年被挖出)之前,新幣的發行速度會以指數形式進行64次「二等分」。到那時每區塊發行比特幣數量變為比特幣的最小貨幣單位——1聰。最終,在經過1,344萬個區塊之後,所有的共20,999,999.9769億聰比特幣將全部發行完畢。換句話說, 到2140年左右,會存在接近2,100萬比特幣。在那之後,新的區塊不再包含比特幣獎勵,礦工的收益全部來自交易費。
在收到交易後,每一個節點都會在全網廣播前對這些交易進行校驗,並以接收時的相應順序,為有效的新交易建立一個池(交易池)。
每一個節點在校驗每一筆交易時,都需要對照一個長長的標准列表:
交易的語法和數據結構必須正確。
輸入與輸出列表都不能為空。
交易的位元組大小是小於MAX_BLOCK_SIZE的。
每一個輸出值,以及總量,必須在規定值的范圍內 (小於2,100萬個幣,大於0)。
沒有哈希等於0,N等於-1的輸入(coinbase交易不應當被中繼)。
nLockTime是小於或等於INT_MAX的。
交易的位元組大小是大於或等於100的。
交易中的簽名數量應小於簽名操作數量上限。
解鎖腳本(Sig)只能夠將數字壓入棧中,並且鎖定腳本(Pubkey)必須要符合isStandard的格式 (該格式將會拒絕非標准交易)。
池中或位於主分支區塊中的一個匹配交易必須是存在的。
對於每一個輸入,如果引用的輸出存在於池中任何的交易,該交易將被拒絕。
對於每一個輸入,在主分支和交易池中尋找引用的輸出交易。如果輸出交易缺少任何一個輸入,該交易將成為一個孤立的交易。如果與其匹配的交易還沒有出現在池中,那麼將被加入到孤立交易池中。
對於每一個輸入,如果引用的輸出交易是一個coinbase輸出,該輸入必須至少獲得COINBASE_MATURITY (100)個確認。
對於每一個輸入,引用的輸出是必須存在的,並且沒有被花費。
使用引用的輸出交易獲得輸入值,並檢查每一個輸入值和總值是否在規定值的范圍內 (小於2100萬個幣,大於0)。
如果輸入值的總和小於輸出值的總和,交易將被中止。
如果交易費用太低以至於無法進入一個空的區塊,交易將被拒絕。
每一個輸入的解鎖腳本必須依據相應輸出的鎖定腳本來驗證。
以下挖礦節點取名為 A挖礦節點
挖礦節點時刻監聽著傳播到比特幣網路的新區塊。而這些新加入的區塊對挖礦節點有著特殊的意義。礦工間的競爭以新區塊的傳播而結束,如同宣布誰是最後的贏家。對於礦工們來說,獲得一個新區塊意味著某個參與者贏了,而他們則輸了這場競爭。然而,一輪競爭的結束也代表著下一輪競爭的開始。
驗證交易後,比特幣節點會將這些交易添加到自己的內存池中。內存池也稱作交易池,用來暫存尚未被加入到區塊的交易記錄。
A節點需要為內存池中的每筆交易分配一個優先順序,並選擇較高優先順序的交易記錄來構建候選區塊。
一個交易想要成為「較高優先順序」,需滿足的條件:優先值大於57,600,000,這個值的生成依賴於3個參數:一個比特幣(即1億聰),年齡為一天(144個區塊),交易的大小為250個位元組:
High Priority > 100,000,000 satoshis * 144 blocks / 250 bytes = 57,600,000
區塊中用來存儲交易的前50K位元組是保留給較高優先順序交易的。 節點在填充這50K位元組的時候,會優先考慮這些最高優先順序的交易,不管它們是否包含了礦工費。這種機制使得高優先順序交易即便是零礦工費,也可以優先被處理。
然後,A挖礦節點會選出那些包含最小礦工費的交易,並按照「每千位元組礦工費」進行排序,優先選擇礦工費高的交易來填充剩下的區塊。
如區塊中仍有剩餘空間,A挖礦節點可以選擇那些不含礦工費的交易。有些礦工會竭盡全力將那些不含礦工費的交易整合到區塊中,而其他礦工也許會選擇忽略這些交易。
在區塊被填滿後,內存池中的剩餘交易會成為下一個區塊的候選交易。因為這些交易還留在內存池中,所以隨著新的區塊被加到鏈上,這些交易輸入時所引用UTXO的深度(即交易「塊齡」)也會隨著變大。由於交易的優先值取決於它交易輸入的「塊齡」,所以這個交易的優先值也就隨之增長了。最後,一個零礦工費交易的優先值就有可能會滿足高優先順序的門檻,被免費地打包進區塊。
UTXO(Unspent Transaction Output) : 每筆交易都有若干交易輸入,也就是資金來源,也都有若干筆交易輸出,也就是資金去向。一般來說,每一筆交易都要花費(spend)一筆輸入,產生一筆輸出,而其所產生的輸出,就是「未花費過的交易輸出」,也就是 UTXO。
塊齡:UTXO的「塊齡」是自該UTXO被記錄到區塊鏈為止所經歷過的區塊數,即這個UTXO在區塊鏈中的深度。
區塊中的第一筆交易是筆特殊交易,稱為創幣交易或者coinbase交易。這個交易是由挖礦節點構造並用來獎勵礦工們所做的貢獻的。假設此時一個區塊的獎勵是25比特幣,A挖礦的節點會創建「向A的地址支付25.1個比特幣(包含礦工費0.1個比特幣)」這樣一個交易,把生成交易的獎勵發送到自己的錢包。A挖出區塊獲得的獎勵金額是coinbase獎勵(25個全新的比特幣)和區塊中全部交易礦工費的總和。
A節點已經構建了一個候選區塊,那麼就輪到A的礦機對這個新區塊進行「挖掘」,求解工作量證明演算法以使這個區塊有效。比特幣挖礦過程使用的是SHA256哈希函數。
用最簡單的術語來說, 挖礦節點不斷重復進行嘗試,直到它找到的隨機調整數使得產生的哈希值低於某個特定的目標。 哈希函數的結果無法提前得知,也沒有能得到一個特定哈希值的模式。舉個例子,你一個人在屋裡打檯球,白球從A點到達B點,但是一個人推門進來看到白球在B點,卻無論如何是不知道如何從A到B的。哈希函數的這個特性意味著:得到哈希值的唯一方法是不斷的嘗試,每次隨機修改輸入,直到出現適當的哈希值。
需要以下參數
• block的版本 version
• 上一個block的hash值: prev_hash
• 需要寫入的交易記錄的hash樹的值: merkle_root
• 更新時間: ntime
• 當前難度: nbits
挖礦的過程就是找到x使得
SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET
上式的x的范圍是0~2^32, TARGET可以根據當前難度求出的。
簡單打個比方,想像人們不斷扔一對色子以得到小於一個特定點數的游戲。第一局,目標是12。只要你不扔出兩個6,你就會贏。然後下一局目標為11。玩家只能扔10或更小的點數才能贏,不過也很簡單。假如幾局之後目標降低為了5。現在有一半機率以上扔出來的色子加起來點數會超過5,因此無效。隨著目標越來越小,要想贏的話,扔色子的次數會指數級的上升。最終當目標為2時(最小可能點數),只有一個人平均扔36次或2%扔的次數中,他才能贏。
如前所述,目標決定了難度,進而影響求解工作量證明演算法所需要的時間。那麼問題來了:為什麼這個難度值是可調整的?由誰來調整?如何調整?
比特幣的區塊平均每10分鍾生成一個。這就是比特幣的心跳,是貨幣發行速率和交易達成速度的基礎。不僅是在短期內,而是在幾十年內它都必須要保持恆定。在此期間,計算機性能將飛速提升。此外,參與挖礦的人和計算機也會不斷變化。為了能讓新區塊的保持10分鍾一個的產生速率,挖礦的難度必須根據這些變化進行調整。事實上,難度是一個動態的參數,會定期調整以達到每10分鍾一個新區塊的目標。簡單地說,難度被設定在,無論挖礦能力如何,新區塊產生速率都保持在10分鍾一個。
那麼,在一個完全去中心化的網路中,這樣的調整是如何做到的呢?難度的調整是在每個完整節點中獨立自動發生的。每2,016個區塊(2周產生的區塊)中的所有節點都會調整難度。難度的調整公式是由最新2,016個區塊的花費時長與20,160分鍾(兩周,即這些區塊以10分鍾一個速率所期望花費的時長)比較得出的。難度是根據實際時長與期望時長的比值進行相應調整的(或變難或變易)。簡單來說,如果網路發現區塊產生速率比10分鍾要快時會增加難度。如果發現比10分鍾慢時則降低難度。
為了防止難度的變化過快,每個周期的調整幅度必須小於一個因子(值為4)。如果要調整的幅度大於4倍,則按4倍調整。由於在下一個2,016區塊的周期不平衡的情況會繼續存在,所以進一步的難度調整會在下一周期進行。因此平衡哈希計算能力和難度的巨大差異有可能需要花費幾個2,016區塊周期才會完成。
舉個例子,當前A節點在挖277,316個區塊,A挖礦節點一旦完成計算,立刻將這個區塊發給它的所有相鄰節點。這些節點在接收並驗證這個新區塊後,也會繼續傳播此區塊。當這個新區塊在網路中擴散時,每個節點都會將它作為第277,316個區塊(父區塊為277,315)加到自身節點的區塊鏈副本中。當挖礦節點收到並驗證了這個新區塊後,它們會放棄之前對構建這個相同高度區塊的計算,並立即開始計算區塊鏈中下一個區塊的工作。
比特幣共識機制的第三步是通過網路中的每個節點獨立校驗每個新區塊。當新區塊在網路中傳播時,每一個節點在將它轉發到其節點之前,會進行一系列的測試去驗證它。這確保了只有有效的區塊會在網路中傳播。
每一個節點對每一個新區塊的獨立校驗,確保了礦工無法欺詐。在前面的章節中,我們看到了礦工們如何去記錄一筆交易,以獲得在此區塊中創造的新比特幣和交易費。為什麼礦工不為他們自己記錄一筆交易去獲得數以千計的比特幣?這是因為每一個節點根據相同的規則對區塊進行校驗。一個無效的coinbase交易將使整個區塊無效,這將導致該區塊被拒絕,因此,該交易就不會成為總賬的一部分。
比特幣去中心化的共識機制的最後一步是將區塊集合至有最大工作量證明的鏈中。一旦一個節點驗證了一個新的區塊,它將嘗試將新的區塊連接到到現存的區塊鏈,將它們組裝起來。
節點維護三種區塊:
· 第一種是連接到主鏈上的,
· 第二種是從主鏈上產生分支的(備用鏈),
· 第三種是在已知鏈中沒有找到已知父區塊的。
有時候,新區塊所延長的區塊鏈並不是主鏈,這一點我們將在下面「 區塊鏈分叉」中看到。
如果節點收到了一個有效的區塊,而在現有的區塊鏈中卻未找到它的父區塊,那麼這個區塊被認為是「孤塊」。孤塊會被保存在孤塊池中,直到它們的父區塊被節點收到。一旦收到了父區塊並且將其連接到現有區塊鏈上,節點就會將孤塊從孤塊池中取出,並且連接到它的父區塊,讓它作為區塊鏈的一部分。當兩個區塊在很短的時間間隔內被挖出來,節點有可能會以相反的順序接收到它們,這個時候孤塊現象就會出現。
選擇了最大難度的區塊鏈後,所有的節點最終在全網范圍內達成共識。隨著更多的工作量證明被添加到鏈中,鏈的暫時性差異最終會得到解決。挖礦節點通過「投票」來選擇它們想要延長的區塊鏈,當它們挖出一個新塊並且延長了一個鏈,新塊本身就代表它們的投票。
因為區塊鏈是去中心化的數據結構,所以不同副本之間不能總是保持一致。區塊有可能在不同時間到達不同節點,導致節點有不同的區塊鏈視角。解決的辦法是, 每一個節點總是選擇並嘗試延長代表累計了最大工作量證明的區塊鏈,也就是最長的或最大累計難度的鏈。
當有兩個候選區塊同時想要延長最長區塊鏈時,分叉事件就會發生。正常情況下,分叉發生在兩名礦工在較短的時間內,各自都算得了工作量證明解的時候。兩個礦工在各自的候選區塊一發現解,便立即傳播自己的「獲勝」區塊到網路中,先是傳播給鄰近的節點而後傳播到整個網路。每個收到有效區塊的節點都會將其並入並延長區塊鏈。如果該節點在隨後又收到了另一個候選區塊,而這個區塊又擁有同樣父區塊,那麼節點會將這個區塊連接到候選鏈上。其結果是,一些節點收到了一個候選區塊,而另一些節點收到了另一個候選區塊,這時兩個不同版本的區塊鏈就出現了。
分叉之前
分叉開始
我們看到兩個礦工幾乎同時挖到了兩個不同的區塊。為了便於跟蹤這個分叉事件,我們設定有一個被標記為紅色的、來自加拿大的區塊,還有一個被標記為綠色的、來自澳大利亞的區塊。
假設有這樣一種情況,一個在加拿大的礦工發現了「紅色」區塊的工作量證明解,在「藍色」的父區塊上延長了塊鏈。幾乎同一時刻,一個澳大利亞的礦工找到了「綠色」區塊的解,也延長了「藍色」區塊。那麼現在我們就有了兩個區塊:一個是源於加拿大的「紅色」區塊;另一個是源於澳大利亞的「綠色」。這兩個區塊都是有效的,均包含有效的工作量證明解並延長同一個父區塊。這個兩個區塊可能包含了幾乎相同的交易,只是在交易的排序上有些許不同。
比特幣網路中鄰近(網路拓撲上的鄰近,而非地理上的)加拿大的節點會首先收到「紅色」區塊,並建立一個最大累計難度的區塊,「紅色」區塊為這個鏈的最後一個區塊(藍色-紅色),同時忽略晚一些到達的「綠色」區塊。相比之下,離澳大利亞更近的節點會判定「綠色」區塊勝出,並以它為最後一個區塊來延長區塊鏈(藍色-綠色),忽略晚幾秒到達的「紅色」區塊。那些首先收到「紅色」區塊的節點,會即刻以這個區塊為父區塊來產生新的候選區塊,並嘗試尋找這個候選區塊的工作量證明解。同樣地,接受「綠色」區塊的節點會以這個區塊為鏈的頂點開始生成新塊,延長這個鏈。
分叉問題幾乎總是在一個區塊內就被解決了。網路中的一部分算力專注於「紅色」區塊為父區塊,在其之上建立新的區塊;另一部分算力則專注在「綠色」區塊上。即便算力在這兩個陣營中平均分配,也總有一個陣營搶在另一個陣營前發現工作量證明解並將其傳播出去。在這個例子中我們可以打個比方,假如工作在「綠色」區塊上的礦工找到了一個「粉色」區塊延長了區塊鏈(藍色-綠色-粉色),他們會立刻傳播這個新區塊,整個網路會都會認為這個區塊是有效的,如上圖所示。
所有在上一輪選擇「綠色」區塊為勝出者的節點會直接將這條鏈延長一個區塊。然而,那些選擇「紅色」區塊為勝出者的節點現在會看到兩個鏈: 「藍色-綠色-粉色」和「藍色-紅色」。 如上圖所示,這些節點會根據結果將 「藍色-綠色-粉色」 這條鏈設置為主鏈,將 「藍色-紅色」 這條鏈設置為備用鏈。 這些節點接納了新的更長的鏈,被迫改變了原有對區塊鏈的觀點,這就叫做鏈的重新共識 。因為「紅」區塊做為父區塊已經不在最長鏈上,導致了他們的候選區塊已經成為了「孤塊」,所以現在任何原本想要在「藍色-紅色」鏈上延長區塊鏈的礦工都會停下來。全網將 「藍色-綠色-粉色」 這條鏈識別為主鏈,「粉色」區塊為這條鏈的最後一個區塊。全部礦工立刻將他們產生的候選區塊的父區塊切換為「粉色」,來延長「藍色-綠色-粉色」這條鏈。
從理論上來說,兩個區塊的分叉是有可能的,這種情況發生在因先前分叉而相互對立起來的礦工,又幾乎同時發現了兩個不同區塊的解。然而,這種情況發生的幾率是很低的。單區塊分叉每周都會發生,而雙塊分叉則非常罕見。
比特幣將區塊間隔設計為10分鍾,是在更快速的交易確認和更低的分叉概率間作出的妥協。更短的區塊產生間隔會讓交易清算更快地完成,也會導致更加頻繁地區塊鏈分叉。與之相對地,更長的間隔會減少分叉數量,卻會導致更長的清算時間。
㈡ 虛擬貨幣如何挖礦
挖礦是最原始獲取數字貨幣的「勘探方式」,實質上是用計算機解決一項復雜的數學問題,如果將區塊鏈比作一個大帳本,其中的區塊是賬本中的某一頁,而所有的礦工則是記賬員,挖礦的過程就是在記賬,同時也是在維護整個網路正常運轉。
挖礦的過程很簡單,以比特幣為例,每10分鍾,所有的礦工一起計算一道數學題,誰先算出答案,就相當於挖到了這個區塊、作為獎勵即可獲得相應的比特幣。挖礦的設備最早使用電腦就行,通過電腦CPU計算數學題挖礦、隨著比特幣價格走高,越來越多的人參與挖礦,CPU挖礦慢慢轉變為專業顯卡,到近幾年已經變為特定的礦機了。這種演變是因為算力的問題,剛才說過挖礦就是「所有的礦工一起計算一道數學題」算力越高的硬體計算能力越強、速度越快,假設:電腦的算力是1、顯卡算力是5、礦機算力是100,那麼使用礦機挖礦效率是電腦的100倍,電腦和礦機一起挖礦幾乎沒可能挖到比特幣。
溫馨提示:投資有風險,選擇需謹慎,根據中國人民銀行等部門發布的通知、公告,虛擬貨幣不是貨幣當局發行,不具有法償性和強制性等貨幣屬性,並不是真正意義上的貨幣,不具有與貨幣等同的法律地位,不能且不應作為貨幣在市場上流通使用,公民投資和交易虛擬貨幣不受法律保護。
應答時間:2021-04-02,最新業務變化請以平安銀行官網公布為准。
[平安銀行我知道]想要知道更多?快來看「平安銀行我知道」吧~
https://b.pingan.com.cn/paim/iknow/index.html
㈢ 求一套區塊鏈挖礦源碼
虛擬礦機源碼?
我這里有...
㈣ 區塊鏈挖礦是什麼如何掙錢
挖礦是一種時間換空間,折價固定成本購買幣的一種方式。算力增長,幣價漲跌和設備更新都會是動態平衡,只要你看好區塊鏈,覺得自己沒有高拋低吸的炒幣能力,那投資挖礦會是一個不錯的區塊鏈投資選擇。 可以聯系NB雲礦,代運營挖礦,比較專業,每天都有收益。
㈤ 區塊鏈挖礦是什麼意思
以比特幣為例,每一筆交易發生後,並不算完成,交易數據必須寫入資料庫,才算成立,對方才能真正收到錢。首先,所有的交易數據都會傳送到礦工那裡。礦工負責把這些交易寫入區塊鏈。
挖礦其實是一種安全機制,利用密碼學哈希函數和非對稱加密,確保區塊鏈網路的挖礦節點在廣播區塊前,投入大量的計算,提高作假和作惡的成本,保證已有數據不可能被篡改,確保全網達成共識。
本條內容來源於:中國法律出版社《法律生活常識全知道系列叢書》
㈥ 什麼是挖礦就是那個數字加密貨幣,以前還叫虛擬貨幣,還有什麼雲算力挖礦比特幣,能賺錢不
挖礦,是指利用電腦硬體計算出比特幣的位置並獲取的過程稱之為挖礦。每隔一個時間點,比特幣系統會在系統節點上生成一個隨機代碼,互聯網中的所有計算機都可以去尋找此代碼,誰找到此代碼,就會產生一個區塊,然後就會得到一個比特幣,而這一個過程就稱為挖礦。
計算這個隨機代碼需要大量的GPU運算,於是礦工們采購海量顯卡用以更快速的獲得比特幣並以此獲利。
而比特幣有個四年一減的減半效應,也就是說每隔四年,比特幣的數量就會減少一半,這樣一來,比特幣的算力會增加,也就是說挖礦的難度就會增加。正常情況下挖礦一般指用礦機去挖,就是電腦去挖,這些都是指單獨運作的,或者說整個礦場運作的。而雲算力挖礦,指的是多人一起挖礦,你只要投入小部分,就能參與挖礦。
比特幣挖礦的通常步驟是「購買礦機-部署礦機-設置挖礦-獲取收益」,但部署礦機這步受多因素影響,比如電價、場地、溫度、噪音、運維等。這些門檻需要一定的條件和知識來消除,因此催生了挖礦行業下的一個子模塊——雲算力。
雲算力是一種遠程挖礦模式。用戶通過平台購買雲算力合約,租賃算力挖礦,定時獲取收益。雲挖礦的優點是用戶不需要深入了解挖礦原理和各種軟硬體,或購買昂貴的礦機,也無需自己24小時維護,只要下單購買就能參與挖礦,類似購買收益權產品。
對於礦場主而言,以略低於自營挖礦收益的價格將一段時間內的算力使用權租售給客戶,可以快速迴流現金、預購最新礦機、擴大生產規模、爭取到遠期市場中獲利的可能,某種程度上也能在幣價低位保留礦機、轉移風險,對沖挖礦自營業務的單一性風險。
但相比直接參與挖礦,雲算力也體現出以下劣勢:
即便平台充分展示礦場、礦機、合作、團隊等相關信息,用戶依然很難判斷平台背後的算力質量、實時運營狀況(比如是否停電、場地臨檢)或真實收益數據。
炒比特幣(短線買賣賺取價差)的風險高於屯比特幣(長期看漲),但大多屯幣者往往缺乏對短期價格變化的判斷,「提前下車」。雲算力每日為投資者帶來少量比特幣收入,也是在變相控制投資者「頻繁操作」。因此對於很多愛好比特幣的人來說,會有這樣一句話「炒幣不如挖幣」
雲算力的市場機會在於,為個人提供更中和的投資方式,門檻低於自建礦場,風險低於短線操作,成本低於市價購買啊,也讓礦場分攤成本與風險,獲得更寬裕的現金流。
雲算力的主要風險在於合約背後算力的真實性和穩定性。我們在與礦業的長期接觸中,聽到的高頻詞彙是「坑」:常理之外的停電理由、礦機運輸途中的各種插曲、病毒和勒索的不斷干擾、期貨的波動和遲來的現貨、跨國貿易的層層阻礙、防不勝防的團隊內鬼……所以,真實穩定的算力有一定的稀缺性,背後往往是多年的踩坑經驗。作為信息中介的雲算力平台如何幫助用戶篩選優質的合作礦場合作,設計友好又有吸引力的產品,制定專業、透明的行業標准,建立應對各類風險的災備方案,提供貫穿投資全程的優質服務,都將成為其核心競爭力。
當然挖礦是一個長期發展的行業,回本也是需要一定的周期的,所以能否賺錢,主要還是看你能否堅持。
㈦ 電腦上面說的挖礦是什麼意思
挖礦:即比特幣挖礦,是一種利用電腦硬體計算出比特幣的位置並獲取的過程。
㈧ 區塊鏈的挖礦是什麼意思
2009年中本聰發明比特幣,並且設定了比特幣只有2100萬個,加入到比特幣網路中,通過參與到區塊的生產中,提供工作量證明(PoW),即可獲得比特幣網路的獎勵。這個過程即是挖礦。
「挖礦」的概念取自於我們現實經濟生活中已有的概念,黃金挖礦、白銀挖礦等,因為礦物是有價值的,所以才驅使人們去付出勞動力來挖。
比特幣挖礦還有一個重要的點是因為參與挖礦的礦工認可比特幣的價值,他們挖礦挖到的比特幣市場上有人願意花錢。所以,比特幣的挖礦是有意義的。
(8)區塊雲挖礦源代碼擴展閱讀
比特幣的貨幣特徵
1,去中心化
比特幣是第一種分布式的虛擬貨幣,整個網路由用戶構成,沒有中央銀行。去中心化是比特幣安全與自由的保證。
2,全世界流通
比特幣可以在任意一台接入互聯網的電腦上管理。不管身處何方,任何人都可以挖掘、購買、出售或收取比特幣。
3,專屬所有權
操控比特幣需要私鑰,它可以被隔離保存在任何存儲介質。除了用戶自己之外無人可以獲取。
4,低交易費用
可以免費匯出比特幣,但最終對每筆交易將收取約1比特分的交易費以確保交易更快執行。
5,無隱藏成本
作為由A到B的支付手段,比特幣沒有繁瑣的額度與手續限制。知道對方比特幣地址就可以進行支付。
6,跨平台挖掘
用戶可以在眾多平台上發掘不同硬體的計算能力。
㈨ 什麼是區塊鏈挖礦是做什麼詳細介紹區塊鏈和虛擬貨幣
在比特幣剛發行的時候人們發現了,它去中心化,不受任何中心管制;它完全開放,除了交易信息加密之外整個系統信息高度透明,技術都是開源的;安全性,只要不能控制全部節點的%51,就無法肆意修改數據,這使得它相對安全;獨立性,整個模式和比特幣不依賴任何第三方,所有節點都在系統內驗證、交換數據,不受任何干預
我們這里詳細解釋什麼是區塊鏈技術,說白了就是區塊+鏈,那什麼是 「區塊」 ?什麼又是 「鏈」 呢?
區塊就是一個賬本交易記賬由分布在不同地方的多個節點共同完成,而且每一個節點記錄的是完整的賬目,因此它們都可以參與監督交易合法性,同時也可以共同為其作證
每一個區塊包含了前一個區塊的加密散列、相應時間戳記以及交易資料(通常用默克爾樹(Merkle tree)演算法計算的散列值表示),這樣的設計使得區塊內容具有難以篡改的特性。用區塊鏈技術所串接的分布式賬本能讓兩方有效記錄交易,且可永久查驗此交易。
哈希函數h()的作用:將任意長度的字元串,轉換成固定長度(例如256位)的輸出。輸出也被稱為 哈希值 ,這個輸出不可逆
很難找到兩個不同的x和y,使得h(x) = h(y),也就是說兩個不同的輸入,會有不同的輸出。理論上說兩個不同的輸入可能會有不同的輸出,但這幾乎不可能,比方說一個無限的空間映射到一個有限的空間,肯定存在多對一的情況,理論存在,但沒有任何規律,保證你無法通過數學上的任何推斷來找到這個結果,為什麼這里是256位呢?不是更長的呢?因為256位已經足夠安全。
將賬本拆分成塊,比如一個本子的一張紙就是一個區塊,每個區塊記錄一段時間內的交易,列如10分鍾
我們把每張紙比作一個一個 區塊 ,在每個區塊的上面增加一部分內容我們把它叫做 區塊頭 ,其中記錄父區塊的哈希值,通過每個區塊儲存父區塊的哈希值,將所有區塊按順利連接起來,形成區塊鏈
把 1區塊 的哈希值記錄到 2區塊 的區塊頭上,如此操作每個區塊的區塊頭都記錄父區塊的哈希值,每個區塊都按照順序鏈接起來了,這就叫做區塊鏈。第一個區塊沒有區塊頭,又被稱之為創世區塊
區塊鏈是一個賬本,在賬本上只有發生了交易你的賬戶上的錢才會變多和變少,需要進行交易那麼首先需要一個賬號和密碼,就像你的銀行卡有賬號和密碼別人就可以對你進行一個轉賬,在區塊賬本上這個賬號密碼就是公鑰和私鑰
老王(已有私鑰,公鑰),想轉給張10個BTC,需要一些操作
證明是老王本人發出轉賬 簽名函數Sign (老王的私鑰 + 轉賬信息:老王轉給張三10 BTC)=本次專賬簽名
驗證是老王本人發出轉賬 驗證函數Verify (老王的地址 + 轉賬詳細:老王轉給張三10 BTC + 本次轉賬簽名)=true
一旦轉賬記錄到區塊從此誰也不能改變它,張三增加10 BTC,老王則相應減少10 BTC,整個操作都是自動的,比如你的錢包app它會幫你去做這樣的事情,app知道你的私鑰,你告訴錢包交易內容,錢包簽名向全網公布,等待其他人來驗證這筆交易
中心化記賬效率會更高,銀行、政府或者支付寶幫你記賬,都很可靠,因為他們都無法動你的錢,除非它們有你的私鑰
中心化記賬存在一些缺點
去中心化人人都可以記賬,每個人可以保留一個完整的賬本。任何人都可以下載開源程序,參與比特幣的p2p網路,監聽來自全世界發送的交易,成為記賬節點,參與記賬,假設小逸發布了一筆交易向全網廣播,A記賬節點監聽到了這筆交易,A驗證了這筆交易位true之後放入交易池繼續向其它節點傳播,因為是網路傳播,同一時間不同記賬節點的交易池不一定相同,每10分鍾,從所有記賬節點當中,按照某個方式抽取一名,驗證這個節點的交易為true之後,之後將這個選中的節點交易池中的交易記錄與自己(A)節點的交易池中的交易記錄對比一下,對比完之後會將自己交易池中已經被選中記賬節點記錄的交易刪掉,別的不動繼續記賬等待下一次被選中,每隔10分鍾就是一個循環,這個10分鍾所有記賬節點正常記賬,10分鍾之後再選出一個節點把它交易池當中的交易作為一個新的區塊,這個區塊來自所有記賬節點中我任意選擇的一個記賬節點的交易池,如此不斷循環往復
交易並不是被記錄就完成,只有當這筆交易變成了某一個區塊,這筆交易才算是真正的完成。這就是去中心化的一個記賬的完整的流程,你的交易並不會第一時間被記錄,因為p2p網路傳播需要時間,如果被選中區塊的節點還沒有接受到你的交易,交易就沒有完成。每10分鍾產生一個區塊,但不是所有在10分鍾內的交易都能記錄。10分鍾只是一個平均值
去中心化記賬的特點,有記賬權的記賬節點,每十分鍾被選中的節點它會獲得50BTC獎勵,每21萬個區塊差不多4年,獎勵減半,比特幣自發行已經兩次減半,那麼每十分鍾產生一個新的區塊這個記賬節點得到的獎勵是10.5BTC,每隔4年減半那麼可以算出BTC的總量大約為2100萬枚,預計2040年開采完,記錄一個區塊的獎勵也是比特幣唯一的發行方式,當BTC開采完之後,記賬節點可以獲得的收益就只有交易的手續費了
記賬節點通過題目來爭奪記賬權,
找到某位隨機數使得等式不成立
SHA256哈希函數 (隨機數 + 父區塊哈希值 + 交易池中的交易) 某一指定值)
從0開始遍歷隨機數碰運氣之外,沒有其它解法,解題的過程,又叫做 挖礦 ,所以解這個題目的記賬節點又被稱之為 礦工 ,你遍歷隨機數越快你拿到這個記賬權的可能性就越大,這個遍歷速度就被礦老闆們稱之為 算力 ,為了得到這個算力,礦老闆們就會購買更多且更高算力的礦機
誰先解對,誰就得到記賬權。A記賬節點率先找到解,即向全網公布,其他節點驗證無誤之後,A節點就獲得了這個區塊,獲得12.5個BTC的收益,在新區塊之後重新開始新一輪計算。這個方式被稱之為(POW)分配記賬權
一般大約10分鍾解出這個隨機數,10並不絕對,因為解開這個題目的過程本就是個碰運氣的過程,未來應對算力的變化,比特幣每隔2016個區塊,大約兩周,會加大或減小難度,使得平均產生區塊的時間是十分鍾
每一個區塊包含了前一個區塊的加密散列、相應時間戳記以及交易資料(通常用默克爾樹(Merkle tree)演算法計算的散列值表示),這樣的設計使得區塊內容具有難以篡改的特性。用區塊鏈技術所串接的分布式賬本能讓兩方有效記錄交易,且可永久查驗此交易。
和傳統存儲的數據不同的是,區塊鏈每個節點都按照塊鏈式結構存儲完整的數據,區塊鏈每個節點存儲都是獨立的、地位等同的,依靠共識機制保證存儲的一致性,而傳統分布式存儲一般是通過中心節點往其他備份節點同步數據。
麻將作為中國傳統的區塊鏈項目,四個礦工一組,先碰撞出13個數字正確哈希值的礦工可以獲得記賬權並得到獎勵。
很多人講區塊鏈是騙局比特幣是騙局,這也許是個騙局,但是這個技術已經被廣泛地承認和應用,區塊鏈涉及的密碼學知識一般人再借幾個腦子給你你也搞不懂,在一個相對理性的角度看待問題最重要,千萬別聽風就是雨。
這門技術有著不可思議的地方 在一個沒有中心沒有監管的情況下保持著絕對的秩序 這個只需由大家的共識建立的信任,比特幣創造了這個共識,在區塊鏈的世界裡每個人都是公平平等的。