當前位置:首頁 » 比特幣問答 » 比特幣單位bits

比特幣單位bits

發布時間: 2025-06-30 04:07:02

1. 為什麼比特幣總量是2100萬枚

比特幣有爭議的屬性之一就是它的固定的供應量。當前每10分鍾又25個新的比特幣被生產出來,並且這一數字每4年減半。總的來講,不會有超過2100萬個比特幣的存在>。另一方面,每個比特幣可以被劃分成1億份(每份叫做1「聰」),如果一美分都足夠買輛車的話,用美元來交易就麻煩重重了,但比特幣就算升值到和上面假設的美元的>狀況,也不會遇到那樣的問題。因此,總之,將永遠存在的貨幣單位的總數字是2,100,000,000,000,000,也就是2100萬億,或者說250.899。在選擇這個數值的方>面,中本聰比大多數人意識到的要幸運的多或者說聰明的多。首先,這個數字遠小於264-1,這是一台計算機裡面可以以標准整數形式存放的最大整數,超過那個值的話,>數值將像里程錶那樣歸零。
其次,然而,還有一個總「聰」數要設法低於的更小的閾值:可以用浮點的格式表示的可能的最大整數。整數不是計算機可以存儲的唯一一種數字;為了處理小數,計算機>使用一種做浮點表示法的格式。浮點表示法本質上就是一個科學記數法的二進製版本。舉個例子,下面是一個在你學習物理學的時候會遇到的值:
地球的質量: 5.972 1024 kg
太陽的質量: 1.989 1030 kg
光速: 2.998 108 m/s
一光年: 9.460 1015 m
質子的質量: 1.672 10-27 kg
普朗克長度: 1.616 10-35 m
我們可以注意到,科學記數法是如何使得你可以在合理的精度下表示所有的這些數值,盡管它們的大小相差極大。浮點表示法本質上就是二進制的科學記數法;當你存儲數>字9.625的時候,你的計算機存放的是「1.001101
* 1011」(或者說,它存放的是01000000 00100011 01000000 00000000 00000000 00000000
>00000000
00000000,這是高精度序列形式的同樣一回事)。在這個高精度形式中,系數(也就是不是指數的那部分)有52位(52bits)。這意味著高精度(更加精>確的說法是「雙精度」)浮點數足以存貯高達253的數字,但不能再高了,如果超過了,你就得開始砍掉末尾的數字。比特幣的250.9這一以指數形式表現的總「聰」數,剛>好低於這個最大值。
如果我們有了整數,我們為什麼還要關心浮點值呢?因為更多的高階編程語言(比如說Javascript)並不開放低階的「浮點」和「整數表示法」,而只給程序員提供「數」的>概念
– 當然以浮點的形式提供。如果中本聰當時選擇了2億1千萬而不是2100萬這個值的話,用很多語言里比特幣編程就會比現在要麻煩得多了。
注意,Stefan Thomas不幸的在他寫BitcoinJS的時候沒有及時留意到這個,以至於那個庫使用了一個專門的『大數big
number』對象,而不是一個普通數來存儲教程輸出值;我自己分叉的的BitcoinJS(同時還加入了其他的改進)使用了普通數。

2. 比特,位元組,字都有什麼區別初學者,別笑我呀

比特(bit):一位二進制數據就稱為一比特數據,是信息量的最小單位。有時利用小寫的b來代表。「bit」一詞的來歷就是把「二進制」和「數字」兩個英文單詞「binary」和「digit」的頭尾組合而成。

位元組(Byte):將8比特數據作為一個整體稱為一個位元組。有時候利用大寫的B來代表,通常作為衡量存儲器容量或文件長度的單位。

字(word):將兩個位元組,即16比特數據作為一個整體稱為一個字。有時利用大寫的W來代表。

字長:是在計算機內部對於數據進行處理的基本單位。也是內部存儲器,數據存儲器和數據匯流排的寬度。在不同的計算機中,字長可以不同。

指令:人們指定CPU或單片機執行某項具體操作的命令叫指令。通常一條指令碼中包含指令碼和操作數兩個部分。

比特率的單位是什麼? bps是什麼意思?

兩個概念:

1) 計算機專業術語,是信息量單位,是由英文BIT音譯而來。二進制數的一位所包含的信息就是一比特,如二進制數0101就是4比特。

2)二進制數字中的位,信息量的度量單位,為信息量的最小單位。數字化音響中用電脈沖表達音頻信號,「1」代表有脈沖,「0」代表脈沖間隔。如果波形上每個點的信息用四位一組的代碼表示,則稱4比特,比特數越高,表達模擬信號就越精確,對音頻信號信號還原能力越強。

計算機中的位

二進制數系統中,每個0或1就是一個位(bit),位是數據存儲的最小單位。其中8bit就稱為一個位元組(Byte)。計算機中的CPU位數指的是CPU一次能處理的最大位數。例如32位計算機的CPU一次最多能處理32位數據。

Bit,乃BInary digit(二進制數)位的縮寫,是數學家John Wilder Tukey提議的術語(可能是1946年提出,但有資料稱1943年就提出了)。這個術語第一次被正式使用,是在香農著名的《資訊理論》,即《通信的數學理論》(A Mathematical Theory of Communication)論文之第1頁中。

假設一事件以A或B的方式發生,且A、B發生的概率相等,都為05,則一個二進位可用來代表A或B之一。例如:

1)二進位可以用來表示一個簡單的正/負的判斷

2)有兩種狀態的開關(如電燈開關) ,

3)三極體的通斷,

4)某根導線上電壓的有無,或者

5)一個抽像的邏輯上的然/否,等等。

由於轉換成二進制後長度會發生變化,不同數制下一位的信息量並不總是一個二進位,其對應關系為對數關系,例如八進制的一位數字,八進位,相當於3個二進位。除二進位外,在電腦上常用的還有八進制,十進制,和十六進制等的八進位,十進位,和十六進位等。

名字 縮寫 次方 名字 縮寫 次方

kilobit kbit 10^3 kibibit Kibit 2^10

megabit Mbit 10^6 mebibit Mibit 2^20

gigabit Gbit 10^9 gibibit Gibit 2^30

terabit Tbit 10^12 tebibit Tibit 2^40

petabit Pbit 10^15 pebibit Pibit 2^50

exabit Ebit 10^18 exbibit Eibit 2^60

zettabit Zbit 10^21 zebibit Zibit 2^70

yottabit Ybit 10^24 yobibit Yibit 2^80

編輯本段單比特與多比特

數碼轉換器的基本構造,通常分為接收、數碼濾波、數/類轉換、I/V轉換、類比放大等機個部分。以下僅就數碼濾波與數/類轉換作一淺釋。

CD的取樣頻率為441KHz,這個規格的制定是根據Nyquist的取樣理論而來,他認為要把類比訊號變成分立的符號(Discrete Time),取樣時的頻率至少要在原訊號的兩倍以上。人耳的聽覺極限約在20KHz,所以飛利浦在一九八二年推出CD時就將其制定為441KHz。取樣是將類比訊號換成數碼訊號的第一步,但精密度仍嫌粗糙,所以超取樣的技術就出現了。一般八倍超取樣就等於將取樣頻率提高到3528KHz,一方面提高精度,一方面經過DAC之後產生的類比訊號比較完整,所需的低通濾波器(濾除音取樣時產生的超高頻)次數與斜率都可大幅降低,相位誤差與失真也都會獲得巨大改善。不過CD每隔000002秒才取樣一次,超取樣後樣本之間就會產生許多空檔,這時需要有一些插入的樣本來保持訊號完整,而這樣的任務就落在數碼濾波器身上(Digital Filter)。比較先進的設計是以DSP(Digital Signal Processor)方式計算,以超高取樣來求得一個圓滑曲線,例如Krell的64倍超取樣,但目前只有Theta、Wadia、Krell、Vimak擁有這樣的技術。另一類數碼濾波是事先將復雜程式與在晶片中,有類似DSP的功能,日本Denon、Pioneer 皆有這樣的設計。最普通的方法是利用大量生產的晶片,NPC、Burr-Brown都有成品供應,當然效果會受一些限制。

在數碼濾波之後,就進入DAC了,從這里開始有單比特與多比特的區別。多比特是數碼訊號通過一個電流分配器(Current Switch),變成大小不同的電流輸出,因為數碼訊號是二進制關系,所以DAC的電流也以1、2、4、8的倍數排列。每一個比特分別控制一個電源分配器,隨著音樂訊號變動,輸出電流也跟著改變,接下來是一個速度很快的I/V轉換線路,把這些電流變成電壓,再接下來經過低通濾波器,完整的類比訊號就出現了。一個二十比特的DAC,其輸出電流變化是1,048,576個,解析度已經相當高了。現在最常用的二十比特晶片有Burr-Brown的PCM-63與改良型PCM-1702,最貴的大概是Ultra-Analog的模組。

比特流(Bitstream)是飛利浦八八年提出的技術,構造很單位。首先二進制的數碼訊號進入一個有參考電壓的模組中,輸入訊號比參考電壓高輸出就是非曲直,反之則為0;第二個訊號再與第一個訊號比較,更高的就輸出1,較低輸出0…以此類推。因為它只比較間的大小,所以樣本要增加,需要更高的取樣頻率,從早期的256倍到最新的384倍就是個好例子。只有一個比特的訊號會進入一個叫開關電容(Switched Capacitor)的DAC中,還原成類比訊號。常用的單比特晶片都是飛利浦製品,最早有SAA7320,現在則把SAA7350與TDA1547合在一起稱為DAC7線路,Crystal也有類似產品。

何者為優並無定論,唯一可以肯定的是絕大部分高價機種都是多比特設計。

編輯本段比特率

比特率這個詞有多種翻譯,比如碼率等,表示經過編碼(壓縮)後的音頻數據每秒鍾需要用多少個比特來表示,而比特就是二進制裡面最少的單位,要麼是0,要麼是1。比特率與音頻壓縮的關系簡單的說就是比特率越高音質就越好,但編碼後的文件就越大;如果比特率越少則情況剛好翻轉。

VBR(Variable Bitrate)動態比特率 也就是沒有固定的比特率,壓縮軟體在壓縮時根據音頻數據即時確定使用什麼比特率,這是以質量為前提兼顧文件大小的方式,推薦編碼模式;

ABR(Average Bitrate)平均比特率 是VBR的一種插值參數。LAME針對CBR不佳的文件體積比和VBR生成文件大小不定的特點獨創了這種編碼模式。ABR在指定的文件大小內,以每50幀(30幀約1秒)為一段,低頻和不敏感頻率使用相對低的流量,高頻和大動態表現時使用高流量,可以做為VBR和CBR的一種折衷選擇。

CBR(Constant Bitrate),常數比特率 指文件從頭到尾都是一種位速率。相對於VBR和ABR來講,它壓縮出來的文件體積很大,而且音質相對於VBR和ABR不會有明顯的提高。

影響聲音的大小的物理要素是振幅,電腦上的聲音必須也要能精確表示樂曲的輕響,所以一定要對聲波的振幅有一個精確的描述,「比特」就是這樣一個單位,x比特就是指把波形的振幅劃為2的x次方個等級,根據模擬信號的輕響把它劃分到某個等級中去,就可以用數字來表示了。比特率越高,越能細致地反映聲音的輕響變化。

為了體現正常的聲音信息,16bit為基本的需求,較好的cd使用的是20bit甚至24bit。CS呢?頂多頂多算及格。而聲道就別提了,連mp3都是2 Channel。

說白了比特率就是每秒鍾傳輸的數位

8bit=1B,如果在一條線路每秒鍾能傳送8bit的數據,就說此線路的比特率為8bps(bit per second)。

編輯本段比特犬

比特犬、pit bull terriers,原產美國,也稱美國比特犬。起源於19世紀,比特犬主要是由美系斯塔夫(AMERICAN STAFFORDSHIRE TERRIER)和美國鬥牛犬(AMERICAN BULL DOG)培育出來的。美國鬥牛犬的體重范圍比較大,從30公斤到58公斤。

也稱美國比特犬,比特鬥牛犬。產於19世紀的美國。主要是由美國鬥牛犬和美系斯塔夫繁育出來的,體型差異比較大。

比特犬頭呈寬大的石板狀,兩顎強壯有力,每平方厘米的咬合力可以達到80公斤。此犬擅長連續奔跑,耐力驚人。頑強的鬥志和堅韌的性情也使它成為了一種優秀的鬥牛犬。據說它只要咬住了對手就不會撒口。而緊湊的身體結構,強壯的肌肉群和沒有痛感神經的皮膚更彷彿是為了鬥牛而生!這也是此犬得以稱霸鬥犬界百餘年之最大的法寶!

比特犬雖然對對手兇猛,但對主人是絕對忠誠。

有的人也把那些做事堅韌不屈,勇往直前人們的精神稱之為「比特精神」!

一隻身高45厘米,體重30公斤左右的比特能把一隻身高95厘米,體重100公斤左右的高加索犬在幾分鍾內咬倒在地。比特犬的骨頭比其它犬硬3倍以上,不會被別的犬咬骨折,牙齒的咬合力可以達到每平方厘米80KG 以上!它還具有一副堅韌而沒有疼痛感覺神經的皮膚再加上發達的肌肉群,用以抵抗咬擊。 它的耐力也很好可以在跑步機上連續跑200多公里。

您正在看的文章來自相思紅豆論壇 >

電腦的存儲單位比特具體怎麼說?

比特幣(BitCoin)的概念最初由中本聰在2008年提出,根據中本聰的思路設計發布的開源軟體以及建構其上的P2P網路。比特幣是一種P2P形式的數字貨幣。點對點的傳輸意味著一個去中心化的支付系統。

與大多數貨幣不同,比特幣不依靠特定貨幣機構發行,它依據特定演算法,通過大量的計算產生,比特幣經濟使用整個p2p網路中眾多節點構成的分布式資料庫來確認並記錄所有的交易行為,並使用密碼學的設計來確保貨幣流通各個環節安全性。

p2p的去中心化特性與演算法本身可以確保無法通過大量製造比特幣來人為操控幣值。基於密碼學的設計可以使比特幣只能被真實的擁有者轉移或支付。這同樣確保了貨幣所有權與流通交易的匿名性。比特幣與其他虛擬貨幣最大的不同,是其總數量非常有限,具有極強的稀缺性。該貨幣系統曾在4年內只有不超過1050萬個,之後的總數量將被永久限制在2100萬個。

比特,是一種計算機專業術語,是信息量單位,是由英文BIT音譯而來。二進制數的一位所包含的信息就是一比特,如二進制數0100就是4比特。那麼,比特這個概念和貨幣聯繫到一起,不難看出,比特幣非現實貨幣,而是一種計算機電子虛擬貨幣,存儲在你的電腦和手機上。比特幣:「比特幣」既可以指這種虛擬貨幣單位,也指比特幣網路或者網路節點使用的比特幣軟體。BTC:BTC 是用於標示一個比特幣 (B□) 的常用單位。Bit:Bit 是次於比特幣的一個常用單位 -- 1,000,000 bits 等於1個比特幣。這個單位通常在標示小費,商品和服務時更加方便。地址:比特幣地址(例如:)由一串字元和數字組成。它其實是通過對160位二進制公鑰哈希值進行base58check編碼後的信息。就像別人向你的email地址發送電子郵件一樣,他可以通過你的比特幣地址向你發送比特幣。bps(bits per second)是數據傳輸速率的常用單位,意思是比特率、比特/秒、位/秒、每秒傳的位數。比特(bit)是信息技術中的最小單位。文件大小(例如文本或圖像文件)通常以位元組(Byte)為單位。一位元組對應八比特。在數據傳輸中,數據通常是串列傳輸的,即一個比特接一個比特地傳輸。數據速率的單位是比特每秒(bps),含義是每秒串列通過的位數。比特率是指每秒傳送的比特(bit)數。單位為bps(Bit PerSecond),比特率越高,傳送的數據越大。比特率表示經過編碼(壓縮)後的音、視頻數據每秒鍾需要用多少個比特來表示,而比特就是二進制裡面最小的單位,要麼是0,要麼是1。比特率與音、視頻壓縮的關系,簡單的說就是比特率越高,音、視頻的質量就越好,但編碼後的文件就越大;如果比特率越少則情況剛好相反。Bps (Bytes per second), 即位元組每秒,因為一位元組對應八比特,所以1 Bps = 8bps。比特率是指每秒傳送的比特(bit)數。單位為 bps(Bit PerSecond),比特率越高,傳送數據速度越快。聲音中的比特率是指將模擬聲音信號轉換成數字聲音信號後,單位時間內的二進制數據量,是間接衡量音頻質量的一個指標。通信和計算機行業內經常利用「類似國際單位制」的前綴來表示更大的衍生單位:1000 bit/s = 1 kbit/s (一千位每秒)1000 kbit/s = 1 Mbit/s (一兆或一百萬位每秒)1000 Mbit/s = 1 Gbit/s (一吉比特或十億位每秒)。

bit中文名稱是位,音譯「比特」,是用以描述電腦數據量的最小單位。

二進制數系統中,每個0或1就是一個位(bit)。

單位換算

1Byte=8bit

1Kb=1024byte(位元組)=81024bit

1Mb=1024kb

1Gb=1024Mb

1Tb=1024Gb

一個"比特"(二進制位的簡稱)是計算機中數據的最小單位。一個"比特"擁有一個值,0或1。計算機在存儲數據和執行指令的時候是以一組"比特"為單位的,通常又叫做"位元組"。在絕大多數的計算機系統中,一個"位元組"包含了八個"比特"。"位元組"的一半(四個"比特")被稱作半位元組。在一些系統中,八位元組被用來替代位元組成為八個"比特"的存儲單位,而另一些系統中,四個"位元組"或八位元組又構成了一個32位的字。在這些系統中,指令的長度通常以全字(32位長)或者半字(16位長)的形式表示。在電信傳輸中,比特率是在給定的時間內所傳輸的"比特"的數量,通常單位時間是秒。

3. 什麼是賬本區塊鏈,區塊鏈中的賬本

區塊鏈技術通俗講解本質是分布式賬本

什麼是區塊鏈技術?簡單解釋一下區塊鏈是什麼。2019年伊始,一種新的貨幣開始進入數字貨幣的行列,並逐漸吸引了眾多數字貨幣玩家的目光,那就是區塊鏈科技。但是有人發現網上關於它的消息真的少得可憐,這不僅引起了很多人的疑惑,這是什麼,為什麼這么神秘?區塊鏈是比特幣最早的基礎技術,目前全世界都在研究,可以廣泛應用於金融等各個領域。

基本原理編輯

區塊鏈的基本原理不難理解。基本概念包括:

交易:導致賬簿狀態發生變化的操作,如增加一條記錄;

區塊:記錄一段時間內發生的交易和狀態結果,是對當前賬簿狀態的共識;

鏈式:由塊按照發生順序串聯而成,是整個狀態變化的日誌記錄。

如果把區塊鏈看成一個狀態機,每一次事務都是一次改變狀態的嘗試,而每次協商一致產生的塊就是參與者。

闡述編輯

用通俗的話來闡述:如果我們假設資料庫是一本賬本,那麼讀寫資料庫就可以看作是一種記賬的行為。區塊鏈技術的原理是在一段時間內找出最快最好的記賬人,這個人來記賬,然後把賬本上的這一頁信息發給整個系統的其他所有人。這相當於將資料庫中的所有記錄都進行了更改,並發送到整個網路中的每一個其他節點,因此區塊鏈技術也稱為分布式賬本。

什麼是「區塊鏈」?

區塊鏈有兩個含義:

1、區塊鏈(Blockchain)是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。所謂共識機制是區塊鏈系統中實現不同節點之間建立信任、獲取權益的數學演算法。

2、區塊鏈是比特幣的底層技術,像一個資料庫賬本,記載所有的交易記錄。這項技術也因其安全、便捷的特性逐漸得到了銀行與金融業的關注。

狹義來講,區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構,並以密碼學方式保證的不可篡改和不可偽造的分布式賬本。

廣義來講,區塊鏈技術是利用塊鏈式數據結構來驗證與存儲數據、利用分布式節點共識演算法來生成和更新數據、利用密碼學的方式保證數據傳輸和訪問的安全、利用由自動化腳本代碼組成的智能合約來編程和操作數據的一種全新的分布式基礎架構與計算方式。

區塊鏈中的超級賬本是什麼?

賬本(Ledger)是具有一定格式與若干賬頁組成,以會計憑證為依據,對所有經濟業務進行序時分類記錄的本籍,也就是通常我們所說的賬冊。區塊鏈表示一種特有的數據記錄格式,區塊鏈就是「區塊+鏈」,所謂的區塊就是數據塊的意思,每一個區塊之間通過某個標志連接起來,從而形成一條鏈。

超級賬本

Hyperledger(中文名為超級賬本,統稱為Hyperledger)是Linux基金會於2015發起的推進區塊鏈數字技術和交易驗證的開源項目。Hyperledger的目標是讓成員共同合作、共建開放平台以滿足來自多個不同行業各種用戶的需求,同時能大大簡化業務流程。Hyperledge啲創始成員有IBM、Intel、思科等大公司。截至本書完稿時已經加入Hyperledge啲機構和公司已經超過183個,並高速增長中。

Hyperledger項目成初Linux基金會已經收到了多個不同的代碼庫,包括IBM代碼庫(一定程度上受以太坊啟發),還有DAH(BitsofProof比特幣代碼庫)和Sockstream代碼庫(是比特幣代碼庫的擴展)。除此之外還有DigitalAsset和Ripple等貢獻的代碼。隨著行業的發展,單一的項目已經無法滿足業務的需求,因此Hyperledger逐步由一個單一的項目發展成了一個項目組。目前Hyperiedger已經不是某個具體的技術,而是代表一組區塊鏈技術框架的集合。截至目前,Hyperledger項目組中一共包含9個正式項目和50多個這些正式項目的相關模塊。

鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。

金窩窩所說的區塊鏈分布式記賬是什麼意思?

金窩窩所說的區塊鏈分布式記賬是什麼意思?,該怎樣去理解金窩窩區塊鏈技術的分布式記賬?

區塊鏈技術也稱為分布式賬本,通俗的來講,如果我們把資料庫假設成一本賬本,讀寫資料庫就可以看做一種記賬的行為,區塊鏈技術的原理就是在一段時間內找出記賬最快最好的人,由這個人來記賬,然後將賬本的這一頁信息發給整個系統里的其他所有人。這也就相當於改變資料庫所有的記錄,發給全網的其他每個節點,不僅可保證數據安全,還可以保證數據的真實性,從而提升社會信用度。

金窩窩的區塊鏈技術所說的分布式記賬有什麼特點?,如何簡單理解金窩窩網路科技的區塊鏈技術的分布式記賬功能?

區塊鏈技術採用了分布式記賬的模式,不論是在登記結算場景的實時對賬能力,還是在數據存證場景上的不可篡改能力,都可以為溯源、防偽、供應鏈場景提供有力的保障。而金窩窩是以區塊鏈技術源頭來保證產品數據安全。

我們該如何理解金窩窩區塊鏈技術的分布式記賬?

分布式存儲是一種數據存儲技術,通過網路使用每台機器上的磁碟空間,並將這些分散的存儲資源構成一個虛擬的存儲設備,數據分散的存儲在網路中的各個角落。

金窩窩區塊鏈技術中的分布式儲存是什麼?

重慶金窩窩分析研究區塊鏈技術中的分布式儲存如下:

一是區塊鏈每個節點都按照塊鏈式結構存儲完整的數據,傳統分布式存儲一般是將數據按照一定的規則分成多份進行存儲。

二是區塊鏈每個節點存儲都是獨立的、地位等同的,依靠共識機制保證存儲的一致性,而傳統分布式存儲一般是通過中心節點往其他備份節點同步數據。

金窩窩是如何解釋區塊鏈即分布式賬本模式的?

區塊鏈技術也稱為分布式賬本,通俗的來講,如果我們把資料庫假設成一本賬本,讀寫資料庫就可以看做一種記賬的行為,區塊鏈技術的原理就是在一段時間內找出記賬最快最好的人,由這個人來記賬,然後將賬本的這一頁信息發給整個系統里的其他所有人。這也就相當於改變資料庫所有的記錄,發給全網的其他每個節點,不僅可保證數據安全,還可以保證數據的真實性,從而提升社會信用度。

區塊鏈的信任來自於底層技術,即用歷史信息換得現行的信任。這是一種低成本的信用機制,從誕生到慢慢地茁壯成長,即區塊鏈,必然會得到關注和推廣。

區塊鏈的分布式記賬是什麼意思?

這個問題問的好,我舉個例子吧,比如我在銀行存了100元,這個存錢的數據只記錄在銀行的資料庫,別人無法獲取,即「中心式記賬」。而區塊鏈是是分布式記賬,是一種新的信息記錄技術,而且是「加密的」「分布式的」,數據不存在一個中心了,而是在全網的計算機上都存一次。比如我向你轉了100元,我會向全網所有的計算機都喊一嗓子,大家一起記一下賬,即「分布式記賬」。

金窩窩區塊鏈技術中的分布式的儲存是什麼?

重慶金窩窩分析:大數據,指無法在一定時間范圍內用常規軟體工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。

大數據需要應對海量化和快增長的存儲,這要求底層硬體架構和文件系統在性價比上要大大高於傳統技術,能夠彈性擴張存儲容量。

金窩窩網路:區塊鏈中的分布式儲存是怎樣的?

金窩窩網路分析:在區塊鏈中,數據被存儲在不同計算機上,不僅實現了去中心化,還擁有高度的加密性和安全性,同時也降低了成本。

而且如果你的電腦有多餘的存儲空間,你甚至還可以把多餘的存儲容量租出去,一舉多得。

4. 比特幣區塊里的各個欄位含義(先寫了個nonce)

nonce是個啥意思?根據bitcoin wiki

nonce是一個4-byte大小的區域,nonce的值設定使得該塊的hash是以一串0開頭的。
對於塊數據的一點點改變(比如nonce)都會引起block hash的巨大變化。由於逆向預測hash值相對應的一組bit值(hash原文)是不可行的,在嘗試足夠多的nonce值且計算每個nonce值相對應的block hash之後可以找到一個滿足有指定數量 0 bits (0比特位) 的hash值。而 0 bits的數量值是由difficult設定的。最終產生的hash須得是一個小於當前difficulty值。
因為這個迭代的計算耗費時間和資源,塊的出現也就是得到了正確的nonce值,這構成了 proof of work

關於以太坊里的nonce 網上很多解釋,很多一上來就是 交易計數器 , 然而卻把跟POW有關的丟了嗎?事實上以太坊里的nonce有兩種意思,一個是proof of work nonce,一個是account nonce。

那智能合約呢?合約也算是Account的一種,那也有nonce嗎?

是的,而且合約裡面的nonce也差不多,也是一個counter。在智能合約里,nonce的值代表的是該合約創建的合約數量。只有當一個合約創建另一個合約的時候才會增加nonce的值。但是當一個合約調用另一個合約中的method時 nonce的值是不變的。

在以太坊中nonce的值可以這樣來獲取(其實也就是屬於一個賬戶的交易數量):

但是這個方法只能獲取交易once的值。目前是沒有內置方法來訪問contract中的nonce值的,除了自己定義一個counter來計數...

那好,再來看一下Ethereum Block中的nonce:
以太坊和比特幣區塊鏈一樣,也需要proof of work(計劃轉移到股份證明也早已在做了)。在比特幣區塊鏈中,pow應該是要算出一個符合難度要求的值,通常是以一串0開頭的。這個難度一直在變化。可以查看 比特幣區塊鏈的POW難度變化 。

5. BCH主要的應用場景有哪些,已經落地的有哪些

BCH除了可以應用於支付,更擁有豐富的應用場景。BCH社區曾基於BCH推出眾多應用平台,如眾包平台Taskopus、去中心化社交平台Memo、內容平台Honest Cash、游戲應用craft.cash等等。除此之外,BCH還可以用於慈善,Coins 4 Clothes、維基網路等都支持BCH捐贈。豐富的應用場景,不僅增加了BCH增加了BCH可用性,也為BCH用戶提供更多的選擇,從而吸引更多的用戶使用BCH。

6. 比特幣總量是2100萬嗎為什麼

比特幣的總量是有限的,2100萬枚,但聰明的人類卻發明了一個方法,那就是分割,將一枚分割成一小份一小份。我們知道,一塊錢人民幣是由十個一角組成的,一百個一分組成的,一千個一毫組成的……而這其中任何不管是一毫一分一角一圓都可再次無限分割,而總量有限的比特幣也可這樣無限分割下去,無窮無盡,就像你用菜刀切香腸,直切到死那一天,也沒切到最小單位。所以說,總量有限的比特幣,其實是無窮無盡的巨大黑洞,把整個宇宙扔進去它都能容納。所以我的觀點是,比特幣等於黑洞。

大白話,撈干貨!

比特幣是一種天才的想法,分布式記賬系統。

解一個數學題,做一次記賬,等比數列的和。

比特幣價值的來源,安全,共識,資產,技術

關鍵詞:記賬,方程,收斂,共識,技術

第一,比特幣白皮書,天才的想法

11年前,一個化名中本聰的人發表了一篇論文叫做比特幣白皮書,裡面詳細介紹了一種天才的想法,我經常說,引領這個世界的是人的思想。

過去人們認為虛無縹緲的東西,過去認為很扯淡的東西,在後來往往被證明是非常有遠見的。比特幣就是這樣。

過去我們的記賬往往是中心式的,總要有一個人管著你。公司里有一個財務部,有一個會計,你轉的每一筆賬會計總要記一記。

銀行里總有一個記賬的中心,有一套系統,每天轉了多少賬,最後都要對一對賬,想想辦法。

我舉個例子吧,最早的信託誕生於十字軍東征時期,當時很多人要出去打仗了,帶著命出去,不知道還有沒有命回來,於是就把自己的財產交給一幫人打理。這幫人給你經營你的財產,有了收益,他就從中抽一點兒份子。

就好比說你家有100頭羊,你要走啦,兒子還在,你放不了羊了,你就把這些羊交給一些職業放羊人,羊下了小羊,它也可以從中分到。

但是這中間有一個問題,誰來監督這個事情呢?怎麼知道他是安安心心給你放羊了呢?或者說他如果把你的羊給你咪了,你怎麼辦呢?

這就需要一套會計記賬規則,也就是我們現在整個的審計系統,用一套借貸的方式。復式記賬法來保證他不要迷你迷的太多,當然財務也可以作假,這就相當於100頭羊,他能眯一點,眯個5隻,你別眯95隻,那就沒多大意思了。

但是這種中心式的記賬總歸是有問題的,他知道你不知道,信息不對稱。有人掌握了全部的信息,不是所有人都掌握信息,這就非常麻煩了。

而中本聰就設想了一種分布式的記賬。所有人都可以記賬,大家在一個網路中記賬,利用現代的信息技術記賬。很好的解決了這個問題。

記一次賬,我就把他對全網公布。所有人都知道,所有人都確認了我的信息呢,就有新的人來記賬,然後把這個賬再對全文公布。一串兒一串兒的鏈下去,這就是所謂的區塊鏈。

這種想法很好地解決了有人咪掉你的羊這種事情,因為所有人都是知道的。也防止了有人作假,你一旦作假,那下一次記賬的人就跟這一次對不上了。而且你這個事情是在光天化日之下的,大家都覺得你記錯了,或者你故意作假,你就失去了信用,下次你就在沒記賬資格。大概就是這么一種想法。

當然這其中牽扯的有密碼學,有共識機制,有泊松分布等等,很多人詬病說比特幣的價值來源於什麼呢?比特幣又沒有政府背書,我還是那句話,你信高等數學,你信牛頓,你信愛因斯坦也不是因為他們有政府背書。而是因為他們的技術高超。比特幣的價值真正來源其實就是技術。


第二,什麼是比特幣?就是記一次賬,做一個數學題。等比數列的和

那到底什麼是比特幣呢?為什麼它的總數能夠被框算在2100萬枚,而且還能被推算出來?

我簡單介紹一下,比特幣是一種獎勵機制。大概就是說,當你有了記賬的資格,你就把賬記下來,記下來之後打包你的賬,記得無誤,於是你就可以獲得一個獎勵。

比特幣的規定是這樣的,當一個人都有權利記錄在這十分鍾內發生的所有的交易賬目,比如說張三給李40個比特幣,李子給王50個比特幣,那你就把它們都記錄下來。然後打成包。你就能夠獲得比特幣的獎勵,比如說40個20個。

那什麼人有資格記錄呢?這就需要一種篩選的方式,那就是算力。什麼意思?你要想獲得記賬的資格,首先你要去算一個數學方程,解一道數學題。這個方程就叫做哈希方程,簡單理解這種方程式可以正算,不能反算,你知道x可以求出y,但是你知道y不能求出x。

這怎麼辦?那你就只有一個一個數帶進去試,試對了,你就解出來了,這種事的方式是不斷的重復運作,就像是拿鍬一鍬一鍬地的挖礦,這就是挖礦的意思,它是一種比喻,是說你拿一個一個數去試,而並不是說你真的在那兒匡幾匡幾挖礦。

同時呢,比特幣的規則規定所有人記賬每四年獲得的比特幣獎勵是減半的。也就是說,本來你第一次這樣可以獲得十個,四年以後你就只能獲得五個,再過四年你就只能獲得2.5個。

長此以往,如果你算這個總數的話,比特幣總數就會變成一個收斂的等比數列的和。也就是說你可以通過一個數學公式算出它的總數。如果按照既定的規則,那總數就是2100萬枚,當然它可以繼續細分到小數點後面,好像是八位。這就把他的總數給限定下來了。


第三,比特幣的價值來源。

最後,我們談一談比特幣的價值來源。在前面我已經說過了,比特幣真正的價值來源於技術,來源於數學,來源於密碼學,來源於天才的想法,來源於他的安全。

先說安全,我之前已經介紹了比特幣的運行機制,你在記賬的時候要對全網公布,那麼一旦全網的人都收到了你的信息,那相當於你在大家的眼皮子底下裸奔,你身上有什麼大家看的一清二楚,你想干壞事兒,這幾乎是不可能的。

同時呢,比特幣曾經受過多次的攻擊,但是依然沒有打垮他,依然非常的安全,他的數據不能被篡改。如果一次又一次證明他是安全的,他就會越來越有信用。

那為什麼比特幣越來越值錢?以前就不值錢了呢?它的價格能夠漲一千多萬倍2000萬倍呢?原因是越來越多的人信他,越來越多的人看中他,越來越多的人認可他。如果所有人都認可比特幣,所有人都認為比特幣是重要的,比特幣是合理的,比特幣是安全的,那麼這種共識就會變成一種信仰。當一個東西變成信仰的時候,它的價值也就不言而喻。

最後,比特幣具有資產的特點,嚴格來說它應該算作一種無形資產。這種無形資產特點是它基本不會折舊。你想想他本來就是一個虛無縹緲的東西,是一種虛擬的東西,他放一年跟放十年是一模一樣的,它只存在於人們的腦子中。

我之前已經多次介紹過資產的特點,資產可以長久的放著,他是一個耐用品,那麼人們購買它其實就是為了博一個更高的收益, 明天買它比今天更貴,後天買它比明天更貴,越來越高,資產就是這樣,越貴越想買,只要他在持續的上漲,人們形成共同的預期,它就是有價值的。

結論。那從比特幣白皮書開始,一個化名中本聰的人就有了一種天才的想法,把中心式的記賬改為分布式的記賬。這種記賬方式不容易被篡改,不容易作假。是一種天才的想法。

比特幣的規則規定所有人達成共識,在一段時間內計算一個哈希方程,獲得打包記賬的權利。同時把十分鍾內的賬務向全網公布,隨著時間的推移,比特幣的獎勵不斷減半。比特幣的總數也就成為了一個等比數列的和,不斷的收斂,總數就是一定的。

比特幣的價值來源其實就是技術,其實就是安全,其實就是共識機制,其實就是資產的特點。 歷史 上很多有價值的東西其實都是虛無縹緲的,真正左右人類前進的,其實是人類的思想。

比特幣的總量是2100萬個,沒錯,這個是在寫源代碼一開始的時候就限定死的了,可以參考比特幣的白皮書,裡面寫的很清楚,這個1個比特幣是通過挖礦獲取的,但是強調一點,比特幣的總量是2100萬個,但是這個1個比特幣是可以細分的。

也就是1個比特幣還可以細分到很小很小。有多小?

現在比特幣的最小單位為1聰,而1個比特幣就等於 1億聰。

至於這個聰是怎麼來的?是因為比特幣的發明者「中本聰」取名而來的。

所以如果你按照個數來說,比特幣的能夠通過挖礦獲取的數量就是2100萬個。 沒錯!

但是如果你通過交易來獲取比特幣來細分。。。那可以細分到1個比特幣可以分為1億聰!!

比特幣的整個運行機制都是模仿的實體黃金,這也是為什麼很多人把比特幣稱之為數字黃金的原因。而我們知道黃金它作為地球上元素的一種它本身是具有稀缺性的,這也導致黃金為首的貴金屬在人類很長的 歷史 中都扮演著貨幣天然是金銀的角色。所以比特幣最初規定的數量同樣也是有限的,總數是2,100萬枚。

2008年10月31日,一個署名為中本聰的人在網路上提出了長達9頁的去中心化點對點的交易方式構想,這個構想後來被稱之為比特幣的白皮書。在比特幣的白皮書里有著明確的規定,比特幣的上限數量是限定死的2,100萬枚,並且永遠無法篡改,這是支撐當前比特幣價格的一個基石。

所以我們能夠看到比特幣的數量並不是無限的,總數量它有一個恆定量是2,100萬枚,目前流通中的比特幣數量已經超過了1,800萬枚,但是最後一枚比特幣面世時間將會在2100年以後,也是由它的演算法機制所決定的。你所理解的比特幣數量是無限的,應該是它的最小值,但是目前的流通中的總數量1,800萬枚比特幣,還包括接近400萬枚沉默在 歷史 時間長河中的已經被丟失的比特幣。

所以有空多看看中本聰2008年10月份發表的白皮書在這份長達9頁的論文里帶給我們的,並不僅僅是比特幣還有最終的區塊鏈技術,這才是比特幣帶給世界的一份大禮。

至於比特幣的總量,實際上,准確地說,比特幣的總量是2099999.769萬,略低於2100萬。

比特幣生成計劃:

比特幣挖掘的計算方法

比特幣在10分鍾內生成一個區塊,將每小時6個區塊的速度乘以24小時(每天)、365天(一年),最後是4年(一個周期)。結果,在一個周期內總共生成210000個塊。所有區塊的獎勵從50逐漸減少到25,然後逐漸減少到12.5,因此有50+25+12.5+6.25+3.125。。。=100個獎勵,兩個數字相乘可獲得2100萬比特幣。

也就是說,到2140年,比特幣將被完全挖掘出來。

為什麼比特幣的總金額只有2100萬?不能再多點嗎?

我們來談談為什麼比特幣的總量是2100萬。首先,比特幣總量由中本設計。到目前為止,他還沒有說清楚原因。所以外界有很多猜測。現在我將向您列出以下8種猜測。

猜測一:因為21是最終答案42的一半。

說明:答案是一個笑話。這條線索來自電影《銀河系指南》中最終答案的橋梁:宇宙的最終答案是42。

猜測二:因為我們生活在21世紀。

解說:這有點牽強。

猜想三:中本設定的原則是每10分鍾生產一個街區,獎勵50枚硬幣,4年內減半。結果很自然。

說明:中本沒有人為干預,而是接受了自然結果。

猜想四:世界上所有的黃金都熔化在一起,這是一個邊長約21米的立方體。

註:中本用這個概念來比喻比特幣是一種虛擬黃金。

為什麼比特幣的總金額只有2100萬?不能再多點嗎?

猜想五:外人認為中本喜歡玩21點。

解釋:我對這個答案沒有任何解釋。

猜測6:有32位整數可以存儲2^31-1,即2147483647。如果你取前8位,它是21474836.47比特幣。那是2100萬。

註:我猜本聰在最初的開發中使用了32位精度整數。後來,他發現對於一種全球貨幣來說,精度是不夠的,於是他將小數點後兩位擴展到8位,並將32位存儲改為64位存儲。

猜測7:比特幣是用來比較全球經濟總量的,根據目前全球經濟水平,全球經濟總量估計為2100萬上限。

說明:我認為這個猜測更科學。

猜想八:根據以太坊創始人維塔利克·布特林的分析,這個值可能與計算機編程語言支持的整數數據范圍有關,與特殊貨幣相比,也便於後續開發者的維護。

註:比特幣使用C++編程語言。

總結與分析

以上八個答案都是外界猜測的。因為中本一直沒有解釋,所以我們沒有一個肯定的答案。就我個人而言,我同意V上帝。那麼你心裡的答案是什麼?

【1】准確的說最終產生的比特幣數量是20999999.97690000個,比2100萬少一點。

【2】為了防止比特幣升值以後的分割交易和使用,每個比特幣可以被劃分成約1億份,每份叫做1「聰」,換句話說就是1個比特幣可以精確到小數點後8位。這樣一來,全部比特幣單位(每一份)的總數字是2,100,000,000,000,000,也就是2100萬億,或者說2的50.899次方。

【3】為什麼是2的50.899次方這個數字呢?因為這是目前64位計算機裡面可以以標准整數形式存放的最大整數是2的64次方-1,一旦超過這個值,數值就會歸零。

【4】之所以不選2的63次方,是因為一個總「聰」數要設法低於的更小的閾值:可以用浮點的格式表示的可能的最大整數。因為高階計算編程語言普遍不能處理整數,處理整數就會丟失精度,比如在很多語言里3除以2等於1,而處理浮點數就不會有這樣的問題 。因此,為了處理小數,計算機使用一種做浮點表示法的格式。浮點表示法本質上就是一個科學記數法的二進製版本。

在這個高精度形式中,系數(也就是不是指數的那部分)有52位(52bits)。這意味著雙精度浮點數最多可以存貯高達2的53次方的數字,而且不能再高了,如果超過了,就得開始砍掉末尾的數字。比特幣的2的50.899次方這一以指數形式表現的總「聰」數,剛好低於這個最大值。


綜上所述, 就是比特幣總數大約是2100萬個的真正原因。 中本聰之所以這樣設計主要是考慮到編程方便。至於現有些人所說的每10分鍾系統出現一個區塊,生成50個比特幣,每四年減半,大概到2140全部產出正好是2100萬個,其實是錯誤的。

總量是約等於2100萬個,每四年減半,大概到2140年會徹底挖完,此後挖礦不再產出BTC,礦工收入來源為轉賬手續費。

這些邏輯是在代碼里寫死的。

這個問得好,這個問題其實就是問到了關於數字貨幣的起源。

主權政府具有發幣權,各國央行會不斷發行貨幣,比如我國發行人民幣,美國發行美元。因為主權政府發行貨幣沒有限制,海量貨幣造成通貨膨脹,居民手裡的錢不斷在貶值。

比如小時候饅頭一元四個,現在一元一個,有的地方2元一個。物價上漲的例子不勝枚舉。

在這種情況下,居民辛辛苦苦攢下的財富,永遠在不斷的縮水,人必須永遠忙碌。假如你30歲積累的財富,夠你躺著殷實的度過餘生。但是,如果不能保持財富增值,你60歲的時候會發現就快沒有餘糧了,同樣數量的貨幣已經買不到什麼東西了。

為了對抗這種貨幣貶值,聰明的創造者就創造出了數量必須有限的數字貨幣。比特幣就是開創者,有且只有2100萬枚,並不歸任何政府管理。

數字貨幣就是因為這個被創造出來。至於比特幣怎樣確保總量僅有2100萬枚,這是另一個問題,感興趣可以再討論。

數字貨幣發展方興未艾,體現了居民對自己辛苦積累的財富的珍視。主權政府可以「掠奪」財富於無形,推動了數字貨幣新事物的發展。

拿比特幣無限可分說事的人,是根本沒理解比特幣。我不推薦你買比特幣,但是這個道理必須講清楚,「無限可分」和「總量無限」是兩回事。

先說總量問題,再說為啥無限可分不代表總量無限,比特幣總量確實是2100萬,你可以把比特幣的數量理解成,一個超級難的方程式的解,而這個解一共有2100萬個,這個是可證明的數學定理,所以總量是確定的,你擁有一個比特幣就相當於你擁有一個解,這個解的歸屬權,就在每次計算出結果後,記錄在比特幣的鏈條上,而且是無法篡改的。而且比特幣,是無法更多發行的。

然後很多人說,比特幣不是2100萬個,因為比特幣是無限可分的,你可以擁有0.1個比特幣,0.01個比特幣,0.001個比特幣,所以比特幣是無限的。

說比特幣無限可分這個是對的,但因此說比特幣是總量無限的,就是胡扯了。

在總量一定的情況下,無論你怎麼繼續分,原來有多少,你還是有多少,你原來有10個比特幣,那麼無論剩下的2000多萬怎麼繼續劃分,你永遠都擁有10/21000000的比特幣分量,不會因為有人把自己的1個比特幣分成了100份,他就擁有比你更多的比特幣了。同樣的,也不會因為你把這10個比特幣繼續分成1000分,你就擁有超過10/21000000的比特幣分量了。

但是傳統貨幣不同,假設市場上流通的貨幣總量是1000萬,你擁有10萬,那麼你就擁有1/100的貨幣量。

假設你這10萬不動,接著,國家又發行了1000萬的貨幣,那麼你所擁有的貨幣量就變成了1/200了。

那麼在你什麼都不做的時候,你的貨幣就貶值了。

比特幣被吹捧的原因之一,就在於,沒有一個這樣的中央銀行,可以隨便發行貨幣,導致手裡的貨幣貶值。

當然了,國家也不是隨便就發,但是比起擁有總量恆定的比特幣,央行在這方面的彈性那就太大了。

另外無限可分充其量也就是個數學 游戲 ,理論上說,任何貨幣都是無限可分的,只要國家願意發行,0.001元,0.0001, 0.00000000001元......,那麼任何貨幣都是無限可分的,只不過比特幣通過程序代碼實現,實現起來更容易。

騙局你明白嗎就和當初美元又叫美金一樣,等到價值上來了就可以割全世界韭菜,還是咱們國家厲害。上來就禁止比特幣中國交易了。

7. 區塊鏈最高能長到多少

最長區塊鏈才是正確的區塊鏈?

什麼是最長鏈?為什麼是正確的區塊鏈?

比特幣白皮書規定,節點永遠認為最長鏈是正確的區塊鏈,並將持續在它上面延長。所有礦工都在最長鏈上挖礦,有利於區塊鏈賬本的唯一性。如果給你轉賬的比特幣交易不記錄在最長鏈上,你將有可能面臨財產損失。

怎樣算是「最長的區塊鏈」呢?因為全世界的礦工同時在挖礦,有可能同時有2個礦工算出了正確的答案,那麼區塊鏈就會形成分叉,剩下的礦工有可能在其中任意一條分叉上繼續挖礦,延長區塊鏈。

所以我們通常要求在比特幣轉賬被打包之後,還需要經歷6個區塊的確認,確保礦工不會再回到另一條分叉上挖礦時,才算真正的轉賬成功。

【科普】如何選擇區塊鏈的最長鏈

本文由幣車HIT(biche.yaofache.com)大V養成計劃支持。

基於逐利,節點就會自發的遵守協議。共識就是數以萬計的獨立節點遵守了簡單的規則(通過非同步交互)自發形成的。

比特幣沒有中心機構,幾乎所有的完整節點都有一份公共總帳本,那麼大家如何達成共識:確認哪一份才是公認權威的總賬本呢?

為什麼要遵守協議

這其實是一個經濟問題,在經濟活動中的每個人都是自私自利的,追求的是利益的最大化,一個節點工作量只有在其他的節點認同其是有效的(打包的新區塊,其他的節點只有驗證通過才會加入到區塊鏈中,並在網路上傳播),才能夠過得收益,?而只有遵守規則才會得到其他的節點認同。?因此,基於逐利,節點就會自發的遵守協議。共識就是數以萬計的獨立節點遵守了簡單的規則(通過非同步交互)自發形成的。

去中心化共識

實際上,比特幣的共識由所有節點的4個獨立過程相互作用而產生:

每個節點(挖礦節點)依據標准對每個交易進行獨立驗證;挖礦節點通過完成工作量證明,將交易記錄獨立打包進新區塊;每個節點獨立的對新區塊進行校驗並組裝進區塊鏈;每個節點對區塊鏈進行獨立選擇,在工作量證明機制下選擇累計工作量最大的區塊鏈;共識最終目的是保證比特幣不停的在工作量最大的區塊鏈上運轉,工作量最大的區塊鏈就是權威的公共總帳本。

最長鏈的選擇

先來一個定義,把累計了最多難度的區塊鏈。在一般情況下,也是包含最多區塊的那個鏈稱為主鏈

每一個(挖礦)節點總是選擇並嘗試延長主鏈。

分叉

當有兩名礦工在幾乎在相同的時間內,各自都算得了工作量證明解,便立即傳播自己的「獲勝」區塊到網路中,先是傳播給鄰近的節點而後傳播到整個網路。每個收到有效區塊的節點都會將其並入並延長區塊鏈。?當這個兩個區塊傳播時,一些節點首先收到#3458A,?一些節點首先收到#3458B,這兩個候選區塊(通常這兩個候選區塊會包含幾乎相同的交易)都是主鏈的延伸,分叉就會產生,這時分叉出有競爭關系的兩條鏈。兩個塊都收到的節點,會把其中有更多工作量的一條會繼續作為主鏈,另一條作為備用鏈保存(保存是因為備用鏈將來可能會超過主鏈難度稱為新主鏈)。

分叉解決

收到#3458A的(挖礦)節點,會立刻以這個區塊為父區塊來產生新的候選區塊,並嘗試尋找這個候選區塊的工作量證明解。同樣地,接受#3458B區塊的節點會以這個區塊為鏈的頂點開始生成新塊,延長這個鏈(下面稱為B鏈)。?當原本以#3458A為父區塊求解的節點在收到#3458B,?#3459B之後,會立刻將B鏈作為主鏈(因為#3458A為頂點的鏈已經不是最長鏈了)繼續挖礦。節點也有可能先收到#3459B,再收到#3458B,收到#3459B時,會被認為是「孤塊「(因為還找不到#3459B的父塊#3458B)保存在孤塊池中,一旦收到父塊#3458B時,節點就會將孤塊從孤塊池中取出,並且連接到它的父區塊,讓它作為區塊鏈的一部分。

比特幣將區塊間隔設計為10分鍾,是在更快速的交易確認和更低的分叉概率間作出的妥協。更短的區塊產生間隔會讓交易確認更快地完成,也會導致更加頻繁地區塊鏈分叉。與之相對地,長的間隔會減少分叉數量,卻會導致更長的確認時間。

什麼是區塊鏈擴容?

普通用戶能夠運行節點對於區塊鏈的去中心化至關重要

想像一下凌晨兩點多,你接到了一個緊急呼叫,來自世界另一端幫你運行礦池(質押池)的人。從大約14分鍾前開始,你的池子和其他幾個人從鏈中分離了出來,而網路仍然維持著79%的算力。根據你的節點,多數鏈的區塊是無效的。這時出現了余額錯誤:區塊似乎錯誤地將450萬枚額外代幣分配給了一個未知地址。

一小時後,你和其他兩個同樣遭遇意外的小礦池參與者、一些區塊瀏覽器和交易所方在一個聊天室中,看見有人貼出了一條推特的鏈接,開頭寫著「宣布新的鏈上可持續協議開發基金」。

到了早上,相關討論廣泛散布在推特以及一個不審查內容的社區論壇上。但那時450萬枚代幣中的很大一部分已經在鏈上轉換為其他資產,並且進行了數十億美元的defi交易。79%的共識節點,以及所有主要的區塊鏈瀏覽器和輕錢包的端點都遵循了這條新鏈。也許新的開發者基金將為某些開發提供資金,或者也許所有這些都被領先的礦池、交易所及其裙帶所吞並。但是無論結果如何,該基金實際上都成為了既成事實,普通用戶無法反抗。

或許還有這么一部主題電影。或許會由MolochDAO或其他組織進行資助。

這種情形會發生在你的區塊鏈中嗎?你所在區塊鏈社區的精英,包括礦池、區塊瀏覽器和託管節點,可能協調得很好,他們很可能都在同一個telegram頻道和微信群中。如果他們真的想出於利益突然對協議規則進行修改,那麼他們可能具備這種能力。以太坊區塊鏈在十小時內完全解決了共識失敗,如果是只有一個客戶端實現的區塊鏈,並且只需要將代碼更改部署到幾十個節點,那麼可以更快地協調客戶端代碼的更改。能夠抵禦這種社會性協作攻擊的唯一可靠方式是「被動防禦」,而這種力量來自去一個中心化的群體:用戶。

想像一下,如果用戶運行區塊鏈的驗證節點(無論是直接驗證還是其他間接技術),並自動拒絕違反協議規則的區塊,即使超過90%的礦工或質押者支持這些區塊,故事會如何發展。

如果每個用戶都運行一個驗證節點,那麼攻擊很快就會失敗:有些礦池和交易所會進行分叉,並且在整個過程中看起來很愚蠢。但是即使只有一些用戶運行驗證節點,攻擊者也無法大獲全勝。相反,攻擊會導致混亂,不同用戶會看到不同的區塊鏈版本。最壞情況下,隨之而來的市場恐慌和可能持續的鏈分叉將大幅減少攻擊者的利潤。對如此曠日持久的沖突進行應對的想法本身就可以阻止大多數攻擊。

Hasu關於這一點的看法:

「我們要明確一件事,我們之所以能夠抵禦惡意的協議更改,是因為擁有用戶驗證區塊鏈的文化,而不是因為PoW或PoS。」

假設你的社區有37個節點運行者,以及80000名被動監聽者,對簽名和區塊頭進行檢查,那麼攻擊者就獲勝了。如果每個人都運行節點的話,攻擊者就會失敗。我們不清楚針對協同攻擊的啟動群體免疫的確切閾值是多少,但有一點是絕對清楚的:好的節點越多,惡意的節點就越少,而且我們所需的數量肯定不止於幾百幾千個。

那麼全節點工作的上限是什麼?

為了使得有盡可能多的用戶能夠運行全節點,我們會將注意力集中在普通消費級硬體上。即使能夠輕松購買到專用硬體,這能夠降低一些全節點的門檻,但事實上對可擴展性的提升並不如我們想像的那般。

全節點處理大量交易的能力主要受限於三個方面:

算力:在保證安全的前提下,我們能劃分多少CPU來運行節點?

帶寬:基於當前的網路連接,一個區塊能包含多少位元組?

存儲:我們能要求用戶使用多大的空間來進行存儲?此外,其讀取速度應該達到多少?(即,HDD足夠嗎?還是說我們需要SSD?)

許多使用「簡單」技術對區塊鏈進行大幅擴容的錯誤看法都源自於對這些數字過於樂觀的估計。我們可以依次來討論這三個因素:

算力

錯誤答案:100%的CPU應該用於區塊驗證

正確答案:約5-10%的CPU可以用於區塊驗證

限制之所以這么低的四個主要原因如下:

我們需要一個安全邊界來覆蓋DoS攻擊的可能性(攻擊者利用代碼弱點製造的交易需要比常規交易更長的處理時間)

節點需要在離線之後能夠與區塊鏈同步。如果我掉線一分鍾,那我應該要能夠在幾秒鍾之內完成同步

運行節點不應該很快地耗盡電池,也不應該拖慢其他應用的運行速度

節點也有其他非區塊生產的工作要進行,大多數是驗證以及對p2p網路中輸入的交易和請求做出響應

請注意,直到最近大多數針對「為什麼只需要5-10%?」這一點的解釋都側重於另一個不同的問題:因為PoW出塊時間不定,驗證區塊需要很長時間,會增加同時創建多個區塊的風險。這個問題有很多修復方法,例如BitcoinNG,或使用PoS權益證明。但這些並沒有解決其他四個問題,因此它們並沒有如許多人所料在可擴展性方面獲得巨大進展。

並行性也不是靈丹妙葯。通常,即使是看似單線程區塊鏈的客戶端也已經並行化了:簽名可以由一個線程驗證,而執行由其他線程完成,並且有一個單獨的線程在後台處理交易池邏輯。而且所有線程的使用率越接近100%,運行節點的能源消耗就越多,針對DoS的安全系數就越低。

帶寬

錯誤答案:如果沒2-3秒都產生10MB的區塊,那麼大多數用戶的網路都大於10MB/秒,他們當然都能處理這些區塊

正確答案:或許我們能在每12秒處理1-5MB的區塊,但這依然很難

如今,我們經常聽到關於互聯網連接可以提供多少帶寬的廣為傳播的統計數據:100Mbps甚至1Gbps的數字很常見。但是由於以下幾個原因,宣稱的帶寬與預期實際帶寬之間存在很大差異:

「Mbps」是指「每秒數百萬bits」;一個bit是一個位元組的1/8,因此我們需要將宣稱的bit數除以8以獲得位元組數。

網路運營商,就像其他公司一樣,經常編造謊言。

總是有多個應用使用同一個網路連接,所以節點無法獨占整個帶寬。

P2P網路不可避免地會引入開銷:節點通常最終會多次下載和重新上傳同一個塊(更不用說交易在被打包進區塊之前還要通過mempool進行廣播)。

當Starkware在2019年進行一項實驗時,他們在交易數據gas成本降低後首次發布了500kB的區塊,一些節點實際上無法處理這種大小的區塊。處理大區塊的能力已經並將持續得到改善。但是無論我們做什麼,我們仍然無法獲取以MB/秒為單位的平均帶寬,說服自己我們可以接受1秒的延遲,並且有能力處理那種大小的區塊。

存儲

錯誤答案:10TB

正確答案:512GB

正如大家可能猜到的,這里的主要論點與其他地方相同:理論與實踐之間的差異。理論上,我們可以在亞馬遜上購買8TB固態驅動(確實需要SSD或NVME;HDD對於區塊鏈狀態存儲來說太慢了)。實際上,我用來寫這篇博文的筆記本電腦有512GB,如果你讓人們去購買硬體,許多人就會變得懶惰(或者他們無法負擔800美元的8TBSSD)並使用中心化服務。即使可以將區塊鏈裝到某個存儲設備上,大量活動也可以快速地耗盡磁碟並迫使你購入新磁碟。

一群區塊鏈協議研究員對每個人的磁碟空間進行了調查。我知道樣本量很小,但仍然...

請點擊輸入圖片描述

此外,存儲大小決定了新節點能夠上線並開始參與網路所需的時間。現有節點必須存儲的任何數據都是新節點必須下載的數據。這個初始同步時間(和帶寬)也是用戶能夠運行節點的主要障礙。在寫這篇博文時,同步一個新的geth節點花了我大約15個小時。如果以太坊的使用量增加10倍,那麼同步一個新的geth節點將至少需要一周時間,而且更有可能導致節點的互聯網連接受到限制。這在攻擊期間更為重要,當用戶之前未運行節點時對攻擊做出成功響應需要用戶啟用新節點。

交互效應

此外,這三類成本之間存在交互效應。由於資料庫在內部使用樹結構來存儲和檢索數據,因此從資料庫中獲取數據的成本隨著資料庫大小的對數而增加。事實上,因為頂級(或前幾級)可以緩存在RAM中,所以磁碟訪問成本與資料庫大小成正比,是RAM中緩存數據大小的倍數。

不要從字面上理解這個圖,不同的資料庫以不同的方式工作,通常內存中的部分只是一個單獨(但很大)的層(參見leveldb中使用的LSM樹)。但基本原理是一樣的。

例如,如果緩存為4GB,並且我們假設資料庫的每一層比上一層大4倍,那麼以太坊當前的~64GB狀態將需要~2次訪問。但是如果狀態大小增加4倍到~256GB,那麼這將增加到~3次訪問。因此,gas上限增加4倍實際上可以轉化為區塊驗證時間增加約6倍。這種影響可能會更大:硬碟在已滿狀態下比空閑時需要花更長時間來讀寫。

這對以太坊來說意味著什麼?

現在在以太坊區塊鏈中,運行一個節點對許多用戶來說已經是一項挑戰,盡管至少使用常規硬體仍然是可能的(我寫這篇文章時剛剛在我的筆記本電腦上同步了一個節點!)。因此,我們即將遭遇瓶頸。核心開發者最關心的問題是存儲大小。因此,目前在解決計算和數據瓶頸方面的巨大努力,甚至對共識演算法的改變,都不太可能帶來gaslimit的大幅提升。即使解決了以太坊最大的DoS弱點,也只能將gaslimit提高20%。

對於存儲大小的問題,唯一解決方案是無狀態和狀態逾期。無狀態使得節點群能夠在不維護永久存儲的情況下進行驗證。狀態逾期會使最近未訪問過的狀態失活,用戶需要手動提供證明來更新。這兩條路徑已經研究了很長時間,並且已經開始了關於無狀態的概念驗證實現。這兩項改進相結合可以大大緩解這些擔憂,並為顯著提升gaslimit開辟空間。但即使在實施無狀態和狀態逾期之後,gaslimit也可能只會安全地提升約3倍,直到其他限制開始發揮作用。

另一個可能的中期解決方案使使用ZK-SNARKs來驗證交易。ZK-SNARKs能夠保證普通用戶無需個人存儲狀態或是驗證區塊,即使他們仍然需要下載區塊中的所有數據來抵禦數據不可用攻擊。另外,即使攻擊者不能強行提交無效區塊,但是如果運行一個共識節點的難度過高,依然會有協調審查攻擊的風險。因此,ZK-SNARKs不能無限地提升節點能力,但是仍然能夠對其進行大幅提升(或許是1-2個數量級)。一些區塊鏈在layer1上探索該形式,以太坊則通過layer2協議(也叫ZKrollups)來獲益,例如zksync,Loopring和Starknet。

分片之後又會如何?

分片從根本上解決了上述限制,因為它將區塊鏈上包含的數據與單個節點需要處理和存儲的數據解耦了。節點驗證區塊不是通過親自下載和執行,而是使用先進的數學和密碼學技術來間接驗證區塊。

因此,分片區塊鏈可以安全地擁有非分片區塊鏈無法實現的非常高水平的吞吐量。這確實需要大量的密碼學技術來有效替代樸素完整驗證,以拒絕無效區塊,但這是可以做到的:該理論已經具備了基礎,並且基於草案規范的概念驗證已經在進行中。

以太坊計劃採用二次方分片(quadraticsharding),其中總可擴展性受到以下事實的限制:節點必須能夠同時處理單個分片和信標鏈,而信標鏈必須為每個分片執行一些固定的管理工作。如果分片太大,節點就不能再處理單個分片,如果分片太多,節點就不能再處理信標鏈。這兩個約束的乘積構成了上限。

可以想像,通過三次方分片甚至指數分片,我們可以走得更遠。在這樣的設計中,數據可用性采樣肯定會變得更加復雜,但這是可以實現的。但以太坊並沒有超越二次方,原因在於,從交易分片到交易分片的分片所獲得的額外可擴展性收益實際上無法在其他風險程度可接受的前提下實現。

那麼這些風險是什麼呢?

最低用戶數量

可以想像,只要有一個用戶願意參與,非分片區塊鏈就可以運行。但分片區塊鏈並非如此:單個節點無法處理整條鏈,因此需要足夠的節點以共同處理區塊鏈。如果每個節點可以處理50TPS,而鏈可以處理10000TPS,那麼鏈至少需要200個節點才能存續。如果鏈在任何時候都少於200個節點,那可能會出現節點無法再保持同步,或者節點停止檢測無效區塊,或者還可能會發生許多其他壞事,具體取決於節點軟體的設置。

在實踐中,由於需要冗餘(包括數據可用性采樣),安全的最低數量比簡單的「鏈TPS除以節點TPS」高幾倍,對於上面的例子,我們將其設置位1000個節點。

如果分片區塊鏈的容量增加10倍,則最低用戶數也增加10倍。現在大家可能會問:為什麼我們不從較低的容量開始,當用戶很多時再增加,因為這是我們的實際需要,用戶數量回落再降低容量?

這里有幾個問題:

區塊鏈本身無法可靠地檢測到其上有多少唯一用戶,因此需要某種治理來檢測和設置分片數量。對容量限制的治理很容易成為分裂和沖突的根源。

如果許多用戶突然同時意外掉線怎麼辦?

增加啟動分叉所需的最低用戶數量,使得防禦惡意控制更加艱難。

最低用戶數為1,000,這幾乎可以說是沒問題的。另一方面,最低用戶數設為100萬,這肯定是不行。即使最低用戶數為10,000也可以說開始變得有風險。因此,似乎很難證明超過幾百個分片的分片區塊鏈是合理的。

歷史可檢索性

用戶真正珍視的區塊鏈重要屬性是永久性。當公司破產或是維護該生態系統不再產生利益時,存儲在伺服器上的數字資產將在10年內不再存在。而以太坊上的NFT是永久的。

是的,到2372年人們仍能夠下載並查閱你的加密貓。

但是一旦區塊鏈的容量過高,存儲所有這些數據就會變得更加困難,直到某時出現巨大風險,某些歷史數據最終將……沒人存儲。

要量化這種風險很容易。以區塊鏈的數據容量(MB/sec)為單位,乘以~30得到每年存儲的數據量(TB)。當前的分片計劃的數據容量約為1.3MB/秒,因此約為40TB/年。如果增加10倍,則為400TB/年。如果我們不僅希望可以訪問數據,而且是以一種便捷的方式,我們還需要元數據(例如解壓縮匯總交易),因此每年達到4PB,或十年後達到40PB。InternetArchive(互聯網檔案館)使用50PB。所以這可以說是分片區塊鏈的安全大小上限。

因此,看起來在這兩個維度上,以太坊分片設計實際上已經非常接近合理的最大安全值。常數可以增加一點,但不能增加太多。

結語

嘗試擴容區塊鏈的方法有兩種:基礎的技術改進和簡單地提升參數。首先,提升參數聽起來很有吸引力:如果您是在餐紙上進行數學運算,這就很容易讓自己相信消費級筆記本電腦每秒可以處理數千筆交易,不需要ZK-SNARK、rollups或分片。不幸的是,有很多微妙的理由可以解釋為什麼這種方法是有根本缺陷的。

運行區塊鏈節點的計算機無法使用100%的CPU來驗證區塊鏈;他們需要很大的安全邊際來抵抗意外的DoS攻擊,他們需要備用容量來執行諸如在內存池中處理交易之類的任務,並且用戶不希望在計算機上運行節點的時候無法同時用於任何其他應用。帶寬也會受限:10MB/s的連接並不意味著每秒可以處理10MB的區塊!也許每12秒才能處理1-5MB的塊。存儲也是一樣,提高運行節點的硬體要求並且限制專門的節點運行者並不是解決方案。對於去中心化的區塊鏈而言,普通用戶能夠運行節點並形成一種文化,即運行節點是一種普遍行為,這一點至關重要。

8. 二進制bit7等於多少

是111。
bit也就是我們不一定聽說過的比特,大名鼎鼎的比特幣就是以此命名的。它的簡寫為小寫字母 「b」它作為信息技術的最基本存儲單元,電腦是以二進制存儲以及發送接收數據的。二進制的一位,就叫做 1 bit。也就是說 bit 的含義就是二進制數中的一個數位,即 「0」 或者 "1"。
拓展:網路線路的計量單位,也就是我們通常說的 2M 寬頻,10 M 寬頻的單位,是 比特每秒(bits per second)。比特每秒 的縮寫為 bps,意思是每秒接收的平均比特數。更大的單位是 千比特每秒(Kbps)或 兆比特每秒(Mbps)。2M寬頻,意味著每秒平均可以接受 2Mb 的數據,也就是二百萬左右比特的數據,在這里,小寫 b 的意思就是比特了。而通常我們說的下載速度,也就是網速,是每秒下載的位元組數。比如網速是 5 KB(這網速可是夠慢的),意思就是每秒接收的數據是 五千位元組。

9. 區塊鏈同步需要多少內存(區塊鏈數據同步)

【區塊鏈】什麼是區塊鏈錢包?

提起區塊鏈錢包我們就不得不談到比特幣錢包(Bitcoincore),其他區塊鏈錢包大多都是仿照比特幣錢包做的,比特幣錢包是我們管理比特幣的工具。

比特幣錢包里存儲著我們的比特幣信息,包括比特幣地址(類似於你的銀行卡賬號)、私鑰(類似於你的銀行卡密碼),比特幣錢包可以存儲多個比特幣地址以及每個比特幣地址所對應的獨立私鑰。

比特幣錢包的核心功能就是保護你的私鑰,如果錢包丟失你將可能永遠失去你的比特幣。

區塊鏈錢包有很多種形態。

根據用戶是否掌握私鑰可將錢包分為:鏈上錢包(onchainwallet)和託管錢包(offchainwallet)。他們之間有如下兩點區別:

關於鏈上錢包(onchainwallet)我們又可根據私鑰存儲是否聯網劃分為冷錢包和熱錢包;冷錢包和熱錢包我們也稱之為離線錢包和在線錢包。

通常所說的硬體錢包就屬於冷錢包(一般准備長期持有的大額數字貨幣建議使用冷錢包存放),除了這種專業的設備我們還可以使用離線的電腦、手機、紙錢包、腦錢包等作為冷錢包存儲我們的數字資產。

冷錢包最大優點就是安全,因為它不觸網的屬性可以大大降低黑客攻擊的可能性;唯一需要擔心就是不要把自己的冷錢包弄丟即可。

與冷錢包相對應的就是熱錢包,熱錢包是需要聯網的;熱錢包又可分為桌面錢包、手機錢包和網頁錢包。

熱錢包往往是在線錢包的形式,因此在使用熱錢包時最好在不同平台設置不同密碼,且開啟二次認證確保自己的資產安全。

根據區塊鏈數據的維護方式和錢包的去中心化程度又可將錢包分為全節點錢包、輕節點錢包、中心化錢包。

全節點錢包大部分都屬於桌面錢包,其中的代表有Bitcoin-Core核心錢包、Geth、Parity等等,此類錢包需要同步所有區塊鏈數據,佔用很大的內存,但可以實現完全去中心化。

而手機錢包和網頁錢包大部分屬於輕節點錢包,輕錢包依賴區塊鏈網路中的其他全節點,僅同步與自己相關的交易數據,基本可以實現去中心化。

中心化錢包不依賴區塊鏈網路,所有的數據均從自己的中心化伺服器中獲取;但是交易效率很高,可以實時到賬,你在交易平台中注冊的賬號就是中心化錢包。

記住在區塊鏈的世界裡誰掌握私鑰誰才是數字資產真正的主人。

全局節點什麼意思

全節點是是擁有完整區塊鏈賬本的節點,全節點需要佔用內存同步所有的區塊鏈數據,能夠獨立校驗區塊鏈上的所有交易並實時更新數據,主要負責區塊鏈的交易的廣播和驗證。

請問,大學生區塊鏈本科專業,電腦需要什麼樣的配置夠用?

學生的電腦普通電腦配置就夠用了,三四千塊錢的台式機用起來就不錯

什麼是區塊鏈擴容?

普通用戶能夠運行節點對於區塊鏈的去中心化至關重要

想像一下凌晨兩點多,你接到了一個緊急呼叫,來自世界另一端幫你運行礦池(質押池)的人。從大約14分鍾前開始,你的池子和其他幾個人從鏈中分離了出來,而網路仍然維持著79%的算力。根據你的節點,多數鏈的區塊是無效的。這時出現了余額錯誤:區塊似乎錯誤地將450萬枚額外代幣分配給了一個未知地址。

一小時後,你和其他兩個同樣遭遇意外的小礦池參與者、一些區塊瀏覽器和交易所方在一個聊天室中,看見有人貼出了一條推特的鏈接,開頭寫著「宣布新的鏈上可持續協議開發基金」。

到了早上,相關討論廣泛散布在推特以及一個不審查內容的社區論壇上。但那時450萬枚代幣中的很大一部分已經在鏈上轉換為其他資產,並且進行了數十億美元的defi交易。79%的共識節點,以及所有主要的區塊鏈瀏覽器和輕錢包的端點都遵循了這條新鏈。也許新的開發者基金將為某些開發提供資金,或者也許所有這些都被領先的礦池、交易所及其裙帶所吞並。但是無論結果如何,該基金實際上都成為了既成事實,普通用戶無法反抗。

或許還有這么一部主題電影。或許會由MolochDAO或其他組織進行資助。

這種情形會發生在你的區塊鏈中嗎?你所在區塊鏈社區的精英,包括礦池、區塊瀏覽器和託管節點,可能協調得很好,他們很可能都在同一個telegram頻道和微信群中。如果他們真的想出於利益突然對協議規則進行修改,那麼他們可能具備這種能力。以太坊區塊鏈在十小時內完全解決了共識失敗,如果是只有一個客戶端實現的區塊鏈,並且只需要將代碼更改部署到幾十個節點,那麼可以更快地協調客戶端代碼的更改。能夠抵禦這種社會性協作攻擊的唯一可靠方式是「被動防禦」,而這種力量來自去一個中心化的群體:用戶。

想像一下,如果用戶運行區塊鏈的驗證節點(無論是直接驗證還是其他間接技術),並自動拒絕違反協議規則的區塊,即使超過90%的礦工或質押者支持這些區塊,故事會如何發展。

如果每個用戶都運行一個驗證節點,那麼攻擊很快就會失敗:有些礦池和交易所會進行分叉,並且在整個過程中看起來很愚蠢。但是即使只有一些用戶運行驗證節點,攻擊者也無法大獲全勝。相反,攻擊會導致混亂,不同用戶會看到不同的區塊鏈版本。最壞情況下,隨之而來的市場恐慌和可能持續的鏈分叉將大幅減少攻擊者的利潤。對如此曠日持久的沖突進行應對的想法本身就可以阻止大多數攻擊。

Hasu關於這一點的看法:

「我們要明確一件事,我們之所以能夠抵禦惡意的協議更改,是因為擁有用戶驗證區塊鏈的文化,而不是因為PoW或PoS。」

假設你的社區有37個節點運行者,以及80000名被動監聽者,對簽名和區塊頭進行檢查,那麼攻擊者就獲勝了。如果每個人都運行節點的話,攻擊者就會失敗。我們不清楚針對協同攻擊的啟動群體免疫的確切閾值是多少,但有一點是絕對清楚的:好的節點越多,惡意的節點就越少,而且我們所需的數量肯定不止於幾百幾千個。

那麼全節點工作的上限是什麼?

為了使得有盡可能多的用戶能夠運行全節點,我們會將注意力集中在普通消費級硬體上。即使能夠輕松購買到專用硬體,這能夠降低一些全節點的門檻,但事實上對可擴展性的提升並不如我們想像的那般。

全節點處理大量交易的能力主要受限於三個方面:

算力:在保證安全的前提下,我們能劃分多少CPU來運行節點?

帶寬:基於當前的網路連接,一個區塊能包含多少位元組?

存儲:我們能要求用戶使用多大的空間來進行存儲?此外,其讀取速度應該達到多少?(即,HDD足夠嗎?還是說我們需要SSD?)

許多使用「簡單」技術對區塊鏈進行大幅擴容的錯誤看法都源自於對這些數字過於樂觀的估計。我們可以依次來討論這三個因素:

算力

錯誤答案:100%的CPU應該用於區塊驗證

正確答案:約5-10%的CPU可以用於區塊驗證

限制之所以這么低的四個主要原因如下:

我們需要一個安全邊界來覆蓋DoS攻擊的可能性(攻擊者利用代碼弱點製造的交易需要比常規交易更長的處理時間)

節點需要在離線之後能夠與區塊鏈同步。如果我掉線一分鍾,那我應該要能夠在幾秒鍾之內完成同步

運行節點不應該很快地耗盡電池,也不應該拖慢其他應用的運行速度

節點也有其他非區塊生產的工作要進行,大多數是驗證以及對p2p網路中輸入的交易和請求做出響應

請注意,直到最近大多數針對「為什麼只需要5-10%?」這一點的解釋都側重於另一個不同的問題:因為PoW出塊時間不定,驗證區塊需要很長時間,會增加同時創建多個區塊的風險。這個問題有很多修復方法,例如BitcoinNG,或使用PoS權益證明。但這些並沒有解決其他四個問題,因此它們並沒有如許多人所料在可擴展性方面獲得巨大進展。

並行性也不是靈丹妙葯。通常,即使是看似單線程區塊鏈的客戶端也已經並行化了:簽名可以由一個線程驗證,而執行由其他線程完成,並且有一個單獨的線程在後台處理交易池邏輯。而且所有線程的使用率越接近100%,運行節點的能源消耗就越多,針對DoS的安全系數就越低。

帶寬

錯誤答案:如果沒2-3秒都產生10MB的區塊,那麼大多數用戶的網路都大於10MB/秒,他們當然都能處理這些區塊

正確答案:或許我們能在每12秒處理1-5MB的區塊,但這依然很難

如今,我們經常聽到關於互聯網連接可以提供多少帶寬的廣為傳播的統計數據:100Mbps甚至1Gbps的數字很常見。但是由於以下幾個原因,宣稱的帶寬與預期實際帶寬之間存在很大差異:

「Mbps」是指「每秒數百萬bits」;一個bit是一個位元組的1/8,因此我們需要將宣稱的bit數除以8以獲得位元組數。

網路運營商,就像其他公司一樣,經常編造謊言。

總是有多個應用使用同一個網路連接,所以節點無法獨占整個帶寬。

P2P網路不可避免地會引入開銷:節點通常最終會多次下載和重新上傳同一個塊(更不用說交易在被打包進區塊之前還要通過mempool進行廣播)。

當Starkware在2019年進行一項實驗時,他們在交易數據gas成本降低後首次發布了500kB的區塊,一些節點實際上無法處理這種大小的區塊。處理大區塊的能力已經並將持續得到改善。但是無論我們做什麼,我們仍然無法獲取以MB/秒為單位的平均帶寬,說服自己我們可以接受1秒的延遲,並且有能力處理那種大小的區塊。

存儲

錯誤答案:10TB

正確答案:512GB

正如大家可能猜到的,這里的主要論點與其他地方相同:理論與實踐之間的差異。理論上,我們可以在亞馬遜上購買8TB固態驅動(確實需要SSD或NVME;HDD對於區塊鏈狀態存儲來說太慢了)。實際上,我用來寫這篇博文的筆記本電腦有512GB,如果你讓人們去購買硬體,許多人就會變得懶惰(或者他們無法負擔800美元的8TBSSD)並使用中心化服務。即使可以將區塊鏈裝到某個存儲設備上,大量活動也可以快速地耗盡磁碟並迫使你購入新磁碟。

一群區塊鏈協議研究員對每個人的磁碟空間進行了調查。我知道樣本量很小,但仍然...

請點擊輸入圖片描述

此外,存儲大小決定了新節點能夠上線並開始參與網路所需的時間。現有節點必須存儲的任何數據都是新節點必須下載的數據。這個初始同步時間(和帶寬)也是用戶能夠運行節點的主要障礙。在寫這篇博文時,同步一個新的geth節點花了我大約15個小時。如果以太坊的使用量增加10倍,那麼同步一個新的geth節點將至少需要一周時間,而且更有可能導致節點的互聯網連接受到限制。這在攻擊期間更為重要,當用戶之前未運行節點時對攻擊做出成功響應需要用戶啟用新節點。

交互效應

此外,這三類成本之間存在交互效應。由於資料庫在內部使用樹結構來存儲和檢索數據,因此從資料庫中獲取數據的成本隨著資料庫大小的對數而增加。事實上,因為頂級(或前幾級)可以緩存在RAM中,所以磁碟訪問成本與資料庫大小成正比,是RAM中緩存數據大小的倍數。

不要從字面上理解這個圖,不同的資料庫以不同的方式工作,通常內存中的部分只是一個單獨(但很大)的層(參見leveldb中使用的LSM樹)。但基本原理是一樣的。

例如,如果緩存為4GB,並且我們假設資料庫的每一層比上一層大4倍,那麼以太坊當前的~64GB狀態將需要~2次訪問。但是如果狀態大小增加4倍到~256GB,那麼這將增加到~3次訪問。因此,gas上限增加4倍實際上可以轉化為區塊驗證時間增加約6倍。這種影響可能會更大:硬碟在已滿狀態下比空閑時需要花更長時間來讀寫。

這對以太坊來說意味著什麼?

現在在以太坊區塊鏈中,運行一個節點對許多用戶來說已經是一項挑戰,盡管至少使用常規硬體仍然是可能的(我寫這篇文章時剛剛在我的筆記本電腦上同步了一個節點!)。因此,我們即將遭遇瓶頸。核心開發者最關心的問題是存儲大小。因此,目前在解決計算和數據瓶頸方面的巨大努力,甚至對共識演算法的改變,都不太可能帶來gaslimit的大幅提升。即使解決了以太坊最大的DoS弱點,也只能將gaslimit提高20%。

對於存儲大小的問題,唯一解決方案是無狀態和狀態逾期。無狀態使得節點群能夠在不維護永久存儲的情況下進行驗證。狀態逾期會使最近未訪問過的狀態失活,用戶需要手動提供證明來更新。這兩條路徑已經研究了很長時間,並且已經開始了關於無狀態的概念驗證實現。這兩項改進相結合可以大大緩解這些擔憂,並為顯著提升gaslimit開辟空間。但即使在實施無狀態和狀態逾期之後,gaslimit也可能只會安全地提升約3倍,直到其他限制開始發揮作用。

另一個可能的中期解決方案使使用ZK-SNARKs來驗證交易。ZK-SNARKs能夠保證普通用戶無需個人存儲狀態或是驗證區塊,即使他們仍然需要下載區塊中的所有數據來抵禦數據不可用攻擊。另外,即使攻擊者不能強行提交無效區塊,但是如果運行一個共識節點的難度過高,依然會有協調審查攻擊的風險。因此,ZK-SNARKs不能無限地提升節點能力,但是仍然能夠對其進行大幅提升(或許是1-2個數量級)。一些區塊鏈在layer1上探索該形式,以太坊則通過layer2協議(也叫ZKrollups)來獲益,例如zksync,Loopring和Starknet。

分片之後又會如何?

分片從根本上解決了上述限制,因為它將區塊鏈上包含的數據與單個節點需要處理和存儲的數據解耦了。節點驗證區塊不是通過親自下載和執行,而是使用先進的數學和密碼學技術來間接驗證區塊。

因此,分片區塊鏈可以安全地擁有非分片區塊鏈無法實現的非常高水平的吞吐量。這確實需要大量的密碼學技術來有效替代樸素完整驗證,以拒絕無效區塊,但這是可以做到的:該理論已經具備了基礎,並且基於草案規范的概念驗證已經在進行中。

以太坊計劃採用二次方分片(quadraticsharding),其中總可擴展性受到以下事實的限制:節點必須能夠同時處理單個分片和信標鏈,而信標鏈必須為每個分片執行一些固定的管理工作。如果分片太大,節點就不能再處理單個分片,如果分片太多,節點就不能再處理信標鏈。這兩個約束的乘積構成了上限。

可以想像,通過三次方分片甚至指數分片,我們可以走得更遠。在這樣的設計中,數據可用性采樣肯定會變得更加復雜,但這是可以實現的。但以太坊並沒有超越二次方,原因在於,從交易分片到交易分片的分片所獲得的額外可擴展性收益實際上無法在其他風險程度可接受的前提下實現。

那麼這些風險是什麼呢?

最低用戶數量

可以想像,只要有一個用戶願意參與,非分片區塊鏈就可以運行。但分片區塊鏈並非如此:單個節點無法處理整條鏈,因此需要足夠的節點以共同處理區塊鏈。如果每個節點可以處理50TPS,而鏈可以處理10000TPS,那麼鏈至少需要200個節點才能存續。如果鏈在任何時候都少於200個節點,那可能會出現節點無法再保持同步,或者節點停止檢測無效區塊,或者還可能會發生許多其他壞事,具體取決於節點軟體的設置。

在實踐中,由於需要冗餘(包括數據可用性采樣),安全的最低數量比簡單的「鏈TPS除以節點TPS」高幾倍,對於上面的例子,我們將其設置位1000個節點。

如果分片區塊鏈的容量增加10倍,則最低用戶數也增加10倍。現在大家可能會問:為什麼我們不從較低的容量開始,當用戶很多時再增加,因為這是我們的實際需要,用戶數量回落再降低容量?

這里有幾個問題:

區塊鏈本身無法可靠地檢測到其上有多少唯一用戶,因此需要某種治理來檢測和設置分片數量。對容量限制的治理很容易成為分裂和沖突的根源。

如果許多用戶突然同時意外掉線怎麼辦?

增加啟動分叉所需的最低用戶數量,使得防禦惡意控制更加艱難。

最低用戶數為1,000,這幾乎可以說是沒問題的。另一方面,最低用戶數設為100萬,這肯定是不行。即使最低用戶數為10,000也可以說開始變得有風險。因此,似乎很難證明超過幾百個分片的分片區塊鏈是合理的。

歷史可檢索性

用戶真正珍視的區塊鏈重要屬性是永久性。當公司破產或是維護該生態系統不再產生利益時,存儲在伺服器上的數字資產將在10年內不再存在。而以太坊上的NFT是永久的。

是的,到2372年人們仍能夠下載並查閱你的加密貓。

但是一旦區塊鏈的容量過高,存儲所有這些數據就會變得更加困難,直到某時出現巨大風險,某些歷史數據最終將……沒人存儲。

要量化這種風險很容易。以區塊鏈的數據容量(MB/sec)為單位,乘以~30得到每年存儲的數據量(TB)。當前的分片計劃的數據容量約為1.3MB/秒,因此約為40TB/年。如果增加10倍,則為400TB/年。如果我們不僅希望可以訪問數據,而且是以一種便捷的方式,我們還需要元數據(例如解壓縮匯總交易),因此每年達到4PB,或十年後達到40PB。InternetArchive(互聯網檔案館)使用50PB。所以這可以說是分片區塊鏈的安全大小上限。

因此,看起來在這兩個維度上,以太坊分片設計實際上已經非常接近合理的最大安全值。常數可以增加一點,但不能增加太多。

結語

嘗試擴容區塊鏈的方法有兩種:基礎的技術改進和簡單地提升參數。首先,提升參數聽起來很有吸引力:如果您是在餐紙上進行數學運算,這就很容易讓自己相信消費級筆記本電腦每秒可以處理數千筆交易,不需要ZK-SNARK、rollups或分片。不幸的是,有很多微妙的理由可以解釋為什麼這種方法是有根本缺陷的。

運行區塊鏈節點的計算機無法使用100%的CPU來驗證區塊鏈;他們需要很大的安全邊際來抵抗意外的DoS攻擊,他們需要備用容量來執行諸如在內存池中處理交易之類的任務,並且用戶不希望在計算機上運行節點的時候無法同時用於任何其他應用。帶寬也會受限:10MB/s的連接並不意味著每秒可以處理10MB的區塊!也許每12秒才能處理1-5MB的塊。存儲也是一樣,提高運行節點的硬體要求並且限制專門的節點運行者並不是解決方案。對於去中心化的區塊鏈而言,普通用戶能夠運行節點並形成一種文化,即運行節點是一種普遍行為,這一點至關重要。

區塊鏈的核心技術是什麼?

簡單來說,區塊鏈是一個提供了拜占庭容錯、並保證了最終一致性的分布式資料庫;從數據結構上看,它是基於時間序列的鏈式數據塊結構;從節點拓撲上看,它所有的節點互為冗餘備份;從操作上看,它提供了基於密碼學的公私鑰管理體系來管理賬戶。

或許以上概念過於抽象,我來舉個例子,你就好理解了。

你可以想像有100台計算機分布在世界各地,這100台機器之間的網路是廣域網,並且,這100台機器的擁有者互相不信任。

那麼,我們採用什麼樣的演算法(共識機制)才能夠為它提供一個可信任的環境,並且使得:

節點之間的數據交換過程不可篡改,並且已生成的歷史記錄不可被篡改;

每個節點的數據會同步到最新數據,並且會驗證最新數據的有效性;

基於少數服從多數的原則,整體節點維護的數據可以客觀反映交換歷史。

區塊鏈就是為了解決上述問題而產生的技術方案。

二、區塊鏈的核心技術組成

無論是公鏈還是聯盟鏈,至少需要四個模塊組成:P2P網路協議、分布式一致性演算法(共識機制)、加密簽名演算法、賬戶與存儲模型。

1、P2P網路協議

P2P網路協議是所有區塊鏈的最底層模塊,負責交易數據的網路傳輸和廣播、節點發現和維護。

通常我們所用的都是比特幣P2P網路協議模塊,它遵循一定的交互原則。比如:初次連接到其他節點會被要求按照握手協議來確認狀態,在握手之後開始請求Peer節點的地址數據以及區塊數據。

這套P2P交互協議也具有自己的指令集合,指令體現在在消息頭(MessageHeader)的命令(command)域中,這些命令為上層提供了節點發現、節點獲取、區塊頭獲取、區塊獲取等功能,這些功能都是非常底層、非常基礎的功能。如果你想要深入了解,可以參考比特幣開發者指南中的PeerDiscovery的章節。

2、分布式一致性演算法

在經典分布式計算領域,我們有Raft和Paxos演算法家族代表的非拜占庭容錯演算法,以及具有拜占庭容錯特性的PBFT共識演算法。

如果從技術演化的角度來看,我們可以得出一個圖,其中,區塊鏈技術把原來的分布式演算法進行了經濟學上的拓展。

在圖中我們可以看到,計算機應用在最開始多為單點應用,高可用方便採用的是冷災備,後來發展到異地多活,這些異地多活可能採用的是負載均衡和路由技術,隨著分布式系統技術的發展,我們過渡到了Paxos和Raft為主的分布式系統。

而在區塊鏈領域,多採用PoW工作量證明演算法、PoS權益證明演算法,以及DPoS代理權益證明演算法,以上三種是業界主流的共識演算法,這些演算法與經典分布式一致性演算法不同的是,它們融入了經濟學博弈的概念,下面我分別簡單介紹這三種共識演算法。

PoW:通常是指在給定的約束下,求解一個特定難度的數學問題,誰解的速度快,誰就能獲得記賬權(出塊)權利。這個求解過程往往會轉換成計算問題,所以在比拼速度的情況下,也就變成了誰的計算方法更優,以及誰的設備性能更好。

PoS:這是一種股權證明機制,它的基本概念是你產生區塊的難度應該與你在網路里所佔的股權(所有權佔比)成比例,它實現的核心思路是:使用你所鎖定代幣的幣齡(CoinAge)以及一個小的工作量證明,去計算一個目標值,當滿足目標值時,你將可能獲取記賬權。

DPoS:簡單來理解就是將PoS共識演算法中的記賬者轉換為指定節點數組成的小圈子,而不是所有人都可以參與記賬。這個圈子可能是21個節點,也有可能是101個節點,這一點取決於設計,只有這個圈子中的節點才能獲得記賬權。這將會極大地提高系統的吞吐量,因為更少的節點也就意味著網路和節點的可控。

3、加密簽名演算法

在區塊鏈領域,應用得最多的是哈希演算法。哈希演算法具有抗碰撞性、原像不可逆、難題友好性等特徵。

其中,難題友好性正是眾多PoW幣種賴以存在的基礎,在比特幣中,SHA256演算法被用作工作量證明的計算方法,也就是我們所說的挖礦演算法。

而在萊特幣身上,我們也會看到Scrypt演算法,該演算法與SHA256不同的是,需要大內存支持。而在其他一些幣種身上,我們也能看到基於SHA3演算法的挖礦演算法。以太坊使用了Dagger-Hashimoto演算法的改良版本,並命名為Ethash,這是一個IO難解性的演算法。

當然,除了挖礦演算法,我們還會使用到RIPEMD160演算法,主要用於生成地址,眾多的比特幣衍生代碼中,絕大部分都採用了比特幣的地址設計。

除了地址,我們還會使用到最核心的,也是區塊鏈Token系統的基石:公私鑰密碼演算法。

在比特幣大類的代碼中,基本上使用的都是ECDSA。ECDSA是ECC與DSA的結合,整個簽名過程與DSA類似,所不一樣的是簽名中採取的演算法為ECC(橢圓曲線函數)。

從技術上看,我們先從生成私鑰開始,其次從私鑰生成公鑰,最後從公鑰生成地址,以上每一步都是不可逆過程,也就是說無法從地址推導出公鑰,從公鑰推導到私鑰。

4、賬戶與交易模型

從一開始的定義我們知道,僅從技術角度可以認為區塊鏈是一種分布式資料庫,那麼,多數區塊鏈到底使用了什麼類型的數

熱點內容
中國大佬投資區塊鏈 發布:2025-06-30 11:26:56 瀏覽:495
對比特幣發展前景的看法 發布:2025-06-30 10:58:54 瀏覽:493
btc日k線 發布:2025-06-30 10:46:04 瀏覽:334
虛擬幣以太坊兌換率 發布:2025-06-30 10:37:01 瀏覽:713
幣圈最長熊市多久 發布:2025-06-30 10:20:00 瀏覽:351
關於幣圈的事情 發布:2025-06-30 10:14:08 瀏覽:470
最具性價比的trx40主板 發布:2025-06-30 10:02:56 瀏覽:439
根鏈區塊鏈 發布:2025-06-30 10:02:55 瀏覽:981
shib有木有投資價值 發布:2025-06-30 09:27:48 瀏覽:289
區塊鏈概念書籍推薦 發布:2025-06-30 09:27:47 瀏覽:759