基於區塊鏈技術的眾籌平台-畢業設計


基於區塊鏈技術的眾籌平台

目錄

What’s 眾籌?

眾籌的起源,翻譯自國外crowd funding一詞,即大眾籌資,是一種“預消費”模式,用“團購+預購”的形式,向公眾募集項目資金。眾籌利用互聯網和SNS傳播的特性,讓小企業家、藝術家或個人對公眾展示他們的創意,爭取大家的關注和支持,進而獲得所需要的資金援助。
相對於傳統的融資方式,眾籌更為開放,能否獲得資金也不再是以項目的商業價值作為唯一標准。只要是公眾喜歡的項目,都可以通過眾籌方式獲得項目啟動的第一筆資金,且一般首次籌資的規模都不會很大,為更多小本經營或創作的人提供了無限的可能。
—— [ 維基百科 ]

業務需求

眾籌傳到國內后瘋狂發展,到現在我國有了龐大的人群。同時也帶來一個非常嚴峻的問題——信任危機。對於傳統的眾籌平台而言必須要一個中心化的系統,例如支付寶這樣的一個第三方,所有用戶的資金都由第三方的中心數據庫來管理。對於更多的用戶的數據安全性完全暴露給了第三方,就有可能出現第三方的纂改而用戶沒有發現的可能。其次對於第三方管理數據需要大量的人力物力的資源保障。所以眾籌平台需要一個更安全、更可靠的去中心化的數據庫,恰好區塊鏈在這一方面表現優異。

傳統第三方中心化系統與去中心化的系統對比

中心化系統 去中心化系統
維護成本
可靠 極高
安全

通過上表的對比可以看出去中心化系統在對於眾籌業務的使用上是具有得天獨厚的優勢

區塊鏈技術

What’s 區塊鏈?

區塊鏈技術是一種不依賴第三方、通過自身分布式節點進行網絡數據的存儲、驗證、傳遞和交流的一種技術方案。因此,有人從金融會計的角度,把區塊鏈技術看成是一種分布式開放性去中心化的大型網絡記賬薄,任何人任何時間都可以采用相同的技術標准加入自己的信息,延伸區塊鏈,持續滿足各種需求帶來的數據錄入需要。
—— [ 維基百科 ]

區塊鏈的特點

  • 去中心化
  • 不可纂改
  • 不可偽造
  • 匿名性
  • 開放性
  • 獨立性

區塊鏈的工作原理

區塊
數據通過稱為區塊的文件,永久地記錄交易在網絡上。新的區塊會被添加到記錄(區塊鏈)的末端,而且一旦書寫就很難修改或移除。
區塊結構
大小 字段 描述
4字節 區塊大小 用字節表示的該字段之后的區塊大小
80字節 區塊頭 組成區塊頭的幾個字段
可變 交易 記錄在區塊里的交易信息
區塊頭
區塊頭由三組區塊元數據組成。首先一組引用父區塊哈希值的數據,這組元數據用於將該區塊與區塊鏈中前一區塊連接。第二組元數據,即難度、時間戳和nonce,與挖礦競爭相關。第三組元數據是merkle樹根,用來表示總結區塊中的數據結構。

技術

哈希算法

y = h a s h ( x )

使用上面的方式進行表示,該哈希函數實現對x進行運算計算出一個哈希值y。
區塊鏈中哈希函數的特征:
- 函數參數為string類型
- 固定大小輸出
- 計算高效
有了以上的特征就產生了如下的優點

  • collision-free 即沖突概率小
    x ! = y => h a s h ( x ) ! = h a s h ( y )
  • 能夠隱藏原始信息
    例如區塊鏈中各個節點之間對交易的驗證只需要驗證交易的信息熵,而不需要對原始信息進行比對,節點間不需要傳輸交易的原始數據只傳輸交易的哈希即可,常見算法有SHA系列和MD5等算法。

哈希的用法

哈希在區塊鏈中用處廣泛,其一我們稱之為哈希指針(Hash Pointer
哈希指針是指該變量的值是通過實際數據計算出來的且指向實際的數據所在位置,即其既可以表示實際數據內容又可以表示實際數據的存儲位置。下圖為Hash Pointer的示意圖
這里寫圖片描述
HashPointer在區塊鏈中主要有兩處使用,第一個就是構建區塊鏈數據結構。了解區塊鏈的讀者應該知道區塊鏈數據結構由創世區塊向后通過區塊之間的指針進行連接,這個指針使用的就是圖示的HashPointer.每個區塊中都存儲了前一個區塊的HashPointer。這樣的數據結構的好處在於后面區塊可以查找前面所有區塊中的信息且區塊的HashPointer的計算包含了前面區塊的信息從而一定程度上保證了區塊鏈的不易篡改的特性。第二個用處在於構建Merkle Tree

加密

加密算法

對稱加密
對稱加密的加密解密方使用相同的秘鑰,這種方式的好處在於加解密的速度快但是秘鑰的安全分發比較困難,常見對稱加密算法有 DES, AES,…
非對稱加密
非對稱加密體系也稱為公鑰體系,加解密時加密方擁有公鑰和私鑰,加密方可以將公鑰發送給其他相關方,私鑰嚴格自己保留。例如銀行的頒發給個人用戶的私鑰就存儲在個人的U盾里;非對稱加密中可以通過私鑰加密,他人能夠使用公鑰進行解密,反之亦然;非對稱加密算法一般比較復雜執行時間相對對稱加密較長;好處在於無秘鑰分發問題。常見的其他非對稱加密算法有RSA,ECC,區塊鏈中主要使用ECC橢圓曲線算法。
對稱加密與非對稱加密的結合
這種方式將加密過程分為兩個階段,階段一使用非對稱加密進行秘鑰的分發使得對方安全地得到對稱加密的秘鑰,階段二使用對稱加密對原文進行加解密。
加密的例子
加密的例子
常見加密算法對比
這里寫圖片描述

數字簽名

數字簽名又稱之為公鑰數字簽名,是一種類似於寫在紙上的物理簽名。數字簽名主要用於數據更改的簽名者身份識別以及抗抵賴。數字簽名包含三個重要特性:
- 只有自己可以簽署自己的數字簽名,但是他人可以驗證簽名是否是你簽發
- 數字簽名需要和具體的數字文檔綁定,就好比現實中你的簽名應該和紙質媒介綁
- 數字簽名不可偽造
依賴非對稱加密機制可以較容易實現上述三種特性。首先,需要生成個人的公私鑰對:

( s k , p k ) := g e n e r a t e K e y s ( k e y s i z e )
,sk私鑰用戶自己保留,pk公鑰可以分發給其他人
其次,可以通過sk對一個具體的message進行簽名:
s i g := s i g n ( s k , m e s s a g e )
這樣就得到了具體的簽名sig
最后,擁有該簽名公鑰的一方能夠進行簽名的驗證:
i s V a l i d := v e r i f y ( p k , m e s s a g e , s i g )

在區塊鏈體系中每一條數據交易都需要簽名,在比特幣的設計過程中直接將用戶的公鑰來表征用戶的比特幣地址。這樣在用戶發起轉賬等比特幣交易時可以方便的進行用戶交易的合法性驗證。

數字證書和認證中心

數字證書
數字證書又稱“數字身份證”、“網絡身份證”是經認證中心授權頒發並經認證中心數字簽名的包含公開秘鑰擁有者及公開秘鑰相關信息的電子文件,可以用來判別數字證書擁有者身份。
數字證書包含:公鑰、證書名稱信息、簽發機構對證書的數字簽名以及匹配的私鑰
證書可以存儲在網絡中的數據庫中。用戶可以利用網絡彼此交換證書。當證書撤銷后,簽發此證書的CA仍保留此證書的副本,以備日后解 決可能引起的糾紛。
認證中心
認證中心 一般簡稱CA, CA一般是一個公認可信的第三方機構,其作用主要是為每個用戶頒發一個獨一無二的包含名稱和公鑰的數字證書。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com