當前位置:首頁 » 比特幣問答 » 比特幣交易體積size226kb

比特幣交易體積size226kb

發布時間: 2025-07-26 01:11:19

比特幣礦池的協議stratum

轉自: https://zhuanlan.hu.com/p/23558268
getblocktemplate協議誕生於2012年中葉,此時礦池已經出現。礦池採用getblocktemplate協議與節點客戶端交互,採用stratum協議與礦工交互,這是最典型的礦池搭建模式。

與getwork相比,getblocktemplate協議最大的不同點是:getblocktemplate協議讓礦工自行構造區塊。如此一來,節點和挖礦完全分離。對於getwork來說,區塊鏈是黑暗的,getwork對區塊鏈一無所知,他只知道修改data欄位的4個位元組。對於getblocktemplate來說,整個區塊鏈是透明的,getblocktemplate掌握區塊鏈上與挖礦有關的所有信息,包括待確認交易池,getblocktemplate可以自己選擇包含進區塊的交易。

挖礦有兩種方式,一種叫SOLO挖礦,另一種是去礦池挖礦。前文所述的在節點客戶端直接啟動CPU挖礦,以及依靠getwork+cgminer驅動顯卡直接連接節點客戶端挖礦,都是SOLO挖礦,SOLO好比自己獨資買彩票,不輕易中獎,中獎則收益全部歸自己所有。去礦池挖礦好比合買彩票,大家一起出錢,能買一堆彩票,中獎後按出資比率分配收益。理論上,礦機可以藉助getblocktemplate協議鏈接節點客戶端SOLO挖礦,但其實早已沒有礦工會那麼做,在寫這篇文章時,比特幣全網算力1600P+,而當前最先進的礦機算力10T左右,如此算來,單台礦機SOLO挖到一個塊的概率不到16萬分之一,礦工(人)投入真金白銀購買礦機、交付電費,不會做風險那麼高的投資,顯然投入礦池抱團挖礦以降低風險,獲得穩定收益更加適合。因此礦池的出現是必然,也不可消除,無論是否破壞系統的去中心化原則。

礦池的核心工作是給礦工分配任務,統計工作量並分發收益。礦池將區塊難度分成很多難度更小的任務下發給礦工計算,礦工完成一個任務後將工作量提交給礦池,叫提交一個share。假如全網區塊難度要求Hash運算結果的前70個比特位都是0,那麼礦池給礦工分配的任務可能只要求前30位是0(根據礦工算力調節),礦工完成指定難度任務後上交share,礦池再檢測在滿足前30位為0的基礎上,看看是否碰巧前70位都是0。

礦池會根據每個礦工的算力情況分配不同難度的任務,礦池是如何判斷礦工算力大小以分配合適的任務難度呢?調節思路和比特幣區塊難度一樣,礦池需要藉助礦工的share率,礦池希望給每個礦工分配的任務都足夠讓礦工運算一定時間,比如說1秒,如果礦工在一秒之內完成了幾次任務,說明礦池當前給到的難度低了,需要調高,反之。如此下來,經過一段時間調節,礦池能給礦工分配合理難度,並計算出礦工的算力。

礦池通過getblocktemplate協議與網路節點交互,以獲得區塊鏈的最新信息,通過stratum協議與礦工交互。此外,為了讓之前用getwork協議挖礦的軟體也可以連接到礦池挖礦,礦池一般也支持getwork協議,通過階層挖礦代理機制實現(Stratum mining proxy)。須知在礦池剛出現時,顯卡挖礦還是主力,getwork用起來非常方便,另外早期的FPGA礦機有些是用getwork實現的,stratum與礦池採用TCP方式通信,數據使用JSON封裝格式。

先來說一下getblocktemplate遺留下來的幾個問題:

礦工驅動:在getblocktemplate協議里,依然是由礦工主動通過HTTP方式調用RPC介面向節點申請挖礦數據,這就意味著,網路最新區塊的變動無法及時告知礦工,造成算力損失。

數據負載:如上所述,如今正常的一次getblocktemplate調用節點都會反饋回1.5M左右的數據,其中主要數據是交易列表,礦工與礦池需頻繁交互數據,顯然不能每次分配工作都要給礦工附帶那麼多信息。再者巨大的內存需求將大大影響礦機性能,增加成本。

Stratum協議徹底解決了以上問題。

Stratum協議採用主動分配任務的方式,也就是說,礦池任何時候都可以給礦工指派新任務,對於礦工來說,如果收到礦池指派的新任務,應立即無條件轉向新任務;礦工也可以主動跟礦池申請新任務。

現在最核心的問題是如何讓礦工獲得更大的搜索空間,如果參照getwork協議,僅僅給礦工可以改變nNonce和nTime欄位,則交互的數據量很少,但這點搜索空間肯定是不夠的。想增加搜索空間,只能在hashMerkleroot下功夫,如果讓礦工自己構造coinbase,那麼搜索空間的問題將迎刃而解,但代價是必要要把區塊包含的所有交易都交給礦工,礦工才能構造交易列表的Merkleroot,這對於礦工來說壓力更大,對於礦池帶寬要求也更高。

Stratum協議巧妙解決了這個問題,成功實現既可以給礦工增加足夠的搜索空間,又只需要交互很少的數據量,這也是Stratum協議最具創新的地方。

再來回顧一下區塊頭的6個欄位80位元組,這個很關鍵,nVersion,nBits,hashPrevBlock這3個欄位是固定的,nNonce,nTime這兩個欄位是礦工現在就可以改變的。增加搜索空間只能從hashMerkleroot下手,這個繞不過去。Stratum協議讓礦工自己構造coinbase交易,coinbase的scriptSig欄位有很多位元組可以讓礦工自由填充,而coinbase的改動意味著hashMerkleroot的改變。從coinbase構造hashMerkleroot無需全部交易,

如上圖所示,假如區塊將包含13筆交易,礦池先對這13筆交易進行處理,最後只要把圖中的4個黑點(Hash值)交付給礦工,同時將構造coinbase需要的信息交付給礦工,礦工就可以自己構造hashMerkleroot(圖中的綠點都是礦工自行計算獲得,兩兩合並Hash時,規定下一個黑點代表的hash值總是放在右邊)

。按照這種方式,假如區塊包含N筆交易,礦池可以濃縮成log2(N)個hash值交付給礦工,這大大降低了礦池和礦工交互的數據量。

Stratum協議嚴格規定了礦工和礦池交互的介面數據結構和交互邏輯,具體如下:

1. 礦工訂閱任務

啟動挖礦機器,使用mining.subscribe方法鏈接礦池

返回數據很重要,礦工需本地記錄,在整個挖礦過程中都用到,其中:

Extranonce1,和 Extranonce2對於挖礦很重要,增加的搜索空間就在這里,現在,我們至少有了8個位元組的搜索空間,即nNonce的4個位元組,以及 Extranonce2的4個位元組。

2. 礦池授權

在礦池注冊一個賬號 ,添加礦工,礦池允許每個賬號任意添加礦工數,並取不同名字以區分。礦工使用mining.authorize方法申請授權,只有被礦池授權的礦工才能收到礦池指派任務。

3. 礦池分配任務

以上每個欄位信息都是必不可少,其中:

有了以上信息,再加上之前拿到的Extranonce1 和Extranonce2_size,就可以挖礦了。

4. 挖礦

1) 構造coinbase交易

用到的信息包括Coinb1, Extranonce1, Extranonce2_size 以及Coinb2,構造很簡單:

為啥可以這樣,因為礦池幫礦工做了很多工作,礦池已經構建了coinbase交易,系列化後在指定位置分割成coinb1和coinb2,coinb1和coinb2包含指定信息,比如coinb1包含區塊高度,coinb2包含了礦工的收益地址和收益額等信息,但是這些信息對於礦工來說無關緊要,礦工挖礦的地方只是Extranonce2 的4個位元組。另外Extranonce1是礦池寫入區塊的指定信息,一般來說,每個礦池會寫入自己礦池的信息,比如礦池名字或者域名,我們就是根據這個信息統計每個礦池在全網的算力比重。

2) 構建Merkleroot

利用coinbase和merkle_branch,按照上圖方式構造hashMerkleroot欄位。

3) 構建區塊頭

填充餘下的5個欄位,現在,礦池可以在nNonce和Extranonce2 里搜索進行挖礦,如果嫌搜索空間還不夠,只要增加Extranonce2_size為多幾個位元組就可輕而易舉解決。

5. 礦工提交工作量

當礦工找到一個符合難度的shares時,提交給礦池,提交的信息量很少,都是必不可少的欄位:

礦池拿到以上5個欄位後,首先根據任務號ID找出之前分配任務前存儲的信息(主要是構建的coinbase交易以及包含的交易列表等),然後重構區塊,再驗證shares難度,對於符合難度要求的shares,再檢測是否符合全網難度。

6. 礦池給礦工調節難度

礦池記錄每個礦工的難度,並根據shares率不斷調節以指定合適難度。礦池可以隨時通過mining.set_difficulty方法給礦工發消息另其改變難度。

如上,Stratum協議核心理念基本解析清楚,在getblocktemplate協議和Stratum協議的配合下,礦池終於可以大聲的對礦工說,讓算力來的更猛烈些吧。

㈡ 詳解比特幣挖礦原理

可以將區塊鏈看作一本記錄所有交易的公開總帳簿(列表),比特幣網路中的每個參與者都把它看作一本所有權的權威記錄。

比特幣沒有中心機構,幾乎所有的完整節點都有一份公共總帳的備份,這份總帳可以被視為認證過的記錄。

至今為止,在主幹區塊鏈上,沒有發生一起成功的攻擊,一次都沒有。

通過創造出新區塊,比特幣以一個確定的但不斷減慢的速率被鑄造出來。大約每十分鍾產生一個新區塊,每一個新區塊都伴隨著一定數量從無到有的全新比特幣。每開采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分鍾,是在更快速的交易確認和更低的分叉概率間作出的妥協。更短的區塊產生間隔會讓交易清算更快地完成,也會導致更加頻繁地區塊鏈分叉。與之相對地,更長的間隔會減少分叉數量,卻會導致更長的清算時間。

㈢ 比特幣的交易費率是多少

OKEx比特幣交易所的手續費全球最低,0.15%-0.02%,而且而且平台幣OKB還不收費。

在Bybit,每一筆成功訂單,Bybit平台會根據訂單屬性自動決定收取費用或提供獎勵。對於市場的「做市商」:每個成功的限價訂單,系統會給予基於合約價值的0.025%獎勵。

對於市場的「受價者」:每個成功的市價訂單,系統會基於合同價值收取合約價值0.075%的費用。價值5美元的比特幣交易與價值5000美元的比特幣交易所需要支付的手續費可能是相同的。

它們是通過」每位元組數據多少聰(satoshis)「來衡量的。

㈣ 什麼是比特時代

「比特」是英語bit一詞的音譯。bit一詞是由binary(二進制的)和digit(數字)兩個詞壓縮而成的,所以bit即「二進制數字」,亦即0和1。「數字時代」准確的意思是「二進制數字時代」或「比特時代」那麼這0和1到底是什麼意思呢?我們從一個簡單的例子說起。
在使用電腦的時候,我們可以根據我們的需要和喜好,通過一些位於顯示器底部的旋鈕來調節顯示圖形,在這些旋鈕下面,分別寫著center(居中度)、size(大小)、brightness(亮度)、contrast(對比度)。這些調節都有一定的可調幅度,我們可能在這個幅度內任意選擇哪一種居中度、大小等。除這些旋鈕外,還有一個「機關」卻不是這樣,這個機關的兩邊分別寫著0和1。這就是顯示屏的開關。它沒有調節幅度,通過它我們只能選擇非此即彼的兩種狀態:開(on)和關(off)。顯示屏的亮度、對比度等都有兩個極點,在這兩個極點之間的「值」是多值性的。而開關的周期只有兩個值,即它的兩個極點。「進制」的「進」,就是周期所包含的「值」。比如「十進制」數字,就是一個變化周期里包含十個「值」數字。同樣道理,二進制數字就是變化周期里包含二個值的數字。我們採用何種「進制」對一種事物的存在狀態計數,表面上,要看衡量事物狀態的「值」的多少,其實「進制」與事物的狀態值並無必然的、唯一的關聯。事實上,電腦完全可以用0和1這兩個數字將多進制狀態的「值」表示或「翻譯」出來。數是抽象的,但數的觀念卻源於人的具體的感覺經驗。我們對於十進制計數方法習以為常。當一個人說「一年有12個月」這句話時,他可能覺得「12」這個數字唯一正確地表示了一年的月份數。

㈤ SuperCell--超級細胞

超級細胞

一.前言:

2100萬枚,總量固定永遠不通脹,這是比特幣最鮮明特徵之一。與「總量固定」的比特幣不同,以太坊和EOS等加密幣都保留了一定速率的通脹。從而超級細胞(SuperCell)橫空而世。

二.介紹:

英文名:SuperCell 中文名:超級細胞 代幣名稱:「SC」 「超級細胞(SC)」是一種基於ERC20智能合約的通貨緊縮類自銷毀的加密貨幣SC。SC得到國際知名區塊鏈研發團隊R4,區塊鏈聯盟,超級賬本linux基金會的支持。SC作為一項社會實驗和金融案例研究而出現在ERC20智能合約,來探索衡量通貨緊縮類加密貨幣的可行性。

「超級細胞」的主要特徵:

1.代幣初始發行量666萬

2.每次ERC20鏈上轉賬時,百分之1的交易量會被像細胞分裂怡亞通銷毀

3.永遠不會有代幣增發

4.IBO在交易平台上線後,以IBO總數量的90%的ETH在交易平台以單價不低於0.00275ETH回購。參與IBO的礦工會有穩地收益,直至IBO完成,流通總量達到2000000SC。IBO總數量的10%用於應用開發。

三.項目背景:

「銷毀代幣」相信這4個字在ERC20智能合約加密貨幣中已經非常常見,不少交易所、項目方為了提升代幣價值,都會通過回購代幣銷毀的方法,來減少流通量從而提高代幣市場價格,如此研發團隊提出大膽的設想與創新:通過智能合約自動銷毀代幣,每一次轉賬都會自動銷毀1%的交易量。而之前很多加密貨幣的銷毀模式,大都是基於人為主動操作,帶有明顯的人治色彩,無論是透明度還是可信任度都不高。 「超級細胞(SC)」研發團隊表示:超級細胞出來的意圖不是僅僅用於日常交易,而是用作對傳統加密貨幣通貨膨脹工具的一種去中心化對沖方案,一種分散的價值儲存,它作為一項社會實驗和金融案例研究,來探索衡量通貨緊縮貨幣的可行性。

四.token經濟模型

總發行量666萬 (永不增發)

社區生態激勵200萬(每月糖果計劃)

基金會200萬(鎖倉,每年釋放百分之20%)

礦工IBO 200萬 (參與SC礦工計劃)

創史團隊獎勵 66萬 (上線知名交易所獎勵團隊)

五.ERC20智能合約地址:



六.團隊人員

大衛Vyravipillai ,是一名新加坡基金會的主席校長,自1985 年以來37年投資管理經歷,畢業於哈佛大學,聖安德烈斯大學,大衛Vyravipillai是現超級細胞首席執行官創始人,負責超級細胞整個項目運營與發展。

喬什·肖爾斯,北卡羅來納大學哲學與計算機研究學士,主修計算 機專業。曾是虛擬貨幣在線/國際支付和欺詐方面的專家,也是 Kraken 的創始人兼首席執行官,Kraken 是世界上最值得信賴和 最大的比特幣交易所之一,是深入虛擬貨幣行業 15 年的資深人 士,現為超級細胞首席技術官 CTO,主攻技術研究與開發。

Manish Sharma,中文名:曼尼什·沙瑪.曾是美國facebook工程師,擁有豐富的交易系統開發經驗,能夠做到 精細化控制事物;並精通主流開源框架,如 rocketmq,iBatis,netty,bbo,zookeeper,cat,mycat等,熟悉微服務化開發, 大數據量、高並發系統,擁有大型網站構建經驗。現為超級細胞分布式工程師。

Brandon Arrindell 中文名:布蘭登·阿林德爾 ,BBA Hons(會計與金融)新加坡國立大學出身,美國企業家、投資者、軟體工程師。布蘭登·阿林德爾是著名的 Mosaic 瀏覽器共同開發者,第一個被廣泛使用的瀏覽器;網景通訊公司的 創始人;矽谷風險投資公司 Andreessen Horowitz 創始人和普通 合夥人,現為超級細胞顧問。

超級細胞(SC)將打造智能合約加密貨幣,第一可實用性通貨緊縮類加密貨幣,打開加密貨幣通往世界的另一扇大門。

㈥ 匿名幣被 *** 點名,強制下架的背後因素

加密貨幣世界中,匿名幣算是比較少被提起的幣種。但是在近期,韓國交易所Korbit率先下架DASH,Monero與Zcash三大匿名幣,日本的Coincheck也同步執行,原因為何?

首先,我們要先了解「匿名幣」與「加密貨幣」之間的差異。

一般加密貨幣與匿名幣的差異

加密貨幣(Cryptocurrency)的重要定義有幾點,「分散式系統」、「不可更改性」、「匿名性」。

分散式系統:意指資料庫的存在形式是散布殲啟在世界各個角落的,這不會因為某個中央化的資料庫損毀,而造成資料流失。不可更改性:代表著交易後的紀錄無法被竄改,這與系統本身所特有的共識機制有關系。匿名性:代表交易的雙方無法被直接辨別。

筆者又粗略將加密貨幣分為兩類,「一般加密貨幣」與「匿名幣」,以下介紹:

所謂「匿名」,就字面上直觀解釋為「不 *** 實姓名或沒有名字」,前者通常會有別稱或代號,後者則什麼資訊都沒有。同樣的,在加密貨幣的世界裡,依照匿名的程度頃並(匿名性),也可使貨幣被區分為兩種,「一般加密貨幣」與「匿名幣」:

交易上不使用真實姓名,即「一般加密貨幣」交易上完全不使用任何名字,即「匿名幣」

第一種方式,是所謂的「半匿名」英文稱為「Pseudonymous」

第二種方式,「匿名」,英文用做「Anonymous」

要解釋第一種方式,「半匿名」,我們拿最具代表性的「比特幣」來做事例:

比特幣的起始,來自於中本聰的論文,其中,簿記賬的觀念呈現在整個區塊鏈的紀錄當中。白話來說,就是在比特幣的交易行為中,除了交易者的真名無法取得,其他資訊都是公開的,任何人都可以追溯其交易紀錄,比如交易金額、交易時間等等。這就像是你在PTT、Dcard上面有自己的帳號,鄉民們可以藉由IP位置發現到這個人是不是在校園中使用,但雀改跡是沒有人曉得帳號後面的人長什麼樣貌。

同理推斷,「比特幣」的「半匿名」特性,就像是你知道附近屋子(錢包位址)裡面有多少錢、與哪些錢包在做交易、交易金額、交易次數等資訊,但是不知道屋主(擁有者)是誰。而且依照此特性,可以推斷出錢包擁有者大概的輪廓。這樣的「半匿名」特性,一旦有部分資訊被他人掌握的時候,便有機會藉著相關線索找到錢包擁有者。

正是這樣的「半匿名」特性,讓 *** 監管「一般加密貨幣」的期望成為可能。所以當使用者要注冊、使用加密貨幣交易所的時候,相關帳號都要通過要KYC(KnowYourCustomer)認證。

「半匿名」特性的好處是,交易紀錄公開,並且交易的安全性與公正性由「礦工」認證完成,所以雙方不得有任何異議外,如果沒有任何線索可以連結錢包位址與使用者真實身份,那麼「匿名性」是沒問題的。但是,每個人都查得到你的錢包位址,等於有機會辨別你的實際財富狀況,一旦被辨別出錢包與使用者的相關性,會產生很多現實生活中的安全性問題。想像一下,日常生活中,你會希望每筆交易都被親朋好友知道嗎?想想看你刷信用卡購物之後,爸媽叫你過去跟他對帳的時候吧!

所以,「比特幣」這類加密貨幣的匿名性,只存在於你的錢包位址並未被第三方知道、從未與法幣有所連結的時候。只要知道了錢包位址,再加上KYC的幫助,就有辦法找到使用者本人。

事實真的是如此嗎?我們來看看區塊鏈上的交易紀錄實例:

1.筆者隨意找了一個錢包位址「」

2.於區塊鏈上查詢此錢包

區塊鏈透露了一些資訊,像是這個錢包總共有5筆交易,目前擁有0.7881枚比特幣,總共擁有過29.8411枚比特幣。交易紀錄顯示,最早這錢包出現在2018/01/14日,並由「」錢包匯入,這代表了這兩個錢包之間一定有某種連結。blockchain.info/address/

3.發現到此錢包的交易紀錄

此用戶付款給「」錢包三次,總共支出28枚左右的比特幣

4.有心人士即可透過相關資訊,去推斷此錢包使用者的真實身份

當擁有這樣的交易紀錄,配上國際反洗錢法所推行的KYC之後,就有辦法執行後續的各種行動;像是「征稅」。同樣的道理,在「以太坊」「萊特幣」等相關數位貨幣上面的交易紀錄也一樣透明。若要拿這類容易被追溯的數位貨幣來進行各種地下經濟作業,實在是沒有什麼道理。

有些人會認為當原有的錢包位址和個人資訊被曝光後,只要換了一個錢包(即錢包位址)就沒事了,但實際上,若新舊錢包之間有資金轉換時,資訊一樣會存在於區塊鏈上,也一樣會被溯源。因此,即便擁有多個錢包,也必需要保證錢包與錢包之間不能出現交易,否則相關性就會被定義出來。況且,管理多個錢包的時候,記帳成本其實相當高呢。

題外話,加密貨幣的交易可藉由各類加密貨幣或法幣來完成,若以法幣進行交易,即進入了 *** 所掌控的金融系統,因此筆者曾聽聞有些人為了反追蹤(想避稅或降低價差等因素)而不想透過加密貨幣服務商做交易,反而採取線下面交等方式,但這其實很危險的,不但被騙時無從追溯,可能還有人身安全的問題。想像一下電影中的黑市交易情節,一邊交貨一邊給錢,而且是很多的錢,在缺乏第三方的保護下,若是被騙可能只是某一方拿到錢拔腿就跑,但如果是起沖突,雙方就開始火拚!哇,這也太 *** 了。

回到正題,比特幣的匿名性不夠強,不記名的「匿名幣」就擁有了真實的應用情境與需求。

以公司法人與公司法人之間的交易做比喻,「一般加密貨幣」如同公司間的所有的交易資訊都被看得清清楚楚。想像一下,鴻海與旗下供應商的每筆訂單交易紀錄都公開的時候,對企業本身和對「股市」帶來的影響該有多 *** ?再看看「匿名幣」,就像是你聽聞科技業的大小企業間分分秒秒都有交易在跑,但是你看不到企業名、交易金額、交易時間等等,但你身為第三方,只看得到一些無關痛癢的認證紀錄。

由此可見,匿名幣隱去「錢包位址」與「交易金額」這兩項要素的特性,除了一般需求外,同時符合地下經濟的需求,因為除了交易雙方,其餘人士都無法得知詳細內容。這正是「匿名幣」,會被特別點名出來的主要因素。

至於「匿名幣」是否如上述的那麼神奇?我們以Monero的區塊鏈當作範例:

1.隨意選去任一區塊鏈交易紀錄

區塊鏈的公開資訊,僅有「FormBlock」、「Fee」、「Size」、「Mixin」,你要是沒有PaymentID的金匙,根本什麼也看不出來。

2.無法得知交易金額與錢包位址

Input與Output的交易金額總數都顯示為0,外人什麼都無法得知。

統整上述使用「匿名幣」的需求動機:

需要達到現在銀行體系提供給我們的隱私保護級別,降低資訊被披露所帶來的風險。需要超越現有金融體系所帶給我們的隱私保護級別。

但是「匿名幣」的使用動機,以 *** 監管的角度來說,是件難以處理的事情。筆者認為,這正是「匿名幣」被要求下架之因素,因為沒辦法管,所以只能降低其流動性。

「匿名幣」的後續還有太多可以了解的部分,有興趣的讀者可以前往筆者網志「林小狗研究室」與筆者一同做更多的學習與研究。如果比較不了解加密貨幣的讀者,可以先前往閱讀「數位貨幣懶人包」系列文章或是留下您的資訊,以供後續與各位更新。

筆者整理出幾個為提升「匿名性」常見的方法,供讀者進一步查詢。

StealthaddressesMix(混幣)RingCT(環形簽名)Zero-knowledgeSuccinctNon-(zk-SNARKs)(零知識證明)Tor

未來還有很多主題可供探討,筆者先舉列幾個題目,有興趣的讀者可以留言給我。

匿名幣在「匿名性」程度上的差異「隱私保護技術」的方法論現在有哪些匿名幣存在於世上?匿名幣中有礦工的存在嗎?

熱點內容
區塊鏈到底忽悠誰 發布:2025-07-26 16:59:11 瀏覽:320
以太坊礦池下載 發布:2025-07-26 16:59:10 瀏覽:75
研發區塊鏈的上市公司 發布:2025-07-26 16:59:09 瀏覽:409
分層區塊鏈 發布:2025-07-26 16:39:39 瀏覽:895
普通家用電腦能挖比特幣嗎 發布:2025-07-26 16:23:50 瀏覽:297
幣圈tc是什麼意思啊 發布:2025-07-26 16:15:02 瀏覽:865
以太坊哪個挖礦軟體好 發布:2025-07-26 16:10:40 瀏覽:811
eth32枚有什麼用處 發布:2025-07-26 16:08:02 瀏覽:971
比特幣的工作量證明機制 發布:2025-07-26 15:59:13 瀏覽:910
eth行業前景 發布:2025-07-26 15:59:02 瀏覽:926