
---
**節點網絡**
任何機器都可以運行一個完整的比特幣節點,一個完整的比特幣節點包括如下功能:
1.錢包,允許用戶在區塊鏈網絡上進行交易
2.完整區塊鏈,記錄了所有交易歷史,通過特殊的結構保證歷史交易的安全性,并且用來驗證新交易的合法性
3.礦工,通過記錄交易及解密數學題來生成新區塊,如果成功可以賺取獎勵
4.路由功能,把其它節點傳送過來的交易數據等信息再傳送給更多的節點

每個礦工都是計算機組成的網絡里的節點,這些計算機構成了一個整體去驗證所有的比特幣交易。在每一筆交易中,算法會以比特幣獎勵他們,因為比特幣在真實世界具有價值,這些機器的操作者就有激勵讓機器保持運作。
---
**交易流程**

第1步:所有者A利用他的私鑰對前一次交易(比特貨來源)和下一位所有者B簽署一個數字簽名,并將這個簽名附加在這枚貨幣的末尾,制作成交易單
要點:B以公鑰作為接收方地址
第2步:A將交易單廣播至全網,比特幣就發送給了B,每個節點都將收到的交易信息納入一個區塊中。
要點:對B而言,該枚比特幣會即時顯示在比特幣錢包中,但直到區塊確認成功后才可用。目前一筆比特幣從支付到最終確認成功,得到6個區塊確認之后才能真正確認到帳。
第3步:每個節點通過解一道數學難題,從而去獲得創建新區塊權利,并爭取得到比特幣的獎勵(新比特幣會在此過程中產生)
要點:節點反復嘗試尋找一個數值,使得將該數值、區塊鏈中最后一個區塊的Hash值以及交易單三部分送入SHA256算法后能計算出散列值X(256位)滿足一定條件(比如前20位均為0),即找到數學難題的解。由此可見,答案并不唯一。
第4步:當一個節點找到解時,它就向全網廣播該區塊記錄的所有蓋時間戳交易,并由全網其他節點核對
要點:時間戳用來證實特定區塊必然于某特定時間是的確存在的。比特幣網絡采取從5個以上節點獲取時間,然后取中間值的方式作為時間戳。
第5步:全網其他節點核對該區塊記賬的正確性,沒有錯誤后他們將在該合法區塊之后競爭下一個區塊,這樣就形成了一個合法記賬的區塊鏈。
要點:每個區塊的創建時間大約在10分鐘。隨著全網算力的不斷變化,每個區塊的產生時間會隨算力增強而縮短、隨算力減弱而延長。其原理是根據最近產生的2016年區塊的時間差(約兩周時間),自動調整每個區塊的生成難度(比如減少或增加目標值中0的個數),使得每個區塊的生成時間是10分鐘。