傳統資料庫也能實現區塊鏈儲存
傳統資料庫也能實現區塊鏈儲存
本文節選自電子書《Netkiller Architect 手札》,延伸閱讀《Netkiller Blockchain 手札》
最近我區塊鏈技術非常火,區塊鏈優勢是去中心化,資料不可撰改,但你仔細想想自己需求,真的需要區塊鏈嗎?還是需要區塊鏈上的一些特性?例如資料不可撰改。
區塊鏈並非能解決所有問題,雖然他也算是一種資料庫,它能解決問題十分有限,它的資料管理和查詢能力還打不到 NoSQL 的水平,更別提 SQL 的複雜應用。所以在實際的應用中,區塊鏈不能替代資料,只能互補。
那麼,我僅僅需要區塊鏈的一個特性例如:“資料不可撰改”。
資料不可撰改包含幾種情況:
- 不能修改資料
- 不能隨意在中間插入
- 不能打亂前後順序
如果資料被撰改,需能夠偵測出,並展示資料
怎樣實現這個需求呢?
- 資料只能被順序追加,追加時檢查插入上一個資料庫快的 hash 值。
- 通過觸發器禁止修改資料,執行update 丟擲異常
- 通過觸發器禁止刪除資料,執行delete 語句丟擲異常
- 如果是mysql儲存引擎可以選擇 Archive 更為安全
- 資料讀取時使用UDF函式檢查,也可以在應用程式中檢查。前後hash值不正確,就提示資料有風險。
5.10. 資料區塊鏈
背景:例如我們需要一個排行榜,儲存活動的報名順序或者考試成績。我們防止有人作弊或者撰改,包括DBA在內。
任務:1.資料檢查,2.發現撰改,2.風險提示
方案:使用連結串列指標方案,將資料看成一個鏈條,中間任何改動,就如同鏈條被剪斷,改動之處之後的資料全部視為無效。
結果:達到資料後發現是否撰改,提示風險目的
CREATE TABLE `top100_list` ( `id` INT, `name` VARBINARY(16) NOT NULL, ...... ...... `extend` VARCHAR(32) NULL)ENGINE=InnoDB;
演示資料
id | extend | ...1 | 0 | ...2 | 1 | ...3 | 2 | ...4 | 3 | ... 5 | 4 | ...
extend 始終整合上一條記錄,保證資料是連續的。但這樣還不夠,這樣只能防止資料被刪除,如果其他欄位被修改呢
id | extend | ...1 | NULL | ...2 | crc32(...) | ...3 | crc32(...) | ...4 | crc32(...) | ... 5 | crc32(...) | ...
我們使用crc演算法運算上一條一整行的資料,你還可以使用 salt 技術干擾,這個 salt 只有軟體部署者知道,DBA和開發人員不得而知。
對於一般資料crc32 可能做到效能和安全性平衡,如果安全要求更高可以使用 sha256 等等,甚至採用 RSA 非對稱祕鑰。
原文釋出時間為:2018-03-06
本文作者:netkiller
本文來源:騰訊雲 雲+社群,如需轉載請聯絡原作者。
相關文章
- 區塊鏈資訊儲存是如何實現安全儲存區塊鏈
- 區塊鏈代表的資料庫和傳統資料庫有何區別區塊鏈資料庫
- 【劉文彬】區塊鏈 + 大資料:EOS儲存區塊鏈大資料
- 如何利用區塊鏈技術進行資料儲存?區塊鏈
- 區塊鏈讓醫療資料儲存變得安全區塊鏈
- Filecoin分散式儲存,能否實現區塊鏈3.0時代?分散式區塊鏈
- YottaChain區塊鏈資料儲存技術有哪些優勢?AI區塊鏈
- BTA|王濤:傳統IT人如何用資料庫思維來理解區塊鏈?去中心化資料庫也許是答案資料庫區塊鏈中心化
- 區塊鏈和資料庫區塊鏈資料庫
- 區塊鏈Yottachain到底是如何改變資料儲存模式?區塊鏈AI模式
- 資料如何在一個區塊鏈中儲存和保護?區塊鏈
- 實現報表資料分庫儲存
- 2、JSP實現資料傳遞和儲存JS
- 區塊鏈系統可以實現資料的互動需求區塊鏈
- ADAMoracle連線現實世界資料與區塊鏈系統Oracle區塊鏈
- 區塊鏈vs傳統資料庫:分散式執行有何優勢?區塊鏈資料庫分散式
- 區塊鏈技術應用資料上鍊儲存軟體系統開發區塊鏈
- 區塊鏈技術落地應用電商溯源baas系統,資料上鍊儲存區塊鏈
- 圖資料庫並非要取代區塊鏈,而是讓區塊鏈如虎添翼資料庫區塊鏈
- 斷電也能儲存資料的MRAM技術精髓
- 區塊鏈技術開發解決方案賦能傳統實體企業-鏈改區塊鏈
- ChianStore區塊鏈應用商店_讓小白也能輕鬆下載區塊鏈應用區塊鏈
- 對比傳統庫存管理與供應鏈庫存管理的區別
- java+pgsql實現儲存圖片到資料庫,以及讀取資料庫儲存的圖片JavaSQL資料庫
- 沃爾瑪申請專利,欲在區塊鏈上儲存支付資料區塊鏈
- JavaScript實現區塊鏈JavaScript區塊鏈
- 自研資料庫CynosDB儲存系統如何實現即時恢復資料庫
- 資料上鍊儲存,深圳區塊鏈技術底層應用落地服務區塊鏈
- 傳統OLTP資料庫存什麼?資料庫
- ADAMoracle的目標是連線現實世界資料與區塊鏈系統Oracle區塊鏈
- 區塊鏈3.0儲存礦機-YottaChain芝麻雲節點區塊鏈AI
- 【資料結構】二叉樹(順序儲存、鏈式儲存)的JAVA程式碼實現資料結構二叉樹Java
- Flutter持久化儲存之資料庫儲存Flutter持久化資料庫
- 區塊鏈系列6-區塊鏈安全與大資料區塊鏈大資料
- 區塊鏈與分散式資料庫的比較區塊鏈分散式資料庫
- LaravelZero 從零實現區塊鏈(三)資料持久化與 CLILaravel區塊鏈持久化
- 區塊鏈遊戲與傳統遊戲潛力與問題並存區塊鏈遊戲
- 資料的儲存區域