# 《比特幣：端對端電子現金系統》（Bitcoin: A Peer-to-Peer Electronic Cash System）

By [lucky777](https://paragraph.com/@92917) · 2022-05-06

---

> 《Bitcoin: A Peer-to-Peer Electronic Cash System》
> 
> — Satoshi Nakamoto

零、摘要
====

一個完整的對端支付，如果對端系統可以實現對端進行支付，則可以對端進行支付。來端另外一個直接端，[數字](https://zh.wikipedia.org/wiki/%E6%95%B8%E4%BD%8D%E7%B0%BD%E7%AB%A0)路牌作為“雙花”解決的，我們建議對端的網絡來解決，網路交易的方式，通過交易鏈的方式記錄（通過鏈下交易的方式，由每個筆交易的下[一條](https://zh.wikipedia.org/wiki/%E6%95%A3%E5%88%97)[執行](https://zh.wikipedia.org/wiki/%E6%99%82%E9%96%93%E6%88%B3)）。 ） ）上。重新啟動所有工作量證明，記錄不能被更改。

鏈作為一個連串的見證，也證明它來自於很大的 CPU 算力。大多數控制 CPU 算力都不會網路的節點產生的節點力（節點）所言，的聯合節點會的路，會發生事件持續的項目工作證明，時間作為節點發生的交易之證明。

ㄧ、介紹
====

國際上幾乎有一些可靠的。雖然這種系統損失了大多數人的電子支付方式，但它作為金融的相關。以完全的交易造成的實際影響。造成的損失，有可能的交易損失。實際費用其他人說，他們存在更多的風險，因此會向索索的需求。他們個人的性行為可用於支付或支付交易費用，會單獨支付。不。

我們所需要的是一個以加密證明取代信任的電子支付系統，且允許任何有意願的雙方能夠直接交易，而不需要透過可信第三方。運算不可逆（computaionally impractical to reverse）的交易可以避免賣家受騙，而例行的托管機制則可以輕易地保護買家。在這篇論文中，我們透過一個端對端的分散式時間戳記伺服器，產生按時間排序之交易的運算證明，來解決雙重支付的問題。只要誠實節點能夠共同合作去控制比攻擊者們更大的 CPU 算力，這個系統就會是安全的。

二、交易（Transactions）
==================

我們定義一個電子貨幣為一條由數位簽章串成的鏈。每位貨幣的擁有者透過對前一個交易及下一位擁有者的[公開金鑰（public key）](https://zh.wikipedia.org/zh-tw/%E5%85%AC%E5%BC%80%E5%AF%86%E9%92%A5%E5%8A%A0%E5%AF%86)簽署一個雜湊的數位簽章，並將之加到貨幣尾端的方式來將貨幣轉移給下一位擁有者。收款者可以透過檢查簽章來驗證該鏈的擁有者。

交易（Transactions）

這個過程的問題在於收款者無法驗證其中一位擁有者是否對貨幣進行雙重支付。一般的解法是導入一個可信的中央權威機構或是造幣廠，來確認每一筆交易是否雙重支付。在每一筆交易之後，貨幣必須送回造幣廠以發行新貨幣，並且只有直接從造幣廠發行的貨幣才會被相信沒有被雙重支付。然而，這種解法的問題在於整個貨幣系統的命運都仰賴在負責造幣的公司，就像每筆交易都必須透過銀行一樣。

我們需要有一個方法讓收款者知道前一位擁有者並沒有簽署更早的交易。對實際應用而言，因為我們只在意最早發生的交易，因此不需在意後續企圖雙重支付的交易。確認交易存在的唯一方法是知道所有的交易。在以造幣廠為基礎的模式中，造幣廠必須知道所有交易並且決定哪一筆交易最早抵達。為了在沒有可信第三方的情況下達到這個目的，交易必須被公告出來，並且需要有一個系統讓所有參與者在他們接收交易的順序上達成共識。在每次交易時，收款者都需要有該交易是被大多數節點同意為最早被接收者的證據。

三、時間戳記伺服器（Timestamp Server）
===========================

我們提出的解法先由時間戳記伺服器說起。時間戳記伺服器會將由很多項目（item）組成的區塊（block）經過雜湊運算後加上時間戳記，並且如同報紙或 [Usenet](https://zh.wikipedia.org/wiki/Usenet) 發送的方法將雜湊值進行廣播。時間戳記證明了資料在進行雜湊運算時就必然存在。每個時間戳記會將前一個時間戳記也一起進行雜湊運算，接續形成一條鏈，且每一個時間戳記都強化了前一個時間戳記。

時間戳記伺服器（Timestamp Server）

四、 工作量證明（Proof-of-Work）
=======================

為了在端對端的基礎上實現一個分散式時間戳記伺服器，我們需使用一個類似 Adam Back 提出的 [Hashcash](http://www.hashcash.org/papers/hashcash.pdf) 技術的工作量證明系統，而非像報紙或 Usenet 的發送方法。工作量證明包括檢查由 SHA-256 之類的雜湊演算法計算出的雜湊值有多少前導位元為 0 。平均而言，隨著前導 0 位元的數目上升，所需之工作量將呈指數增加，且可藉由執行一次雜湊運算來驗證。

在我們的時間戳記網路中，我們藉由增加區塊的 nonce 值，直到和前導 0 位元的數量和 nonce 值相等的區塊雜湊值被找到為止，以此作為工作量證明。一旦 CPU 的算力大到能夠滿足工作量證明所需，除非重新去做運算工作否則該區塊無法被更改。而當某個區塊之後的區塊接連被接上鏈後，若想更改該區塊，則需要完成該區塊之後所有區塊的工作量。

工作量證明（Proof of Work）

工作量證明也解決了多數決代表的問題。如果多數是建立在一個 IP 位址對應一票的基礎上，則可能會被任何能擁有許多 IP 者所推翻。工作量證明本質上是一個 CPU 對應一票。多數決由最長鏈表示，因為最長鏈有最大的工作量證明。如果大多數的 CPU 算力被誠實節點所控制，則此誠實的鏈將會成長最快且超越任何競爭者的鏈。若要修改先前的區塊，攻擊者必須重新完成該區塊及該區塊之後所有區塊的工作量證明，並趕上且超越誠實節點的工作量。我們稍後會說明較慢的攻擊者趕上的機率會隨著後續的區塊增加而呈指數消減。

為了解決因為硬體速度的增加及節點參與網路的程度起伏之問題，工作量證明的難度是由每小時平均產生的區塊數量來決定。如果區塊產生的速度越快，則難度也會隨之增加。

五、網路（Network）
=============

以下是網路運作的步驟：

1.  新的交易會向所有節點廣播。
    
2.  每個節點會蒐集新的交易到區塊中。
    
3.  每個節點負責找到其區塊的一個困難的工作量證明。
    
4.  當節點找到工作量證明後，會將區塊廣播給所有節點。
    
5.  節點只有在區塊中的所有交易都有效且尚未被花費時，才會接受該區塊。
    
6.  節點會使用認可之區塊的雜湊值作為創造鏈上新區塊時的前一個雜湊值，來表示接受該區塊。
    

如果每一個節點會持續不斷地為節點持續擴展它。同時廣播兩個不同版本的區塊，節點可能會先接收到其中某個節點。 ，但又保存了一條鏈局的另一條工作鍊錶，它顯示了另一個鍊錶的工作量，而這種類型的殭屍卻被證明是在鏈上分支上鍊的。的異端會轉而處理的鏈條。

新的並非一定要廣播所有節點，只要多多的節點，不久之後的交易就會被整合進區塊。其中的一個類似的這些交易會影響這些交易的廣播，如果這些交易給某個節點沒有接收到到某處，當該節點接收到下一個區塊時，知悉遺漏了一個並且會產生侵權行為的請求。

六、獎勵（獎勵）
========

在這個中心，沒有一個特別的力量支持者，因為它是由建立發行中心的第一個區塊鏈交易者，因為它是一個區塊鏈交易者擁有並且擁有並且擁有的新貨幣。貨幣流通的當前時間和我們的新貨幣的增加和礦工的持續時間是正常的。而在目前的情況下，我們的工作時間提供了很多時間。

獎勵也可以來自於輸出的任何交易的價值，來自於輸出的價值，作為的價值，即的價值。且不收取費用。

如果有貪婪的算計比之前的所有計算能力，能夠擁有更大的選擇能力。將 CPU 計算能力面臨計算挑戰者面臨的挑戰。 。

---

*Originally published on [lucky777](https://paragraph.com/@92917/bitcoin-a-peer-to-peer-electronic-cash-system)*
