比特幣論文中泊松分佈期望公式問題
在比特幣創始論文的第11章中存在這樣一個問題,就是為什麼這個分佈的期望為lamda=z*(q/p)?
11. 計算
設想如下場景:一個攻擊者試圖比誠實節點產生鏈條更快地製造替代性區塊鏈。即便它達到了這一目的,但是整個系統也並非就此完全受制於攻擊者的獨斷意志了,比方說憑空創造價值,或者掠奪本不屬於攻擊者的貨幣。這是因為節點將不會接受無效的交易,而誠實的節點永遠不會接受一個包含了無效資訊的區塊。一個攻擊者能做的,最多是更改他自己的交易資訊,並試圖拿回他剛剛付給別人的錢。
誠實鏈條和攻擊者鏈條之間的競賽,可以用二叉樹隨機漫步(Binomial Random Walk)來描述。成功事件定義為誠實鏈條延長了一個區塊,使其領先性+1,而失敗事件則是攻擊者的鏈條被延長了一個區塊,使得差距-1。
攻擊者成功填補某一既定差距的可能性,可以近似地看做賭徒破產問題(Gambler’s Ruin problem)。假定一個賭徒擁有無限的透支信用,然後開始進行潛在次數為無窮的賭博,試圖填補上自己的虧空。那麼我們可以計算他填補上虧空的概率,也就是該攻擊者趕上誠實鏈條,如下所示
假定p>q,那麼攻擊成功的概率就因為區塊數的增長而呈現指數化下降。由於概率是攻擊者的敵人,如果他不能幸運且快速地獲得成功,那麼他獲得成功的機會隨著時間的流逝就變得愈發渺茫。那麼我們考慮一個收款人需要等待多長時間,才能足夠確信付款人已經難以更改交易了。我們假設付款人是一個支付攻擊者,希望讓收款人在一段時間內相信他已經付過款了,然後立即將支付的款項重新支付給自己。雖然收款人屆時會發現這一點,但為時已晚。
收款人生成了新的一對金鑰組合,然後只預留一個較短的時間將公鑰傳送給付款人。這將可以防止以下情況:付款人預先準備好一個區塊鏈然後持續地對此區塊進行運算,直到運氣讓他的區塊鏈超越了誠實鏈條,方才立即執行支付。當此情形,只要交易一旦發出,攻擊者就開始祕密地準備一條包含了該交易替代版本的平行鏈條。
然後收款人將等待交易出現在首個區塊中,然後在等到z個區塊連結其後。此時,他仍然不能確切知道攻擊者已經進展了多少個區塊,但是假設誠實區塊將耗費平均預期時間以產生一個區塊,那麼攻擊者的潛在進展就是一個泊松分佈,分佈的期望值為:
當此情形,為了計算攻擊者追趕上的概率,我們將攻擊者取得進展區塊數量的泊松分佈的概率密度,乘以在該數量下攻擊者依然能夠追趕上的概率。
化為如下形式,避免對無限數列求和:
下邊是我對這個問題的理解:
在一個特定時間內,某件事情會在任意時刻隨機發生(前提是,每次發生都是獨立的,且跟時間無關)。當我們把這個時間段分成非常小的時間片構成時,可以認為,每個時間片內,該事件可能發生,也可能不發生。幾乎可以不考慮發生多於一次的情況(因為時間片可被分的足夠小)。
當時間片分的越小,該時間片內發生這個事件的概率 p 就會成正比的減少。即:特定時間段被分成的時間片數量 n 與每個時間片內事件發生的概率 p 的乘積 n*p 為一個常數。這個常數表示了該事件在指定時間段發生的頻度。
這句話應該就是解決問題的關鍵。回到比特幣論文中,因為特定時間段為生成z個區塊,這個時間段被分成了z個時間片,每個時間片中攻擊者獲取下一個區塊的概率為q/p,所以根據上述所說這個常數(lamda)為時間片數量和每個時間片內時間發生的概率的乘積,即lamda = z*(q/p);
接下來就是泊松公式推導:
- 看這段時間內,指定事件恰好發生 i 次的概率是多少?代入上面推匯出來的公式得到:
n * (n-1)... (n-i+1) / i! * p^i * (1-p) ^ (n-i) => np(np-p)...(np-ip+p) / i! * ((1-p) ^ (-1/p))^(-np) / (1-p) ^i
當 n 趨向無窮大時,p 趨向 0 。而此時 (1-p)^(-1/p) 趨向 e 。注:詳細推導過程如下
上面這個公式可以劃簡為 lamda ^ i / i! * e ^ - lamda (lamda=n*p)
這個公式推導過程不復雜,耐心點一看就明白。而這個關於 i 的分佈就是著名的泊松分佈了。
回到論文中既為
相關推薦
比特幣論文中泊松分佈期望公式問題
在比特幣創始論文的第11章中存在這樣一個問題,就是為什麼這個分佈的期望為lamda=z*(q/p)?11. 計算設想如下場景:一個攻擊者試圖比誠實節點產生鏈條更快地製造替代性區塊鏈。即便它達到了這一目的,但是整個系統也並非就此完全受制於攻擊者的獨斷意志了,比方說憑空創造價值,
中本聰比特幣論文
翻譯一遍,加深理解,也可以移步到 我的個人部落格 瀏覽翻譯 中本聰(Satoshi Nakamoto),又譯中本哲史,於2008年釋出了比特幣的創世論文《Bitcoin: A Peer-to-Peer Electronic Cash System》。在論文中描述了一種基於加
精讀比特幣論文
公私鑰 計算 相同 特殊 傳統 ash 自己的 led root 上一次讀比特幣論文還是幾年前,在區塊鏈大火的今天,決定仔細重讀一下,並寫下讀後感。 本文試圖以一種從宏觀到微觀,先靜態後動態的敘述方式,描述比特幣系統,文中絕大多數內容來自於中本聰的比特幣論文,加上了一些自己
除了創造比特幣,中本聰還教了我們如何保護賬號安全
作者 | Jack Dossman 譯者 | 李曉泉 編輯 | 波波 "In Satoshi We Trust" 區塊鏈時代最大的祕密,就是比特幣之父中本聰。坐擁100萬比特幣(峰值時接近200億美元)的中本聰,自從2011年離場後,竟再也沒有動過
比特幣交易中礦工檢查交易單的細節
一筆交易包括輸入部分和輸出部分,假設A向B發起一筆轉賬,那麼 in:A(pk,sig) out:B(addr) 其中,someone.addr = HASH160(some.pk) 接下來,B要向C轉賬,那麼 in:B(pk,sig) out:C(addr) 礦
比特幣價值飆升,黑客如何從盜取近8千萬美元的比特幣中獲利?
比特幣 區塊鏈 分布式 Hardy(晗狄) 架構師技術聯盟目前,有兩個商機可以讓人一夜暴富,一是中國房地產,另一個就是比特幣。由於比特幣的價值繼續飆升,黑客從比特幣挖掘服務中盜取了價值近8000萬美元的比特幣,短短數小時就獲取暴利,看來唯一能跟中國房地產匹敵的,也就只有比特幣了。就在12月7號,網
PoW挖礦算法原理及其在比特幣、以太坊中的實現
print 惡意攻擊 actions 規則 rom header() const state divisor PoW,全稱Proof of Work,即工作量證明,又稱挖礦。大部分公有鏈或虛擬貨幣,如比特幣、以太坊,均基於PoW算法,來實現其共識機制。即根據挖礦貢獻的有效工
你不知道的幣圈江湖,ETH(以太坊)VS比特幣,V神看不上中本聰
語言 也有 第一個 基礎 sha 重復 擴展 創新 復用 我們知道,ETH(以太坊)和比特幣是目前最受幣圈用戶青睞的兩種數字貨幣。但你或許不知道,他們背後的創始人,V神和中本聰並沒有多少交集,甚至從某些方面來說,V神是看不上中本聰的,雖然他是比特幣的創造者。 一、密碼朋克,
經常在比特幣中看到的merkle樹是什麽?
span tree AS com 使用 QQ 特點 和數 是什麽 區塊基礎-merkle樹 Merkle tree中文叫做梅克爾樹,這當然不是一棵真正的植物樹,merkle tree是計算機數據結構中的一種樹,是由計算機科學家 Ralph Merkle 提出的,並以他本
比特幣獨角獸圈在5月份新機構客戶中錄得30%的
nag 靈活 com AR CI 增加 們的 吸引 size 就像你古怪的叔叔發誓看到大腳野人,尼斯湖怪物,或者 - 對於我們中間的西弗吉尼亞讀者 - Mothman,許多行業專業人士已經聲稱已有數月的證據顯示機構投資者正準備進入加密貨幣市場一個主要方法。 這個事件,預言的
ACM Queue 頂級論文:釐清關於區塊鏈、比特幣的所有誤區
當前,對於區塊鏈,大部分人都存在些許在基本認知維度的誤區,譬如直接將區塊鏈等同於比特幣、所有 ICO 都是騙局等,即使是對技術人而言,都還沒搞清楚區塊鏈的程式碼和演算法,更遑論涉及到實際場景應用的實踐。日前,國際計算機學會期刊 ACM Queue 發表論文,追本溯源,對比特幣及其底層技術
排隊論中的常見分佈:泊松分佈、指數分佈與愛爾朗分佈
1.概率函式 ①泊松分佈: λ表示單位時間(面積或體積等)該事件平均發生次數(到達率) 則p(x=k)表示單位時間(面積或體積等)該事件發生k次的概率。 數字特徵: 易知,根據定義期望為λ,也能求出方差也為λ。 則p(N(t)=k)表示t時
如何在Java中生成比特幣錢包地址
讓我們通過學習比特幣(Bitcoin)如何實施該技術的各個方面來工作,好嗎?該技術包括以下幾個方面: 交易transaction是比特幣從一個地址轉移到另一個地址。 幾個交易被分組成一個區塊block。一個區塊被處理,因此它可以被提交到比特幣網路中。這個過程被稱為挖礦
比特幣中的Base58 編碼
字母 結果 描述 eve nsh ner .cpp 不同的應用 fin base58和base64一樣是一種二進制轉可視字符串的算法,主要用來轉換大整數值。區別是,轉換出來的字符串,去除了幾個看起來會產生歧義的字符,如 0 (零), O (大寫字母O), I (大寫的字母
02.區塊鏈共識演算法(2)PoW挖礦演算法原理及其在比特幣、以太坊中的實現
PoW挖礦演算法原理及其在比特幣、以太坊中的實現 PoW,全稱Proof of Work,即工作量證明,又稱挖礦。 大部分公有鏈或虛擬貨幣,如比特幣、以太坊,均基於PoW演算法,來實現其共識機制。 即根據挖礦貢獻的有效工作,來決定貨幣的分配。 比特幣區塊 比特幣
中本聰是誰?kinmall:他創造的比特幣價值在哪裡
中本聰(英語:Satoshi Nakamoto),比特幣創始人,真實身份未知。中本聰於2008年發表了一篇名為《比特幣:一種點對點式的電子現金系統》(Bitcoin: A Peer-to-Peer Electronic Cash System)的論文,描述了一種被他稱為“比特幣”的電子貨幣及其演算法
區塊鏈(1)—— 比特幣中的區塊、賬戶驗證和記賬
上一篇說到比特幣是一種去中心化的電子現金系統。去中心化說起來似乎挺簡單,但是不用細想就會發現很多問題:賬本儲存在每個節點中,如何保證每個節點中的資料一致,或者說如何防止某些節點的賬本被惡意篡改而影響到整個網路的交易? 如果說交易的驗證由各個節點完成,那麼如何在不把密碼洩露給其
區塊鏈教程(一):比特幣中的術語
cat 在一起 生成 過程 算法 一次 表結構 art 白皮書 如果你已經看過了上篇文章提到過的比特幣白皮書和《精通比特幣》,本篇文章基本可以忽略!本篇文章稍微介紹一下比特幣中出現頻率比較高的術語; 地址、私鑰、公鑰比特幣地址由一串字符和數字組成,以阿拉伯數字“1”開頭。
什麼是Satoshi?和比特幣中本聰有什麼關係?
Satoshi Nakamoto(中本聰)是發起比特幣和原始比特幣客戶端建立者。不過,我經常聽到“Satoshi ”這個詞,好像它是一個貨幣單位。 什麼是Satoshi呢?Satoshi是0.00000001 BTC,目前是最小的比特幣交易單位。 ------------ 場外交易中Satoshi是指:
Java中利用Math.random()產生服從泊松分佈的隨機數
眾所周知,Java的Math.random()產生的是服從均勻分佈的隨機數,但是其他分佈的應用也相當廣泛,例如泊松分佈和高斯分佈(正態分佈),而這些分佈Java沒有很好的提供(高斯分佈可以利用Rand