[譯] BigQuery 中的比特幣:使用公共數據分析區塊鏈

雲主導開發者 Allen Day、雲服務開發者 Colin Bookman。前端

加密貨幣已經吸引了技術專家、金融家和經濟學家的想象力。或許更有趣的是長期多樣化的區塊鏈應用。經過提升加密貨幣系統的透明度,其所包含的數據變得愈來愈易於訪問和使用。android

如今比特幣區塊鏈數據能夠經過 BigQuery 探索。全部的歷史數據都在 bigquery-公共數據:比特幣區塊鏈數據集中,該數據集每 10 分鐘更新一次。ios

咱們但願經過使數據更加透明化,使數據用戶能夠對加密貨幣系統運做有一個更深入的理解,以及如何更好的利用他們造福社會。git

有趣的查詢和分析

下面,咱們將根據比特幣數據集展現一些有趣的查詢和可視化數據。咱們將着眼分析如下兩個熱門話題:github

  • 網絡基礎(塊困難度)
  • 交易可視化(第一次易物交易)

區塊鏈網絡統計信息彙總

比特幣網絡參數爲基本的網絡分析提供了基礎。例如,比特幣日發送總數以及比特幣日接收總數代表網絡中的經濟活動,而且這和比特幣的均價有關,根據梅特卡夫定律推測,一個網絡的價值與其用戶數的平方成正比。算法

下圖顯示了比特幣網絡日交易量趨勢:後端

下圖顯示了比特幣地址日接收量趨勢:瀏覽器

如下根據根據區塊鏈網絡的第一原則,網絡價值與交易比或 NVT 比制定的評估指標。該圖表顯示了隨時間的每日 NVT 比率:bash

例如比特幣挖礦算法困難度等其餘的比特幣參數,也可能具備基本的經濟重要性。下圖顯示了比特幣挖礦困難度與「比特幣」搜索量的關係。網絡

譯者注:以上 4 個實時數據圖能夠在 Google 數據洞察中查看。

交易可視化

使用電子貨幣進行交易的一個後果是交易記錄公開且完備。據信,第一次用比特幣購買物品是在 2010 年 5 月 17 日。Laszlo Hanyecz 花了 10,000 BTC 買了兩個批薩,從地址 1XPT…rvH4 到地址 17Sk…xFyQ 的交易記錄在交易 ID 爲 a107…d48d 的區塊鏈中。咱們對 Hanyecz 地址購買批薩以前的 4 層比特幣轉移數據進行了可視化分析。咱們用這段代碼生成了下圖。Hanyecz 的付款地址爲紅色圓圈,而其餘地址爲藍色圓圈。箭頭表示披薩購買交易以前比特幣流動的方向。筆畫寬度大體與地址間比特幣移動量成正比。

區塊鏈勘探和異常檢測

在比特幣區塊鏈中,存在被添加到兩個區塊的交易。這不該該發生。這個查詢能夠發現這種異常交易:

# 標準 SQL
SELECT
  *
FROM (
  SELECT
    transaction_id,
    COUNT(transaction_id) AS dup_transaction_count
  FROM
    `bigquery-public-data.bitcoin_blockchain.transactions`
  GROUP BY
    transaction_id)
WHERE
  dup_transaction_count > 1
複製代碼

怎麼會發生這種事情? 比特幣最初構建於 BerkeleyDB,它能夠處理非惟一鍵。後來中本聰離開了比特幣項目組,新的開發團隊使用 LevelDB 替代了 BerkeleyDB。然而 LevelDB 沒法處理惟一鍵,這使得開發者根據比特幣改善提案 BIP_0030 修改 比特幣源代碼

儘管交易再也不可能存在與多個塊中,但仍然有一些過往的交易存在這個問題。

爲何 Google Cloud 上比特幣區塊鏈數據不可不看?

區塊鏈通常爲低信任環境中的平等節點之間的溝通和協調提供解決方案。在金融服務,供應鏈,媒體和其餘高度數字化行業中,區塊鏈正在嶄露頭角。比特幣區塊鏈旨在彌補金融業的缺陷,如中本聰寫的 Bitcoin genesis block

比特幣能夠被描述爲一個不可變的分佈式帳本,雖然它提供了 OLTP 功能(原子交易,數據持久性),但它對於按期存儲的具體或彙總資金流進行短週期報告的 OLAP (分析)能力很是有限。難以輕易地從區塊鏈構建報告可能會下降透明度並增長 BTC-USD 價格分析的難度以及 NVT 比等其餘基本評估指標。

相比之下,BigQuery 具備強大的 OLAP 功能。, 咱們在 Google Cloud 上構建了一個軟件系統:

  1. 從比特幣區塊鏈帳中實時提取數據
  2. 將數據存儲到 BigQuery 並將其解除規範化,以便更輕鬆地進行探索
  3. 使用 Data Studio 從數據中導出分析報告

比特幣區塊鏈數據也能夠經過 Kaggle 獲取。你可使用 BigQuery Python 客戶端庫查詢 Kernel(Kaggle 的免費瀏覽器內開發環境) 中的實時數據。你能夠 fork 一份這個實例 kernel 並用你本身的 Python 代碼副原本進行試驗。

BigQuery 公共數據集

全部比特幣區塊鏈數據都批量加載到兩個 BigQuery 表:blocks_raw 和 transactions。新塊被廣播到比特幣網絡時被追加到表中,所以這些表中的數據是最新的。

鳴謝

咱們想感謝全力以赴發表這篇博文的 Google 同事們。感謝 Minhaz Kazi(Data Studio 主導開發者),Megan Risdal(Kaggle 數據科學家),Sohier Dane(Kaggle數據科學家)和Hatem Nawar(雲服務工程師)


掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 AndroidiOS前端後端區塊鏈產品設計人工智能等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃官方微博知乎專欄

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息