比特幣如何保證隨機源
⑴ 比特幣(BTC)的交易是如何保證的
比特幣交易是由工作量證明機制保證的
⑵ 比特幣如何防止篡改
比特幣網路主要會通過以下兩種技術保證用戶簽發的交易和歷史上發生的交易不會被攻擊者篡改:
非對稱加密可以保證攻擊者無法偽造賬戶所有者的簽名;
共識演算法可以保證網路中的歷史交易不會被攻擊者替換;
- 非對稱加密演算法3是目前廣泛應用的加密技術,TLS 證書和電子簽名等場景都使用了非對稱的加密演算法保證安全。非對稱加密演算法同時包含一個公鑰(Public Key)和一個私鑰(Secret Key),使用私鑰加密的數據只能用公鑰解密,而使用公鑰解密的數據也只能用私鑰解密。
- 1使用如下所示的代碼可以計算在無限長的時間中,攻擊者持有 51% 算力時,改寫歷史 0 ~ 9 個區塊的概率9:
- #include
- #include
- double attackerSuccessProbability(double q, int z) {
- double p = 1.0 - q;
- double lambda = z * (q / p);
- double sum = 1.0;
- int i, k;
- for (k = 0; k <= z; k++) {
- double poisson = exp(-lambda);
- for (i = 1; i <= k; i++)
- poisson *= lambda / i;
- sum -= poisson * (1 - pow(q / p, z - k));
- }
- return sum;
- }
- int main() {
- for (int i = 0; i < 10; i++) {
- printf("z=%d, p=%f\n", i, attackerSuccessProbability(0.51, i));
- }
- return 0;
- }
- 通過上述的計算我們會發現,在無限長的時間中,佔有全網算力的節點能夠發起 51% 攻擊修改歷史的概率是 100%;但是在有限長的時間中,因為比特幣中的算力是相對動態的,比特幣網路的節點也在避免出現單節點佔有 51% 以上算力的情況,所以想要篡改比特幣的歷史還是比較困難的,不過在一些小眾的、算力沒有保證的一些區塊鏈網路中,51% 攻擊還是極其常見的10。
- 防範 51% 攻擊方法也很簡單,在多數的區塊鏈網路中,剛剛加入區塊鏈網路中的交易都是未確認的,只要這些區塊後面追加了數量足夠的區塊,區塊中的交易才會被確認。比特幣中的交易確認數就是 6 個,而比特幣平均 10 分鍾生成一個塊,所以一次交易的確認時間大概為 60 分鍾,這也是為了保證安全性不得不做出的犧牲。不過,這種增加確認數的做法也不能保證 100% 的安全,我們也只能在不影響用戶體驗的情況下,盡可能增加攻擊者的成本。
- 研究比特幣這樣的區塊鏈技術還是非常有趣的,作為一個分布式的資料庫,它也會遇到分布式系統經常會遇到的問題,例如節點不可靠等問題;同時作為一個金融系統和賬本,它也會面對更加復雜的交易確認和驗證場景。比特幣網路的設計非常有趣,它是技術和金融兩個交叉領域結合後的產物,非常值得我們花時間研究背後的原理。
- 比特幣並不能 100% 防止交易和數據的篡改,文中提到的兩種技術都只能從一定概率上保證安全,而降低攻擊者成功的可能性也是安全領域需要面對的永恆問題。我們可以換一個更嚴謹的方式闡述今天的問題 — 比特幣使用了哪些技術來增加攻擊者的成本、降低交易被篡改的概率:
比特幣使用了非對稱加密演算法,保證攻擊者在有限時間內無法偽造賬戶所有者的簽名;
比特幣使用了工作量證明的共識演算法並引入了記賬的激勵,保證網路中的歷史交易不會被攻擊者快速替換;
- 通過上述的兩種方式,比特幣才能保證歷史的交易不會被篡改和所有賬戶中資金的安全。
非對稱加密
圖 4 - 51% 攻擊
總結
⑶ 比特幣的增加是不是隨機的
與傳統貨幣不同,比特幣運行機制不依賴中央銀行、政府、企業的支持或者信用擔保,而是依賴對等網路中種子文件達成的網路協議,去中心化、自我完善的貨幣體制,理論上確保了任何人、機構、或政府都不可能操控比特幣的貨幣總量,或者製造通貨膨脹。它的貨幣總量按照設計預定的速率逐步增加,增加速度逐步放緩,並最終在2140年達到2100萬個的極限。比特幣與其他虛擬貨幣最大的不同,是其總數量非常有限,具有極強的稀缺性。該貨幣系統曾在4年內只有不超過1050萬個,之後的總數量將被永久限制在2100萬個。比特幣的製造就是個人靠電腦進行挖礦式的發掘。
因為數量有限,因此不會出現隨金融貨幣的波動而波動。但是折算到貨物中,以比特幣交易貨物的話,因為貨物受市場價格的波動影響,那麼所需要的比特幣也會出現數量的變化。說白了就是,自身不受金融影響,但是體現在貨物上是與金融貨幣的紙幣價值是波動的。另外這個就像是稀有物品一樣,因其稀缺性和炒作,也會提升其兌換價值。隨著越來越多的人去開發,那麼市場價格終將會在一個時期到達頂峰後跌落。
⑷ 比特幣產生原理
什麼是貨幣呢?貨幣就是商品(包括服務)交換的媒介。現在我們通行的貨幣是由有信譽的銀行發行的,基本上是由其信譽來擔保的。只要用的人都認可,那麼我 們就可以用它來交易。貨幣有一定的保值特性,我把我的勞動/服務/所有的商品換成貨幣後,銀行擔保我在日後的某一天,我還可以用它交換會差不多等值的東 西。這個保證的前提是,銀行不會濫發新的貨幣以及大家都信任這一點。
以前,我們用貴金屬做貨幣。因為貴金屬產量不高,貨幣新增加的速度有限,而經濟體在不斷增大,市場需要更多的貨幣來讓商品盡量的流通。有需求就有價 值,從這個意義上來說,貴金屬本身製造別的東西具備的價值是次要的,經濟體需要貨幣來流通商品這個需求才是主要的。而貴金屬產量有限,且曾經流通著的貴金 屬貨幣由於各種原因會退出市場,那麼即使是新造的貴金屬貨幣也有同樣甚至更高的價值。
Bitcoin 為什麼保值,BTC (Bitcoin 的貨幣簡稱)存在於一個龐大的 p2p 網路中。使用 Bitcoin 的群體公認了一種演算法,這種演算法在現今的條件下,每小時只會新產生大約 6 組新的 BTC ,目前一組是 50 個。也就是說,這個世界上,每個小時大約只會產生 300 個 BTC 。這個產量還會由網路自動調整難度來限制產量。你沒辦法通過修改所有人的 Client 的演算法及參數(client 是開源的)來加快貨幣產量。偽造的貨幣會被網路丟棄(除非你可以控制大部分網路節點)。
BTC 本身有什麼價值?
BTC 的價值就是交易渠道本身。一組新製造出來的 BTC 提供了把舊的 BTC 從一個帳戶轉移到另一個帳戶的數學保證。這個安全保證背後的代價是大量的計算力。生產這么一個安全通道是需要消耗大量能源的,所以整個 BTC 用戶群體,獎勵那個造幣者(目前是 50 BTC),,2012年12月份後會變成25BTC,並且每4年減半一次。
簡單說,我的理解就是,現在世界上所有的 BTC 背後都是用運行計算機的能量產生出來的,它們的總價值,(到現在一共有大約 12w 組 BTC 被生產出來,每組 50 個,市場價格大約 7.3 美金一個),應該是少於消耗掉的能源的總市場價值的。不過我想,用於生產 BTC 的能源大都原本就是不用也被浪費掉的資源。
4
⑸ 比特幣演算法原理
比特幣演算法主要有兩種,分別是橢圓曲線數字簽名演算法和SHA256哈希演算法。
橢圓曲線數字簽名演算法主要運用在比特幣公鑰和私鑰的生成過程中,該演算法是構成比特幣系統的基石。SHA-256哈希演算法主要是運用在比特幣的工作量證明機制中。
比特幣產生的原理是經過復雜的運演算法產生的特解,挖礦就是尋找特解的過程。不過比特幣的總數量只有2100萬個,而且隨著比特幣不斷被挖掘,越往後產生比特幣的難度會增加,可能獲得比特幣的成本要比比特幣本身的價格高。
比特幣的區塊由區塊頭及該區塊所包含的交易列表組成,區塊頭的大小為80位元組,由4位元組的版本號、32位元組的上一個區塊的散列值、32位元組的 Merkle Root Hash、4位元組的時間戳(當前時間)、4位元組的當前難度值、4位元組的隨機數組成。擁有80位元組固定長度的區塊頭,就是用於比特幣工作量證明的輸入字元串。不停的變更區塊頭中的隨機數即 nonce 的數值,並對每次變更後的的區塊頭做雙重 SHA256運算,將結果值與當前網路的目標值做對比,如果小於目標值,則解題成功,工作量證明完成。
比特幣的本質其實是一堆復雜演算法所生成的一組方程組的特解(該解具有唯一性)。比特幣是世界上第一種分布式的虛擬貨幣,其沒有特定的發行中心,比特幣的網路由所有用戶構成,因為沒有中心的存在能夠保證了數據的安全性。
⑹ 比特幣挖礦是隨機獲取到的嗎
可以說是隨機的,但是如果只是說隨機就能獲取,這樣的說法也不準確。首先來說說如何通過挖礦來獲得比特幣?
根據比特幣基本演算法,比特幣每10分鍾產生1個區塊,每個區塊里有N個比特幣作為報酬,這個區塊包含了最近10分鍾所有的比特幣交易信息。
製造比特幣的過程叫做「挖礦」,在這個過程中,計算機吧最近收到的賬單打包在剛製造的區塊里,這個打包的過程即製作的過程,只有極其稀少的幾率被製造成功。一旦製造成功,你就把這個區塊廣播出去,這就意味著,你獲得了這個區塊的N個比特幣作為報酬。
那麼N是多少呢?根據比特幣演算法,在比特幣發布之日起的頭4年裡,N = 基礎報酬(50個比特幣) + 交易報酬(過去10分鍾內整個比特幣網路耗費的交易手續費,前面已經說過,每筆比特幣交易會消耗0.001比特幣作為報酬給挖礦的人),每隔4年,N的基礎獎勵將減少一半,也就是說,頭4年為50,第5-8年為25,第9-12年為12.5,以此類推。而隨著比特幣越來越普及,交易越來越頻繁,N的交易獎勵會逐漸增加。
從2013年5月起,比特幣正式進入了第5年,因此到2017年5月之前,每個區塊的報酬N為25+交易報酬。
註:實際上,比特幣挖礦的用戶數量非常龐大,而每10分鍾產出的比特幣又十分有限,因此挖礦的難度已經是非常非常大了,如果你擁有性能強勁的顯卡,那麼會有一定的收益,如果你的顯卡不好,那麼你可能需要耗費N個小時才可以獲得一點點比特幣。
⑺ 挖比特幣的原理
比特幣每個區塊的數據結構,每個區塊由區塊頭和區塊體兩部分組成。區塊頭中包含父區塊的哈希,版本號,當前時間戳,難度值,隨機數和上面提到的默克爾樹根。區塊體中包含了礦工搜集的若干交易信息,假設有8個交易被收錄在區塊中,所有的交易生成一顆默克爾樹,默克爾樹是一種數據結構,它將葉子節點兩兩哈希,生成上一層節點,上層節點再哈希,生成上一層,直到最後生成一個樹根。
⑻ 比特幣區塊鏈的隨機數要滿足什麼條件
比特幣達成此協議(中本聰共識)的方式是通過使用 工作證明(PoW)作為隨機數源來確定每一輪中哪一個區塊將會被添加到區塊鏈中,從而減少消息傳遞的費用。因為 PoW 設置的題目在演算法上非常難解決,只有最先算出來的人才能將他們的區塊添加到分類帳中。由於多個人同時解開難題的概率非常低,因此 PoW 可以作為一種限制網路消息傳遞數量的機制