簡介
交易廣播的英文名為Transaction Broadcast,是區塊鏈中與交易過程相關的辭彙。將交易信息在
區塊鏈網路中“廣播”,並由節點驗證即確認的過程。
交易確認
交易確認(Confirmation)表示該筆交易被區塊鏈網路所記錄並確認,當交易發生時,記錄該筆交易的區塊將進行第一次確認,並在該區塊之後的鏈上的每一個區塊進行再次確認;當確認數達 到六個及以上時,通常認為這筆交易比較安全並難以篡改。
比特幣幾乎是即時接收付款的。然而,在網路開始將你的交易加入一個區塊來確認該交易以及你可以使用接收到的比特幣之前,有一個平均10分鐘的延遲。確認的意思是在網路上達成了一個共識,即你收到的比特幣沒有用來支付給別人因此被認定是你的財產。一旦你的交易被包含進一個區塊,則之後的所有區塊都會包含它,這將極大地鞏固這個共識並減小交易撤銷的風險。每一個用戶都可以自行判斷交易被確認的時間點,但通常來說,收到6個確認就如同在信用卡交易後等待6個月那樣安全。
任何人均可以在專門的硬體上運行軟體而成為比特幣礦工。挖礦軟體通過P2P網路監聽交易廣播,執行恰當的任務以處理並確認這些交易。比特幣礦工完成這些工作能賺取用戶支付的用於加速交易處理的交易手續費以及按固定公式增發的比特幣。
新的交易需要被包含在一個具有數學
工作量證明的區塊中才能被確認。這種證明很難生成因為它只能通過每秒嘗試數十億次的計算來產生。礦工們需要在他們的區塊被接受並拿到獎勵前運行這些計算。隨著更多的人開始挖礦,尋找有效區塊的難度就會由網路自動增加以確保找到區塊的平均時間保持在10分鐘。因此,挖礦的競爭非常激烈,沒有一個個體礦工能夠控制塊鏈里所包含的內容。
工作量證明還被設計成必須依賴以往的區塊,這樣便強制了塊鏈的時間順序。這種設計使得撤銷以往的交易變得極其困難,因為需要重新計算所有後續區塊的工作量證明。當兩個區塊同時被找到,礦工會處理接收到的第一個區塊,一旦找到下一個區塊便將其轉至最長的塊鏈。這樣就確保採礦過程維持一個基於處理能力的全局一致性。
比特幣礦工既不能通過作弊增加自己的報酬,也不能處理那些破壞比特幣網路的欺詐交易,因為所有的比特幣節點都會拒絕含有違反比特幣協定規則的無效數據的區塊。因此,即使不是所有比特幣礦工都可以信任,比特幣網路仍然是安全的。
區塊鏈的交易流程
比特幣是一種點對點的電子現金系統,更直接地說是節點對節點。每筆交易由發起方向周圍的節點進行廣播。節點收到以後再廣播給自己周圍的節點,最終擴散至全網。每一個
比特幣錢包都是一個節點,其中擁有完整區塊鏈賬本的節點叫做全節點。
2017年10月比特幣全網約有9300個全節點,負責比特幣轉賬交易的廣播和驗證。運行比特幣節點不提供任何獎勵,且不需要全節點也可以進行比特幣轉賬,所以比特幣的全節點數隻占節點數的一小部分。
發起一筆比特幣轉賬後,你需要將交易廣播至
全網。挖礦節點接到這筆交易後,先將其放進本地記憶體池進行一些基本驗證,比如該筆交易花費的比特幣是否是未被花費的交易。
如果驗證成功,則將其放入“未確認交易池”(Unconfirm Transaction)等待被打包。
如果驗證失敗,則該交易會被標記為“無效交易”(Invalid Transaction)不會被打包,也就是說,挖礦節點在比拼算力的同時還需要及時驗證每筆交易,更新自己的“未確認交易池”。節點搶到記賬權後,將從“未確認交易池”中,抽取約近千筆“未確認交易”進行打包,有時候我們的交易不能被及時打包,是因為“未確認交易池”中的交易筆數太多,而每個區塊能記錄的交易筆數有限,這時候就會造成區塊擁堵。因此,可以概括為以下五步。
1、交易的生成
當前所有者利用私鑰對前一次交易和下一位所有者簽署一個數字簽名,並將這個簽名附加在這枚貨幣的末尾,製作成交易單。
2、交易的傳播
當前所有者將交易單廣播至全網,每個節點都將收到的交易納入一個區塊中。
3、工作量證明
每個節點通過相當於解一道數學題的
工作量證明機制,從而獲得創建新區塊的權力,並爭取得到數字貨幣的獎勵。
4、整個網路節點的驗證
當一個節點有解時,它就向全網廣播該區塊記錄的所有蓋時間戳的交易,並由全網其他節點核對。
5、記錄到區塊鏈
全網其他節點核對該區塊記賬的正確性,沒有錯誤後他們將在該合法區塊之後競爭下一個區塊,這樣就形成了一個合法記賬的
區塊鏈。