基于比特币的新型电子支付货币
2015-12-09 13:56
288 查看
比特币的新型电子支付货币
当前的电子加密货币如比特币等,其结构主要为去中心化分布式的块链结构的交易系统,通过工作证明(proofs-of-work)产生货币供应。然而这种结构会造成大量的运算浪费和低吞吐率。同时,比特币是脱离于政府和国家的,我们希望建立一种以政府提供信用的,接受政府监管的电子货币。
参照比特币的运作模式,我们设计了一种中央式的电子加密货币:菲特币。菲特币是基于块链的新型网络货币。这使得比特币技术易于获取,用于买卖商品、给组织或个人汇款。菲特币和比特币一样,可以在货币交易所购买、出售,以及与其他币种进行兑换。
和比特币类似,菲特币的密钥通常存储在每个用户的计算机的数字钱包里。每一笔交易都需用密钥解密,这是使用菲特币的唯一先决条件,它完完全全掌握在每个用户的手中。
传统比特币的发行总量是有限的(2100万个),而菲特币的发行可以通过中央银行的控制保证其流入市场是持续并可控制的,保证菲特币市值的稳定。
我们设计了三种角色:
Bank 中央银行,负责货币的发行,对支付机构的监管。
Issuer:支付机构,负责验证交易请求,维护并生成块链。
User:菲特币的使用者,通过菲特币钱包(Wallet)进行交易。
![](http://images2015.cnblogs.com/blog/688117/201512/688117-20151209135834996-1386967919.png)
角色的数据结构:
![](http://images2015.cnblogs.com/blog/688117/201512/688117-20151209135932840-1647447708.png)
相比于比特币的单一块链结构,菲特币使用了双层块链:LowerLevelBlock 与 HigherLevelBlock以提升交易速度
其中LowerLevelBlock由Issuer产生,包括了一组User提交的交易请求(Payment Request),这些请求包含了交易双方的地址及交易验证信息。未确认的交易存放在Issuer的Payment Pool中,已确认的交易会被Issuer生成LowerLevelBlock,生成Block的周期为Epoch。
HigherLevelBlock由Bank产生,包括了一组Issuer提交的LowerLevelBlock,Bank会从LowerLevelBlockPool中取出Block,对Block进行确认与对账操作,经过确认的Block会被生成HigherLevelBlock存储到数据库中。
工作机制:
![](http://images2015.cnblogs.com/blog/688117/201512/688117-20151209140034136-110157807.png)
用户在Wallet中发起一笔交易请求,POST请求到达server端后,调用api将待验证的交易请求放入交易池中,在Issuer(支付机构)中会定时从交易池中取交易并完成验证,验证后的交易会被放入Block中,生成LowerLevelBlock。
每生成一个LowerLevelBlock,Issuer会发送一个POST请求将Block发送给Bank,并放入Bank的待验证队列中,Bank定时从队列中取得LowerLevelBlock,确认后生成HigherLevelBlock,并将HigherLevelBlock放入DB中,整个的块链(BlockChain)的生成过程完成。
钱包客户端:
Wallet的设计借鉴了Bitcoin Core的操作方式,用户使用的主要功能为:查看交易历史,提交交易请求(付款),新建菲特币账户地址(收款)
其中首页(查看交易历史):
![](http://images2015.cnblogs.com/blog/688117/201512/688117-20151209140909402-1886811844.png)
提交交易请求(付款):
![](http://images2015.cnblogs.com/blog/688117/201512/688117-20151209140924293-1103761330.png)
新建账户地址(收款):
当前的电子加密货币如比特币等,其结构主要为去中心化分布式的块链结构的交易系统,通过工作证明(proofs-of-work)产生货币供应。然而这种结构会造成大量的运算浪费和低吞吐率。同时,比特币是脱离于政府和国家的,我们希望建立一种以政府提供信用的,接受政府监管的电子货币。
参照比特币的运作模式,我们设计了一种中央式的电子加密货币:菲特币。菲特币是基于块链的新型网络货币。这使得比特币技术易于获取,用于买卖商品、给组织或个人汇款。菲特币和比特币一样,可以在货币交易所购买、出售,以及与其他币种进行兑换。
和比特币类似,菲特币的密钥通常存储在每个用户的计算机的数字钱包里。每一笔交易都需用密钥解密,这是使用菲特币的唯一先决条件,它完完全全掌握在每个用户的手中。
传统比特币的发行总量是有限的(2100万个),而菲特币的发行可以通过中央银行的控制保证其流入市场是持续并可控制的,保证菲特币市值的稳定。
我们设计了三种角色:
Bank 中央银行,负责货币的发行,对支付机构的监管。
Issuer:支付机构,负责验证交易请求,维护并生成块链。
User:菲特币的使用者,通过菲特币钱包(Wallet)进行交易。
![](http://images2015.cnblogs.com/blog/688117/201512/688117-20151209135834996-1386967919.png)
角色的数据结构:
![](http://images2015.cnblogs.com/blog/688117/201512/688117-20151209135932840-1647447708.png)
相比于比特币的单一块链结构,菲特币使用了双层块链:LowerLevelBlock 与 HigherLevelBlock以提升交易速度
其中LowerLevelBlock由Issuer产生,包括了一组User提交的交易请求(Payment Request),这些请求包含了交易双方的地址及交易验证信息。未确认的交易存放在Issuer的Payment Pool中,已确认的交易会被Issuer生成LowerLevelBlock,生成Block的周期为Epoch。
HigherLevelBlock由Bank产生,包括了一组Issuer提交的LowerLevelBlock,Bank会从LowerLevelBlockPool中取出Block,对Block进行确认与对账操作,经过确认的Block会被生成HigherLevelBlock存储到数据库中。
工作机制:
![](http://images2015.cnblogs.com/blog/688117/201512/688117-20151209140034136-110157807.png)
用户在Wallet中发起一笔交易请求,POST请求到达server端后,调用api将待验证的交易请求放入交易池中,在Issuer(支付机构)中会定时从交易池中取交易并完成验证,验证后的交易会被放入Block中,生成LowerLevelBlock。
每生成一个LowerLevelBlock,Issuer会发送一个POST请求将Block发送给Bank,并放入Bank的待验证队列中,Bank定时从队列中取得LowerLevelBlock,确认后生成HigherLevelBlock,并将HigherLevelBlock放入DB中,整个的块链(BlockChain)的生成过程完成。
钱包客户端:
Wallet的设计借鉴了Bitcoin Core的操作方式,用户使用的主要功能为:查看交易历史,提交交易请求(付款),新建菲特币账户地址(收款)
其中首页(查看交易历史):
![](http://images2015.cnblogs.com/blog/688117/201512/688117-20151209140909402-1886811844.png)
提交交易请求(付款):
![](http://images2015.cnblogs.com/blog/688117/201512/688117-20151209140924293-1103761330.png)
新建账户地址(收款):
![](http://images2015.cnblogs.com/blog/688117/201512/688117-20151209140934418-1307223409.png)
相关文章推荐
- 完成点击×出现对话框功能
- Java学习笔记----面对对象
- 快速上手的XMind导图软件
- LightOJ 1068 - Investigation(数位DP)
- 二维矩阵的一维访问方式
- 小软件神器集合(不定期更新)
- Android——图片压缩
- 中软国际Java程序员笔试题
- java 设置特定时间
- android 开发中需要注意内存泄露的地方
- STM32 FSMC总线与TFT8080接口对接分析
- js无限级树菜单
- Maven简介(六)——Dependency
- 覆盖的理解
- Android-Androidstudio集成git开发环境
- uboot向kernel的传参机制——bootm与tags
- ActiveMQ基于zookeeper+leveldb主从配置
- sicily 1007. To and Fro(破译密码)
- 便捷访问KMA天气图
- Android layout_margin 无效的解决办法