基于区块链技术的众筹平台-毕业设计

基于区块链技术的众筹平台

目录

  • 基于区块链技术的众筹平台
    • 目录
    • Whats 众筹
      • 业务需求
      • 传统第三方中心化系统与去中心化的系统对比
    • 区块链技术
      • Whats 区块链
      • 区块链的特点
      • 区块链的工作原理
    • 技术
      • 哈希算法
      • 哈希的用法
      • 加密
        • 加密算法
      • 数字签名
      • 数字证书和认证中心

What’s 众筹?

众筹的起源,翻译自国外crowd funding一词,即大众筹资,是一种“预消费”模式,用“团购+预购”的形式,向公众募集项目资金。众筹利用互联网和SNS传播的特性,让小企业家、艺术家或个人对公众展示他们的创意,争取大家的关注和支持,进而获得所需要的资金援助。
相对于传统的融资方式,众筹更为开放,能否获得资金也不再是以项目的商业价值作为唯一标准。只要是公众喜欢的项目,都可以通过众筹方式获得项目启动的第一笔资金,且一般首次筹资的规模都不会很大,为更多小本经营或创作的人提供了无限的可能。
—— [ 维基百科 ]

业务需求

众筹传到国内后疯狂发展,到现在我国有了庞大的人群。同时也带来一个非常严峻的问题——信任危机。对于传统的众筹平台而言必须要一个中心化的系统,例如支付宝这样的一个第三方,所有用户的资金都由第三方的中心数据库来管理。对于更多的用户的数据安全性完全暴露给了第三方,就有可能出现第三方的纂改而用户没有发现的可能。其次对于第三方管理数据需要大量的人力物力的资源保障。所以众筹平台需要一个更安全、更可靠的去中心化的数据库,恰好区块链在这一方面表现优异。

传统第三方中心化系统与去中心化的系统对比

中心化系统 去中心化系统
维护成本
可靠 极高
安全

通过上表的对比可以看出去中心化系统在对于众筹业务的使用上是具有得天独厚的优势

区块链技术

What’s 区块链?

区块链技术是一种不依赖第三方、通过自身分布式节点进行网络数据的存储、验证、传递和交流的一种技术方案。因此,有人从金融会计的角度,把区块链技术看成是一种分布式开放性去中心化的大型网络记账薄,任何人任何时间都可以采用相同的技术标准加入自己的信息,延伸区块链,持续满足各种需求带来的数据录入需要。
—— [ 维基百科 ]

区块链的特点

  • 去中心化
  • 不可纂改
  • 不可伪造
  • 匿名性
  • 开放性
  • 独立性

区块链的工作原理

区块
数据通过称为区块的文件,永久地记录交易在网络上。新的区块会被添加到记录(区块链)的末端,而且一旦书写就很难修改或移除。
区块结构
大小 字段 描述
4字节 区块大小 用字节表示的该字段之后的区块大小
80字节 区块头 组成区块头的几个字段
可变 交易 记录在区块里的交易信息
区块头
区块头由三组区块元数据组成。首先一组引用父区块哈希值的数据,这组元数据用于将该区块与区块链中前一区块连接。第二组元数据,即难度、时间戳和nonce,与挖矿竞争相关。第三组元数据是merkle树根,用来表示总结区块中的数据结构。

技术

哈希算法

y=hash(x) y = h a s h ( x )

使用上面的方式进行表示,该哈希函数实现对x进行运算计算出一个哈希值y。
区块链中哈希函数的特征:
- 函数参数为string类型
- 固定大小输出
- 计算高效
有了以上的特征就产生了如下的优点

  • collision-free 即冲突概率小
    x!=y=>hash(x)!=hash(y) x ! = y => h a s h ( x ) ! = h a s h ( y )
  • 能够隐藏原始信息
    例如区块链中各个节点之间对交易的验证只需要验证交易的信息熵,而不需要对原始信息进行比对,节点间不需要传输交易的原始数据只传输交易的哈希即可,常见算法有SHA系列和MD5等算法。

哈希的用法

哈希在区块链中用处广泛,其一我们称之为哈希指针(Hash Pointer
哈希指针是指该变量的值是通过实际数据计算出来的且指向实际的数据所在位置,即其既可以表示实际数据内容又可以表示实际数据的存储位置。下图为Hash Pointer的示意图
基于区块链技术的众筹平台-毕业设计_第1张图片
HashPointer在区块链中主要有两处使用,第一个就是构建区块链数据结构。了解区块链的读者应该知道区块链数据结构由创世区块向后通过区块之间的指针进行连接,这个指针使用的就是图示的HashPointer.每个区块中都存储了前一个区块的HashPointer。这样的数据结构的好处在于后面区块可以查找前面所有区块中的信息且区块的HashPointer的计算包含了前面区块的信息从而一定程度上保证了区块链的不易篡改的特性。第二个用处在于构建Merkle Tree

加密

加密算法

对称加密
对称加密的加密解密方使用相同的秘钥,这种方式的好处在于加解密的速度快但是秘钥的安全分发比较困难,常见对称加密算法有 DES, AES,…
非对称加密
非对称加密体系也称为公钥体系,加解密时加密方拥有公钥和私钥,加密方可以将公钥发送给其他相关方,私钥严格自己保留。例如银行的颁发给个人用户的私钥就存储在个人的U盾里;非对称加密中可以通过私钥加密,他人能够使用公钥进行解密,反之亦然;非对称加密算法一般比较复杂执行时间相对对称加密较长;好处在于无秘钥分发问题。常见的其他非对称加密算法有RSA,ECC,区块链中主要使用ECC椭圆曲线算法。
对称加密与非对称加密的结合
这种方式将加密过程分为两个阶段,阶段一使用非对称加密进行秘钥的分发使得对方安全地得到对称加密的秘钥,阶段二使用对称加密对原文进行加解密。
加密的例子
基于区块链技术的众筹平台-毕业设计_第2张图片
常见加密算法对比
基于区块链技术的众筹平台-毕业设计_第3张图片

数字签名

数字签名又称之为公钥数字签名,是一种类似于写在纸上的物理签名。数字签名主要用于数据更改的签名者身份识别以及抗抵赖。数字签名包含三个重要特性:
- 只有自己可以签署自己的数字签名,但是他人可以验证签名是否是你签发
- 数字签名需要和具体的数字文档绑定,就好比现实中你的签名应该和纸质媒介绑
- 数字签名不可伪造
依赖非对称加密机制可以较容易实现上述三种特性。首先,需要生成个人的公私钥对:

(sk,pk):=generateKeys(keysize) ( 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进行签名:
sig:=sign(sk,message) s i g := s i g n ( s k , m e s s a g e )
这样就得到了具体的签名sig
最后,拥有该签名公钥的一方能够进行签名的验证:
isValid:=verify(pk,message,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一般是一个公认可信的第三方机构,其作用主要是为每个用户颁发一个独一无二的包含名称和公钥的数字证书。

你可能感兴趣的:(毕业设计)