作者:舒適 (ArcBlock 團隊數據工程師)

爲幫助大家深入瞭解 ArcBlock 的開放鏈訪問協議的實現和技術細節,我們工程團隊將定期接受採訪或撰寫技術博客來“解密” OCAP
背後的設計思路和實現細節,歡迎大家的批評指正,在討論中進一步完善我們的設計和產品。

今天發表的“深入理解 OCAP 實現”系列之三是數據工程師舒適結合她個人在 ArcBlock 的工作實踐談一談**
數據對區塊鏈行業發展的重要性。**

很多人會問,爲什麼 ArcBlock 這樣一家初創的區塊鏈公司需要大量的數據分析?又有什麼數據可以分析呢?今天我們從 “開放鏈訪問協議(OCAP)”
的數據方面切入,介紹一下目前比特幣和以太坊上數據量的情況和潛在價值,並從宏觀角度介紹一下 ArcBlock 平臺是如何構建自己的 data
pipeline 的。數據分析不僅是 ArcBlock 產品和服務的一部分,也是我們做出各種決策的基礎和信心。

什麼是數據?

首先要統一一下對數據的定義:
數據就是數值,也就是我們通過觀察、實驗或計算得出的結果。更廣義地理解可以說,數據就是人們在這個世界留下過的痕跡,而人們最終可以通過收集和分析這些痕跡,提出之前未曾想到的問題,並找到問題的答案。
ArcBlock 平臺使用的數據包括了:用戶使用產品的情況和反饋、現有的鏈上數據,以及系統的日誌 。

在 ArcBlock,我們對數據的使用主要分成三個部分:

  1. 鏈上數據的分析

  2. 用戶和產品的分析

  3. 安全監控

一 . 鏈上數據的分析

區塊鏈技術的一個核心亮點是數據的不可篡改性,也就是說每一筆產生過的交易都有跡可循。區塊鏈就像是一本公開的總賬,只要有比特幣地址,你就可以查詢到這個地址參與過的所有交易。

從 2017 年開始,由於比特幣價格直線走高,越來越多的人開始關注並使用它作爲交易平臺,使得比特幣上的數據類型和內容都日益豐富。比特幣鏈上自 2009
年誕生至今將近十年,儲存的交易總數高達大約 17 億條。

哪怕是更年輕的誕生於
2015 年的以太坊,其鏈上也已經有超過 600 萬個區塊,數億條交易數據,並且新的數據仍在以 12 秒一個區塊的速度持續增加着。

這些數據實際上是用戶的交易行爲,蘊藏着大量的有價值信息。一筆一筆的錢都從哪裏來,又去了哪裏?資金的流通過程是怎樣的?什麼樣的地址存在異常交易行爲?有無數的信息等待我們挖掘。

爲什麼這些公開的數據在市場上沒有足夠多的數據分析報告呢?一是由於區塊鏈去中心化的特點,其背後沒有專門的產品經理和團隊做專門的用戶畫像和產品分析;二是因爲區塊鏈的結構和算法有一定門檻,需要一定的研究才能把數據解析出來。

爲了更好地做數據分析,我們把比特幣和以太坊的數據解析出來,並通過
Listener
保持數據的實時更新。在 之前的文章 中,已經介紹了數據是如何解析的。我們把解析好的數據以
parquet 的形式存在 s3 上面備份,同時把數據打入 data pipeline,用 Spark 做好數據的清理和聚合,然後再將整理好的數據放進
redshift,處理之後用可視化圖表展示出來。

目前我們使用
Superset 對以太坊做了日活躍用戶和月活躍用戶的分析,之後還會陸續加入更多的鏈上數據分析報告,如用戶留存率,用戶流失率,冷錢包數量等。

二 . 對用戶和產品的分析

更好的服務的核心是更優化的產品,更優化的產品又離不開對用戶的瞭解。在打造一個產品的過程中,充斥着大大小小的決定:大到應該優先開發哪一個功能,產品的定位應該往什麼方向發展,小到應該優先修復服務中的哪一個問題,網站頁面如何佈局才能更好地提升用戶體驗。只有對用戶需求有更準確的瞭解,我們才能做出正確的決定。在
ArcBlock,所有做出的決定都應該是一個可追溯的過程,而數據的支持是一切答案的信心和基礎——數據是用戶真實行爲和選擇的反映。

因爲對數據的重視,從一開始我們就很注重打造一條和產品線齊頭並進的數據 pipeline。這條 pipeline
可以讓我們實時獲取產品被使用的狀況,保存好每個時間段的數據。我們的 API 會把產品的使用數據實時打進 Kinesis stream,然後用 s3
做好這部分原始數據的備份;另一邊用 spark 做原始數據的處理和聚合,並且把處理好的數據導到 redshift
上,用來做之後的數據分析以及可視化。隨着之後產品的不斷升級和新功能的增加,我們的 pipeline 也會不斷優化。

三 . 安全監控

區塊鏈是建設價值互聯網的基礎設施,安全性尤爲重要。除了設計嚴密的基礎架構,ArcBlock 平臺也會利用數據分析提前識別出惡意用戶的行爲,以防患於未然。

我們會將所有的系統日誌備份在 s3
上,和處理好的用戶數據一起通過專門的數據分析引擎,用機器學習等方法,通過比對歷史和當前的數據,以最快速度識別出異常的用戶行爲,通過系統的自動處理,防止惡意的攻擊行爲給用戶帶來損失。

今天簡單介紹了 ArcBlock
平臺對數據在三個方面的使用。關於區塊鏈的過去和未來,不論是已提出還是未提出的問題,其答案都在數據裏,不來也不去,等着我們找到一個最合適的算法讓它們浮出水面。

本文經授權轉載自:

ArcBlock

區塊基石:爲區塊鏈 3.0 而生

更多 Krypital (金氪資本)信息,請關注以下渠道瞭解:

Facebook:http://bit.ly/2FHP3ko

Twitter:http://bit.ly/2FRI984

Telegram:https://t.me/Krypital

Instagram:http://bit.ly/2FIN8vZ

LinkedIn:http://bit.ly/2HDZd1Z

Medium:http://bit.ly/2u1kUqU

weibo:http://bit.ly/2FTY7OY

Reddit: http://bit.ly/2IvlqAw