比特幣白皮書(翻譯)

前言

前言部分—你正在看的這個部分,不是原文的內(nèi)容。目錄中正文版本的部分是原文Bitcoin: A Peer-to-Peer Electronic Cash System的內(nèi)容。出于學(xué)習(xí)的目的翻譯了白皮書,畢竟水平一般能力有限,若有錯誤懇請指正。

正文

比特幣:對等電子現(xiàn)金系統(tǒng)
Satoshi Nakamoto
satoshin@gmx.com
www.bitcoin.org

摘要

完全地對等網(wǎng)絡(luò)的電子貨幣,將允許在線支付直接從一方發(fā)送到另一方,不需要經(jīng)過金融機構(gòu)。數(shù)字簽名提了供解決方案的一部分,但是主要的優(yōu)勢丟失了,如果仍然需要信任的第三方來預(yù)防雙重支付。我們提出一個使用對等網(wǎng)絡(luò)的方案來解決雙重支付問題。將交易的網(wǎng)絡(luò)時間戳,散列進(jìn)基于散列的工作證明的擴(kuò)展中的鏈,形成沒有重做工作證明地?zé)o法更改的記錄。 最長的鏈不僅可以證明所見到的證明的事件的順序的證明,而且可以證明它來自最大的CPU算力池。只要大多數(shù)CPU算力由不協(xié)作攻擊網(wǎng)絡(luò)的節(jié)點控制,它們將生成最長的鏈并超過攻擊者。 網(wǎng)絡(luò)本身需要最小的結(jié)構(gòu)。 消息以盡力為基礎(chǔ)廣播,節(jié)點可以隨意離開并重新加入網(wǎng)絡(luò),接受最長的工作證明的鏈,作為離開后發(fā)生的事情的證明。

1.介紹

在互聯(lián)網(wǎng)上的金融必須依賴金融機構(gòu)的服務(wù)作為可信任的第三方來處理電子支付。當(dāng)系統(tǒng)工作足夠良好對于大多數(shù)交易, 它仍然受困于固以信任為基礎(chǔ)的模型的弱點。完全不可逆的交易是不真實的可能,當(dāng)金融機構(gòu)不能避免調(diào)解糾紛。調(diào)解的花費怎加了交易的花費,限制了最小使用交易大小并且切斷了小散交易的坑,并且有一個更廣泛代價在丟失了能力去創(chuàng)建不可逆支付為不可逆服務(wù)。對于有可能的逆轉(zhuǎn),需求來自相信差異。商人必須機警的對他們的客戶,向他們提供比他們需要的更多信息。一定比例的欺詐被認(rèn)為是不可避免的。他們代價和支付無把握能被避免在一個人通過使用物理的貨幣,但沒有機制存在付款轉(zhuǎn)向一個通信信道的無可信。

為什么需要基于密碼學(xué)證明而不是信任電子支付系統(tǒng)?允許任何兩個有意愿的當(dāng)事人去直接彼此交易不需要被信任的第三方機構(gòu)。反向計算不可行的交易將保護(hù)賣方免受欺詐。常規(guī)托管機制能夠輕易被實現(xiàn)來保護(hù)買方。在這個論文中,我們提供了一個解決方法針對兩次支付問題通過使用點對點分發(fā)的時間戳服務(wù)來生成計算證明按時間交易前后排序的交易訂單。系統(tǒng)是加密的一旦誠實的節(jié)點全體的控制更多的CPU 算力而不是任何共同協(xié)作組織只要誠實節(jié)點比任何協(xié)作節(jié)點都能控制更多的CPU功率,系統(tǒng)就很安全。

2.交易

數(shù)字簽名,每位擁有者傳輸硬幣給下一個通過哈希先前交易生成的數(shù)字簽名 并且下一個擁有者添加公鑰進(jìn)硬幣的尾部。一個收款人核實簽名用來確認(rèn)區(qū)塊的擁有權(quán)。


這個過程的問題是收款人不能確定這筆款項的擁有者沒有雙重支付硬幣。一個常見的解決方案是引進(jìn)一個被信任的中心權(quán)威,或造幣廠,這樣用來檢查每筆交易的雙重支付。每次支付之后,硬幣必須被返回到鑄幣廠來發(fā)行新幣,只有硬幣發(fā)行自鑄幣廠被信任不能被雙重支付。這個解決方案存在的問題時整個的金錢系統(tǒng)依賴公司的運營鑄幣廠,有每一個交易必須經(jīng)過她們,就像銀行。

我們需要一種方法讓收款人知道先前的擁有者沒有簽名任何早先的交易。為了我們目的,最早的交易被計數(shù),因此我們不需要關(guān)心后面嘗試雙重支付。這唯一的方式去確認(rèn)缺席的交易是知道所有的交易。鑄造廠為基礎(chǔ)的模型里,鑄幣廠了解所有的交易并且判斷那一個第一個。為了達(dá)到這些沒有信任的部分,交易必須被公開宣布,并且我們需要一個系統(tǒng)來給參與者去同意他們收到的是獨一的訂單歷史,收款人需要證明每次交易的時間里,大量的節(jié)點同意它是第一個收到的。

3.時間戳服務(wù)

我們提出的方案開始于一個時間戳服務(wù),一個時間戳服務(wù)運作起來通過哈一個區(qū)塊內(nèi)希多個可以被時間戳標(biāo)記的項目并且廣泛的發(fā)布哈希,就像在報紙或使用網(wǎng)絡(luò)提交,時間戳教授數(shù)據(jù)必須及時的存在,明顯的,為了進(jìn)入哈希,每個時間戳包括先前時間戳的初始化哈希,形成鏈,對于每個附加的時間戳加強了在它之前的。

4. 工作量證明

為了實現(xiàn)基于點對點服務(wù)的分布式時間戳服務(wù)器,我們將需要使用類似于Adam Back的Hashcash的工作證明,而不是時報紙或使用網(wǎng)站。工作證明涉及掃描散列時的值,例如使用SHA-256,散列以零位開始。所需的平均工作量是所需零位數(shù)的指數(shù),可以通過執(zhí)行單個散列來驗證。

對于我們的時間戳網(wǎng)絡(luò),我們實現(xiàn)工作量證明通過在區(qū)塊中增長直到區(qū)塊哈西出需要的0比特數(shù)值被找到。一旦CPU的努力已經(jīng)擴(kuò)展到讓它滿足工作量證明,已形成的區(qū)塊不能被改變沒有重做證明的情況下。當(dāng)后來在后面鏈上他,用來改變區(qū)塊的工作量就包括重做它后面鏈的工作證明。

我們通過增加增加塊中的隨機數(shù)來實現(xiàn)工作證明,直到找到給出塊的散列為必須的零位的值。一旦CPU的努力已經(jīng)耗盡,使其滿足工作證明,該塊不能改變而不重做工作。因為后面的區(qū)塊鏈接著他,用來改變區(qū)塊的工作將包括重做其后面所有的區(qū)塊。
隨稍后的塊連接后,更改塊的工作將包括重新生成塊后的所有快。工作量證明也解決了在多數(shù)決策中的代表性問題。如果大多數(shù)是基于一IP地址一票,那么可能會被任何能夠分配許多IP的人顛覆。工作證明本質(zhì)上是一個CPU一票。大多數(shù)的決定由最長的鏈為代表的,它具有投入最大的工作證明。如果多數(shù)的CPU算力由誠實的節(jié)點控制,誠實的鏈將增長最快,超過任何競爭鏈。為了修改過去的一個塊,攻擊者必須重做塊的工作證明和它之后所有的的塊,然后趕上并超越誠實節(jié)點的工作。稍后我們將會顯示,隨著后續(xù)的塊被添加,慢速攻擊者追趕的概率呈指數(shù)減小。

以補償越來越多的硬件速度和隨時間推移運行節(jié)點的興趣,工作難易程度取決于平均每小時塊數(shù)的移動平均值,如果生成速度太快,難度就會增加。

5.網(wǎng)絡(luò)

運行網(wǎng)絡(luò)的步驟如下:

  • 新的交易廣播到所有節(jié)點
  • 每個節(jié)點將新交易采集到塊中。
  • 每個節(jié)點致力于為自己塊找到一個困難的工作證明。
  • 當(dāng)節(jié)點找到工作證明,會將該塊向所有節(jié)點廣播。
  • 節(jié)點只有當(dāng)其中的所有交易都有效并且尚未花費時才接受該塊。
  • 節(jié)點通過在鏈中創(chuàng)建下一個塊,來表示它們對塊的接受,使用已接受塊的哈希值作為以前的哈希值。

節(jié)點總是認(rèn)為最長的鏈?zhǔn)钦_的,并將繼續(xù)努力擴(kuò)展它。如果兩個節(jié)點同時廣播下一個塊的不同版本,則某些節(jié)點可以首先接收一個或另一個節(jié)點。在這種情況下,他們工作在他們收到的第一個,但保存另一個分支,以防萬一它變得更長。當(dāng)找到下一個工作證明,一個分支變得更長時,關(guān)系將被打破;在另一個分支上工作的節(jié)點將切換到較長的節(jié)點。

新的交易廣播不一定需要到達(dá)所有節(jié)點。只要他們到達(dá)很多節(jié)點,他們就會很快進(jìn)入一個塊。廣播也容忍丟棄的消息。如果一個節(jié)點沒有接收到一個塊,它將在接收到下一個塊并請求它接收到一個塊時請求它。

6.動機

按照慣例,一個塊中的第一個交易是一個特殊的交易,它啟動塊的創(chuàng)建者所擁有的新硬幣。這增加了節(jié)點支持網(wǎng)絡(luò)的動機,并提供了一種初始分配硬幣流通的方式,因為沒有中央頒發(fā)這些權(quán)限。新增硬幣數(shù)量不斷增加,類似于黃金礦工投入資金,以增加黃金流通。在我們這種情況下,是花費時間和電力的CPU。

激勵也可是用交易費資助。如果交易的輸出值少于輸入值,差別是交易費被加入到激勵塊擁有的交易。一旦預(yù)定數(shù)量的硬幣進(jìn)入循環(huán)狀態(tài),激勵措施就可以完全轉(zhuǎn)換成交易費用,并且完全無通貨膨脹。

激勵可能有助于鼓勵節(jié)點保持誠實。如果一個貪婪的攻擊者能夠組裝比所有誠實的節(jié)點更多的CPU電力,他將不得不選擇使用它來欺騙人們竊取他的付款,或者用它來產(chǎn)生新的硬幣。他應(yīng)該通過規(guī)則來發(fā)揮更有利可圖,這樣的規(guī)則比其他人合并更多的新硬幣,而不是破壞自己財富的制度和有效性。

7.回收磁盤空間

一旦硬幣中的最新交易被埋在足夠的塊之下,可以丟棄它之前的已用事務(wù)以節(jié)省磁盤空間。
為了便于此而不破壞塊的哈希,交易在Merkle Tree 中進(jìn)行哈希,只有根包含在塊的哈希中。然后可以通過存儲樹的分支來壓縮現(xiàn)有的塊。內(nèi)部的哈希不需要被保存

沒有交易的塊的頭大約有80字節(jié)。如果我們假設(shè)塊每10分鐘生成一次,每個80字節(jié)624*365=4.2MB。截止2008年,通常使用2GBRAM的計算機系統(tǒng),摩爾定律預(yù)測目前每年增長1.2GB,即使塊頭必須保存在內(nèi)存中,存儲也不應(yīng)該是一個問題。

8.簡便的付款驗證

可以在不運行完整網(wǎng)絡(luò)節(jié)點的情況下驗證付款。用戶只需要保留最長的工作證明鏈接塊的副本,他可以通過查詢網(wǎng)絡(luò)節(jié)點來獲得,直到他確信他擁有最長的鏈接,并獲得將事務(wù)鏈接到塊的Merkle分支 它有時間戳。他不能自己檢查交易,而是通過鏈接到鏈中的一個地方,他可以看到一個網(wǎng)絡(luò)節(jié)點已經(jīng)接受了,并且在進(jìn)一步確認(rèn)網(wǎng)絡(luò)已經(jīng)接受之后繼續(xù)添加。

如上所說,只要誠實的節(jié)點控制著網(wǎng)絡(luò),確認(rèn)就是可靠的,但是如果網(wǎng)絡(luò)被攻擊者超載,則更容易受到攻擊。當(dāng)網(wǎng)絡(luò)中的節(jié)點可以自己確認(rèn)交易, 簡便的方法可以是愚蠢 持續(xù)到攻擊者可以持續(xù)超載網(wǎng)絡(luò)。防止這種情況的一個策略是在網(wǎng)絡(luò)節(jié)點檢測到無效塊時接受警報,提示用戶的軟件下載完整的塊并提醒事務(wù)以確認(rèn)不一致。
收到頻繁付款的企業(yè)可能仍然希望運行自己的節(jié)點以獲得更多的獨立安全性和更快的驗證。

9.組合和分割價值

雖然可以單獨處理硬幣,但是在轉(zhuǎn)賬中每一分錢都是無法實現(xiàn)的。允許數(shù)值被分割和合并,交易包括多個輸入和輸出。
通常情況下,來自較大的先前交易的單一輸入或多個較小的數(shù)量輸入的組合,最多兩個輸出:一個用于支付,一個返回發(fā)送者(如果有的話。

應(yīng)該注意的是,扇出,交易取決于幾個交易,而這些交易依賴于更多,這不是一個問題。 從來沒有必要提取交易歷史的完整獨立副本。

10.隱私

傳統(tǒng)銀行模式通過限制對相關(guān)各方和受信任的第三方的信息訪問來實現(xiàn)隱私級別。宣布所有交易的必要性公開排除了這種方法,但是仍然可以通過在另一個地方破壞信息流來保持隱私:通過保持匿名的公鑰。公眾可以看到有人正在向別人發(fā)送金額,但沒有將交易鏈接到任何人的信息。這與股票交易所發(fā)布的信息水平類似,個別行業(yè)的時間和規(guī)模,“磁帶”都被公開,但沒有告知當(dāng)事人。


附加的防火墻, 新的鍵值對應(yīng)該被用來保持遠(yuǎn)離鏈接到一個常見的擁有者。一些鏈仍然不可避免有多輸入交易,這必然表明他們的投入由同一所有者擁有。風(fēng)險在于,如果密鑰的所有者被顯示,鏈接可能會顯示屬于同一所有者的其他交易。

11.算法

我想到一個攻擊者試圖生成代替鏈的速度快于誠實節(jié)點。即使這個達(dá)成了,他不會對任意更改開放,就像憑空創(chuàng)造價值或創(chuàng)造不屬于攻擊者的錢。節(jié)點作為付款接受一個非法的交易,并且誠實節(jié)點將不再接受包含他們的塊。攻擊者只能嘗試概念交易來拿回他剛花費的錢。

我們考慮一個攻擊者試圖生成替代鏈的場景,比一般的鏈條更快。
即使這樣做,它也不會把系統(tǒng)開放到任意的變化中,比如憑空賺取價值,或是拿走從不屬于攻擊者的錢。節(jié)點不會接受無效的交易作為付款,誠實的節(jié)點永遠(yuǎn)不會接受包含它們的塊。攻擊者只能嘗試改變自己的交易,以收回他最近花費的錢。

誠實鏈和攻擊者鏈之間的比賽可以表征為二項式隨機游走。成功事件是誠實鏈延伸一個塊,增加+1的領(lǐng)先,失敗事件是攻擊者的鏈條延伸一個塊,將差距縮小-1。攻擊者從給定的赤字追趕的概率類似于賭徒的廢墟問題。

假設(shè)有一個無限信貸的賭徒開始赤字,并且可能會嘗試無限次嘗試達(dá)到盈虧平衡。 我們可以計算出他所追求的盈虧平衡的概率,或者攻擊者追求誠實鏈的概率如下

p =誠實節(jié)點找到下一個塊的概率
q =攻擊者發(fā)現(xiàn)下一個塊的概率
qz =攻擊者將從z塊后面趕上的概率

給出我們的假設(shè)p>q,隨攻擊者必須追趕上塊增長數(shù)量,概率呈指數(shù)下降。對于他來說,如果他早日不幸運,那么他的機會就會越來越小,因為他進(jìn)一步落后。

我們現(xiàn)在考慮新交易的接受需要等待多長時間,才能確定發(fā)件人無法改變交易。我們認(rèn)為發(fā)件人是一個攻擊者,希望讓收件人相信他付了他一段時間,然后在一段時間過后,把它交還給自己。接收方會在發(fā)生這種情況時收到通知,但是發(fā)件人希望這樣做太晚了。

接收器生成一個新的秘鑰對,并在簽名錢不久向發(fā)送者發(fā)送公鑰。這樣可以防止發(fā)件人提前準(zhǔn)備一連串的塊,直到他足夠幸運地前進(jìn),然后在那時執(zhí)行交易。 一旦交易發(fā)送,不誠實的發(fā)件人開始在一個并行鏈上秘密工作,其中包含交易的備用版本。

接受者一直等到知道交易被添加進(jìn)塊中并且z 塊已經(jīng)被鏈在后面。他不知道攻擊者的確切進(jìn)度,但假設(shè)誠實的塊占用了每個塊的平均預(yù)期時間,
攻擊者的潛在進(jìn)展將是具有預(yù)期值的泊松分布:

為了獲得攻擊者現(xiàn)在仍然可以趕上的可能性,我們可以通過從這一點趕上的概率將泊松密度乘以他所能做的進(jìn)步量:


重新排列以避免將分布的無限尾部相加...


轉(zhuǎn)換為C代碼...

#include <math.h>
 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;}

運行一些結(jié)果,我們可以看到概率隨z指數(shù)下降。

   q=0.1
   z=0    P=1.0000000
   z=1    P=0.2045873
   z=2    P=0.0509779
   z=3    P=0.0131722
   z=4    P=0.0034552
   z=5    P=0.0009137
   z=6    P=0.0002428
   z=7    P=0.0000647
   z=8    P=0.0000173
   z=9    P=0.0000046
   z=10   P=0.0000012
   q=0.3
   z=0    P=1.0000000
   z=5    P=0.1773523
   z=10   P=0.0416605
   z=15   P=0.0101008
   z=20   P=0.0024804
   z=25   P=0.0006132
   z=30   P=0.0001522
   z=35   P=0.0000379
   z=40   P=0.0000095
   z=45   P=0.0000024
   z=50   P=0.0000006
Solving for P less than 0.1%...

   P < 0.001
   q=0.10   z=5
   q=0.15   z=8
   q=0.20   z=11
   q=0.25   z=15
   q=0.30   z=24
   q=0.35   z=41
   q=0.40   z=89
   q=0.45   z=340

12.結(jié)論

我們已經(jīng)提出一個不依賴信任的電子交易系統(tǒng)。我們從通常的數(shù)據(jù)簽名硬幣框架開始,提供了強有力的控制權(quán),但不完整,沒有辦法防止雙重支出。為了解決這個問題,我們提出了一個使用工作證明的對等網(wǎng)絡(luò)來記錄交易的公共歷史,如果誠實的節(jié)點控制大部分的CPU算力,對于想要更改的攻擊者來說,這很快變成在計算上是不切實際的。

該網(wǎng)絡(luò)在非結(jié)構(gòu)化的簡單性方面是強大的。節(jié)點很少協(xié)調(diào)工作。他們不需要被標(biāo)識,因為消息不被路由到任何特定的地方,并且只需要盡力地傳送。節(jié)點可以隨意離開或重新加入網(wǎng)絡(luò),接受工作證明鏈,作為他們經(jīng)歷過的事情的證明。他們以CPU能力,通過致力于擴(kuò)展塊,來表達(dá)接受塊,拒絕在塊上工作,來拒絕不合法的塊。任何需要規(guī)則和激勵 任何所需的規(guī)則和激勵措施都可以通過這種共識機制來實施。

引用

[1]   W. Dai, "b-money," [http://www.weidai.com/bmoney.txt](http://www.weidai.com/bmoney.txt), 1998.
[2]   H. Massias, X.S. Avila, and J.-J. Quisquater, "Design of a secure timestamping service with minimaltrust requirements," In 20th Symposium on Information Theory in the Benelux, May 1999.
[3]   S. Haber, W.S. Stornetta, "How to time-stamp a digital document," In Journal of Cryptology, vol 3, no2, pages 99-111, 1991.
[4]   D. Bayer, S. Haber, W.S. Stornetta, "Improving the efficiency and reliability of digital time-stamping,"In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993.
[5]   S. Haber, W.S. Stornetta, "Secure names for bit-strings," In Proceedings of the 4th ACM Conferenceon Computer and Communications Security, pages 28-35, April 1997.
[6]   A. Back, "Hashcash - a denial of service counter-measure,"[http://www.hashcash.org/papers/hashcash.pdf](http://www.hashcash.org/papers/hashcash.pdf), 2002.
[7]   R.C. Merkle, "Protocols for public key cryptosystems," In Proc. 1980 Symposium on Security andPrivacy, IEEE Computer Society, pages 122-133, April 1980.
[8]   W. Feller, "An introduction to probability theory and its applications," 1957.

版本

2017年06月30日11:19:30 :添加了圖片,用代碼塊顯示代碼,散落的段落組合在一起。
2017年07月20日23:24:13:更新了摘要,網(wǎng)絡(luò)第一段。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,570評論 2 379

推薦閱讀更多精彩內(nèi)容