Blockchain

區塊鏈官方文件

  • April 6, 2019

我正在開發一個行政管理系統。該項目正在從 PHP 遷移到 C++。有了新的要求,我們想使用區塊鏈。但是當尋找更多關於它的資訊時,儘管有通用教程,我幾乎總能找到指向比特幣或 Eterium 等區塊鏈實現的連結。但我需要從頭開始實現一些純粹的東西。

我在哪裡可以找到區塊鏈技術的官方文件?

在哪裡可以找到區塊鏈技術的官方文件

無處。沒有官方機構負責“區塊鏈技術”。

有許多不同的個人、團體和組織都或多或少獨立地在做自己的“區塊鏈”工作。他們通常會將他們的區塊鏈部分基於舊的區塊鏈想法。這些團體中的每一個都可能會或可能不會發布他們正在使用的區塊鏈的定義。

一個例子是比特幣開發者參考,由一些不斷變化的隨機群體(大部分是匿名/假名的人)撰寫,你必須自己判斷他們的動機和準確性。我懷疑他們大多沒問題,但如果我或他們錯誤地誤導甚至惡意欺騙,你就沒有追索權。

最接近官方定義的可能是中本聰在 2008 年 10 月發布的白皮書。如果您閱讀並理解了這一點,那麼您就可以很好地實施自己的區塊鏈。您需要具備基本密碼原理和算法的基礎(不要編寫自己的密碼算法)。

我們想與區塊鏈合作。

如果這來自行銷,請忽略它們,只需在產品名稱、文件等中添加“區塊鏈”一詞即可:-)

請注意,經濟學人 2018 年 9 月 1 日有一個 12 頁的區塊鏈部分

儘管大多數人對區塊鏈持積極態度,但它確實有很多警告。

由於其去中心化的性質,區塊鏈總是比標準數據庫更慢、更麻煩。

他們單獨的主要文章說:

一些組織,例如銀行支付網路 SWIFT 和線上支付公司 Stripe,已經放棄了區塊鏈項目,認為成本大於收益。大多數其他項目都是實驗性的。

至少在 1984 年 Ray Ozzie 等人組建 Iris associates 開發 Lotus Notes 時,基於公鑰密碼術對完整性進行嚴格控制的複制對等數據庫的想法。任何選擇“區塊鏈”的人都需要深入了解它的哪些特徵對他們的項目至關重要,存在哪些替代方案以及權衡取捨。

對區塊鏈最簡單的解釋是加密連結的數據塊鏈。Brett Benefield、Scott Herford 和 Kyle Thomas 寫道:這些區塊中的每一個都可以包含多條資訊,例如交易資訊或資產數據。當添加一個新塊時,它被添加到塊鏈的末尾,然後計算一個新的雜湊值。這個相對簡單的功能確保一旦區塊鏈足夠大,它在計算上是安全的,可以防止惡意方修改任何先前的塊。(Benefield、Herford 和 Thomas 2018,1)

區塊鏈僅按設計附加。實現功能維護區塊鏈的多個副本,通過共識機制進行驗證。這增加了區塊鏈的安全性,因為惡意行為者必須獲得對足夠多節點的訪問權並足夠快地重寫每個區塊鏈,以達成共識,即更改後的鍊是正確的。用 Benefield、Herford 和 Thomas 的話來說,這個困難使得分佈式區塊鏈在計算上是安全的。

用於連結數據塊的技術是加密雜湊,它是一組數據的數學摘要。這個加密雜湊是塊的指紋。不可能使用密碼散列來確定區塊的內容,也不可能在不改變密碼散列的情況下改變區塊。

區塊鍊是加密連結的數據塊鏈。區塊鏈中的第一個塊,稱為創世塊,由數字數據和該數據的加密雜湊組成。下一個(和後續塊)由前一個塊的標頭的雜湊組成。

那麼什麼是塊,真的嗎?塊是一種稱為容器的資料結構。容器由包含元數據(關於數據的數據)的標頭和數據本身組成。在上圖中,標頭僅包含前一個塊的雜湊。為了使區塊鏈有用,我們需要定義可以包含在塊中的數據以及在標頭中使用的元數據類型。

沒有區塊鏈特有的資料結構。區塊鏈可以儲存在平面文件或數據庫中。因為塊可以按任何順序儲存,所以我們需要一種方法來辨識塊的順序。為此,我們添加了一個時間戳。接下來,根據 Emmanuelle Anceaume(等人)的說法,我們還需要一種確定區塊有效性的方法。用於確定比特幣網路有效性的方法是工作量證明。

工作量證明為區塊增加了一個隨機數。“隨機數是一個隨機數,在數學函式中充當佔位符變數。” (Stewart、Chapple 和 Gibson 2015)工作證明包括用隨機值替換隨機數併計算加密雜湊,直到找到滿足特定標準的雜湊。在比特幣的情況下,困難在於找到一個以特定數量的零開頭的雜湊,這個目標隨著礦工數量的變化而動態變化。

最後,要添加到塊中的交易儲存在稱為默克爾樹的資料結構中。(有關更多資訊,請參見下文。)這是一種基於散列的資料結構,可提供有效的數據儲存和安全驗證。這一切的結果就是區塊鏈。

工作量證明是一種共識算法,用於確定誰可以創建下一個區塊,並且需要大多數節點同意。非常民主,但依賴於網路的規模來防止欺詐。在不同的區塊鏈實現中還使用了其他共識算法,例如“權益證明”、“活動證明”、“銷毀證明”、“容量證明”和“權威證明”。每種實現方式都以不同的方式實現每種類型的拜占庭容錯。因此,基礎設施再次決定了系統對拜占庭故障的抵抗力。

還有一些其他的事情你需要知道。

  1. 區塊鍊是一本日記本,而不是一本賬本。日記帳是交易清單;分類帳是日記帳的分析摘要。
  2. 區塊鏈本質上並不安全。它基本上是一個文本文件,每個人都可以看到它的副本。保護區塊鍊是一項實施功能。
  3. 區塊鏈不是一成不變的。有幾種情況必須回滾公共區塊鏈。與數據庫中的事務日誌不同,回滾區塊鏈會修改歷史記錄,更改審計跟踪。
  4. 區塊鏈既不是規範也不是協議。它是一組可以以多種方式實現的概念。你的案例聽起來像是一個私有的、許可的區塊鏈,在這種情況下你應該調查 Hyperledger。
  5. 區塊鏈不是數據庫,至少不是一個非常好的數據庫。公共區塊鏈實現既不滿足 ACID 也不滿足 BASE 數據庫屬性。特別是,因為區塊鏈可以回滾,本質上是改變歷史,區塊鍊是不耐用的。區塊鏈重視一致性而不是可用性,這意味著它們不是高性能的。

祝你好運。

引用自:https://bitcoin.stackexchange.com/questions/78726