-
1 # 多一條正能量
-
2 # 驚奇課代表
幾個礦工同學來共同做一道數學題
題目是計算一個跟隨網路複雜度而調整的隨機數(雜湊)
誰先做出這道題,就能得到一枚比特幣
並且,其他礦工同學也會知道你最先做出這道題
因此你的工作得到了證實
-
3 # 區塊前沿科技
比特幣是一個去中心化的系統。傳統的中心化系統都有一箇中心的結構負責每一筆交易的結算並同時記載下所有的歷史交易資料。
而比特幣則是一個去中心化的系統,並沒有一箇中心的結算機構。因此需要普通使用者提供計算能力來共同完成交易的見證。而工作量證明實際上就是確認交易的過程。
當一筆新的交易產生,每一個“礦工”就可以執行挖礦程式,用前一區塊的雜湊值 + 當前區塊高度 + 時間戳 + Nonce(初始化為0)一起進行雜湊運算,計算出的結果如果滿足難度值就可以廣播自己的結果,如果結果被區塊連結受了,那麼該區塊中的比特幣就作為獎勵發給最先計算出結果的礦工。
而礦工提供的計算能力越強,計算出結果的速度就越快,得到獎勵的可能性就越大。通俗來說工作量證明就是多勞多得。
-
4 # CPC嘚啵嘚
比特幣是一串雜湊密碼。相當於解一大堆謎語。 誰猜對了誰就得到獎勵。獎勵就是比特幣。因為這個謎語很難很多,這樣誰的猜謎語能力強。誰猜對的機率就大。就是我們說的挖礦。這樣誰的礦機多,誰能算力(解謎語能力)大,誰就更大機會猜對。相當於一種多勞多得的機制。這就是工作量證明。
-
5 # LaoHuang188
2008年10月31日,中本聰(Satoshi)發表了《比特幣——一種點對點電子現金系統》白皮書,這是革命性貨幣體系的組成部分,也是比特幣的規範協議。
2009年1月3日,隨著Satoshi發表了第一個實現該論文的Block# 0 Genesis Block,該白皮書開始生效。這些程式碼大部分是用c++編寫的,並且是開源的,可以在github上找到。
比特幣是什麼?
比特幣建立在區塊鏈系統之上,純粹的點對點電子現金系統將允許直接從一方傳送到另一方的線上支付,而無需經過金融機構。
為什麼是點對點?
節點是執行比特幣軟體(比特幣客戶機)的計算機。節點連線到其他計算機以建立網路。每個節點都相互連線,所以形成了一個網路,每個節點都是對等的。節點之間相互通訊,傳遞關於n/w其他部分的資訊。
所以現在我們有了一組執行比特幣軟體的節點,這些節點連線在一起形成一個比特幣n/w。讓我們舉個例子。Alice想透過Bob的比特幣錢包傳送5比特幣,這個錢包建立了一個交易,並將其插入比特幣的n/w節點。網路上的每個節點執行3個功能
1、遵循一套用比特幣客戶端軟體編寫的規則。如:檢查這個人是否有足夠的餘額來消費,如果是,則接受該交易,如果沒有拒絕,則將其傳遞給其他節點。因此,只有有效的交易才會被代理。
2、擅自進行交易。有兩種型別的交易是主動的—最近進入網路的新交易,已確認的交易,這些交易以塊的形式共享,而不是單獨的
3、將已確認的交易追加到其區塊鏈。
什麼是區塊鏈?
區塊鏈可以看作是可以儲存為一個平面檔案或一個簡單的資料庫塊鏈。例如,比特幣的核心客戶將區塊鏈儲存在谷歌的一級資料庫。區塊鏈的特性:
1、區塊鏈是一個連結串列資料結構。每個節點都有資料(塊,稍後我們將看到每個塊是什麼)和指向前一個塊雜湊的連結。因此,每個節點都與之前的節點進行了隱式連結,使得每個節點不可變,篡改會破壞鏈。
2、去中心化。區塊鏈的副本存在於網路中的所有節點上,就像公共分類賬一樣。區塊鏈就像比特幣對點網路上的BitTorrent檔案一樣可以共享。
挖礦目的
n/w上的每個節點都有一個記憶體池,一個臨時儲存緩衝區。每個節點還有一個本地儲存到節點的區塊鏈。當節點從其他節點接收到交易時,它將驗證該交易並將其新增到記憶體池中。最終目標是建立一個包含這些交易的塊,驗證它們並將其新增到區塊鏈上。一旦交易被新增到區塊鏈中,它們就會被“確認”,這就允許比特幣的新主人使用他們在這些交易中收到的比特幣。
誰建立了塊,誰將交易新增到塊中——“礦工”。比特幣n/w中的任何節點都可以成為礦工。
1、挖礦用於確保不使用欺詐性交易。例如雙重支出問題。
2、挖礦會產生新的比特幣,如果有新的區塊,就會產生新的比特幣,就像央行印新錢一樣。比特幣的數量是固定的,並隨著時間的推移而遞減。(這是用比特幣協議寫的)。礦工提供比特幣n/w的處理能力,作為回報。
新增到記憶體池中的交易將等待挖掘程式拾取。礦工建立一個新塊,將記憶體池中的部分或全部交易(基於優先順序)新增到這個新的候選塊中,並與其他礦工競爭,以解決一個基於加密雜湊演算法的數學難題。這個“工作量證明”問題的解決方案包含在塊中,它可以作為採礦者花費了大量計算工作的證明。第一個解決該問題的礦工將獲得獎勵,驗證塊將被新增到區塊鏈中。採礦者可以從採礦中獲得兩種獎勵——創造新代幣並給予採礦者交易費。
新代幣的產生是固定的,並在不斷減少,2009年開始是50比特幣,2012年減半至25比特幣,2016年減半至12.5比特幣,大約每四年減少一次。預計每10分鐘開採一個新區塊。比特幣軟體對比特幣總量有一個最高限額,即2100萬比特幣。所以到2140年左右,所有的比特幣都將發行,之後不會再發行新的比特幣。礦工只能從交易費中獲利。
比特幣區塊鏈中的塊是什麼?
礦工建立的每個新塊都有一個頭塊和一個主塊。所有選定的交易都新增到主塊中。
1、上一個塊雜湊。
2、時間戳,建立此塊的日期/時間。
3、難度目標,為使塊生成時間保持在10分鐘以內,難度目標是一個可以自行調整的動態值。
4、Nonce,一個初始化為0的計數器(稍後我們將看到它是什麼)
5、Merkle root hash, Merkle tree是一種資料結構,用於有效地總結塊中的所有交易。(我們將在接下來的部落格中看到merkle樹是什麼以及它是如何構建的)。
挖礦過程
它使用SHA-256雜湊函式。
挖掘的是塊頭的雜湊,反覆更改一個引數(nonce),直到得到的雜湊小於或等於一個特定的目標。
什麼是難度目標?
為了使塊生成時間保持在10分鐘,難度會相應地進行調整。如果n/w查詢塊的速度超過10分鐘,則難度增加,如果塊的查詢速度較慢,則難度降低。您可以在power .cpp中的github上的reference erence實現中找到設定當前難度的程式碼。
工作量證明演算法如何工作?
挖掘器負責構造一個充滿交易的候選塊,雜湊塊頭以檢視它是否小於或等於當前目標,如果不是,則修改nonce(通常遞增1),然後重試,直到找到解決方案。挖掘需要大量的計算能力,因此現在節點使用ASIC硬體,其中100 -1000秒的積體電路並行執行SHA-256 algo。一旦找到一個解決方案,用於解決這個問題的nonce就被插入到塊中的nonce欄位中,節點立即將這個塊傳輸給它的所有對等節點。它們接收、驗證(驗證規則可以在CheckBlock和checkblockheader檔案中找到)並生成新塊。當節點在網路周圍波動時,每個節點將其新增到自己的區塊鏈中,並將其擴充套件到一個新的高度。
因此挖掘就是在這個塊上建立新的塊,聚集和新增的新交易,在這個塊之上執行演算法的證明可以找到這個問題的答案,透過投資計算能力和預期回報(新生成的比特幣和交易費用)宣傳這一塊。
為什麼使用工作量證明演算法?
工作量證明基本上確保了礦工不作弊,他們負責比特幣的生成和建立新的區塊新增到區塊鏈。
我們無法相信網路中的每個人都是誠實的,因此,我們如何確保礦工不會透過在區塊中新增交易、給自己帶來比特幣,來建立對自己有利的區塊。它的工作原理是,你讓一群人都試著猜這道數學題的答案,沒有人知道誰會先得到正確的答案。首先得到正確答案的人將獲得獎勵,但前提是所有其他礦工同意接受該交易記錄(如果某個礦工明顯在建立欺詐性交易,那麼其他礦工可以集體拒絕接受他們的貢獻)。這就是為什麼建立一個新塊的過程被設計成能源密集型的原因,因此,建立每個新塊都有相關的成本。這就阻止了礦工們簡單地創造出一大堆新的欺詐性區塊,並寄希望於這些區塊可能會被接受,因為這樣做的成本抵消了潛在的回報。如果要求每臺計算機在傳送每封郵件之前花一分鐘處理PoW問題,那麼只有真正有訊息的人才會同意花時間。花費一分鐘的電腦時間對一個人來說是非常低的成本,但是一個正在傳送1000萬封垃圾郵件的人卻等不起1000萬分鍾。所以回到比特幣上來看,每一個礦工解決每一個區塊的機會是非常小的,因為解決這些區塊需要花費大量的努力,他們不能只是用解決方案向網路傳送垃圾郵件。這意味著只有當他們的貢獻被網路接受時,他們才會被激勵去付出努力。
回覆列表
比特幣BTC,的共識是Pow既工作量證明。
首先得搞清楚這個工作量證明是在整個比特幣網路中,與非參與比特幣網路的人是沒有關係的。所有比特幣持有者,和這個證明沒有毛線的關係。
其次,必須得清楚,這個網路以及所有區塊鏈搭建的網路,不是指的人與人之間的那種網路,是純機械的程式式的……。在這個網路中,普通人能看得到摸得到的只有伺服器和所謂的礦機。概念搞不懂,就跑偏。
這個證明簡單說是把即定數量的比特幣,公平公正、公開透明的,分配到參與整個比特幣網路,為其提供算力的,所有線上運轉的,礦機的。也就是說只要比特幣脫離了礦機或者說從被挖出來的一瞬間,就和這個證明沒關係了。
但是很多人錯誤理解成:我認可比特幣就是對比特幣共識了。
正因為很多人對區塊鏈共識概念的模糊和曲解,而被不法者,騙了一批又一批做發財夢的人。