电子货币的历史

eCash

ecash提出了盲签的概念。

盲签是一种特殊类型的数字签名。一般数字签名中,签名者知道所签署的消息内容。而在盲签中,签名者是他人(接收者)发来的信息进行签名,接收者首先对原始信息进行盲化,然后发送给签名者;签名者对盲化后的信息进行签名;接收者可以对这个签名后的数据去盲化,最终得到签名者关于原始信息的正确签名。

eCash系统需要有中心银行系统,用户在银行中有存款,可以向银行提取电子货币。为了防止银行系统追踪电子货币的使用情况,可以用户的隐私情况,使用盲签名。分为取款、支付和兑现过程。

取款过程

  1. U(User,用户)用身份认证协议向B(bank,银行)证明身份

  2. U将N份电子现金文件m(内含金额100元、用户ID及唯一的随机数等信息)用不同的盲因子盲化后交给B;(唯一的随机数相当于是现金货币中的编号;)

  3. B随机选择一部分(如:N-1个)文件,向U索要盲因子,恢复出文件(去盲),审查内容是否符合要求,如是否所有的文件中都是100元

  4. 如果审查通过,B从未审查的文件中任取一份盲签名,并发给U,从U的帐户中减去相应金额;否则协议终止;(这样,虽然银行对B的100元货币进行了签名,也就是担保,但是银行并不确定B所拥有的货币编号是哪一个,从而无法对用户的消费行为进行跟踪

  5. U对收到的签名文件去盲,得到电子现金(这个电子现金可以像现金一样使用;而且银行不能追踪;但是用户可以自己保存并记录,以在特殊情况下,证明这张钞票的去向,譬如贿赂等犯罪场景)。

支付

  1. U与C交易时,把电子现金交给C

  2. C验证B的签名,如是伪造的,则拒收;否则进一步检测用户(可选),通过后接受电子现金,提供等价的服务。

存款

  1. C向B递交电子现金和帐户信息

  2. B验证签名,若是伪造的,则拒收;否则查询数据库是否有相同的签名(防止重复使用电子现金),若找到则C或U重用电子现金,拒收;否则接受,在C的帐户中加上相应金额,在数据库中添加签名。

HashCash

哈希现金(Hashcash)是一种用于防止垃圾电子邮件和拒绝服务攻击的工作量证明系统,最近以其在比特币(以及其他加密货币)挖矿算法中的应用而闻名。

HashCash的主要思路是,通过要求在邮件发送之前,必须进行计算。

譬如,通过对一封电子邮件进行哈希得到指定的包含一些字符串的散列值,证明为了发送邮件,计算机确实花费了一些时间或能量在特定的算法上,从而“证明”这是合法的邮件。**一个实例方法是计算SHA-1散列,使得散列值的前20位为0。**因为需要一定的计算时间来通过暴力计算找到这样一个合格的散列值,所以邮件发送者需要花费一些成本来计算散列值。譬如每发送一封邮件,计算机需要花费几秒钟来得到一个满足条件的散列值,对于一天仅发送数封邮件的普通用户而言,这个代价是可以接受的;从而限制了能够发送的电子邮件的数量。

Adam Back描述这个系统的优点时说“使用部分哈希的想法是它们可以被任意地设置为昂贵的计算成本,但是可以对其立即进行验证。

标题包含收件人的电子邮件地址、邮件的日期以及证明已执行所需计算的信息。 收件人电子邮件地址的存在要求为每个收件人计算不同的标头。 日期使得收件人记录最近收到的标题,并确保标题对电子邮件是唯一的。

发送方的具体的操作:

发送方准备标题头并附加上初始化为随机数的计数器值(counter)。**然后它计算头的160位SHA-1哈希值。如果散列的前20位(即5个最高有效十六进制数字)都是零,那么这是可接受的标题头。**如果不是,则发送方递增计数器并再次尝试散列。在2^160 个可能的散列值中,有2^140 个散列值满足此标准。因此,随机选择将具有20个零作为散列开头的标题的机会是2^20 分之一(2^20 大约10^6 ,或大约百万分之一)。发送者需要尝试以获取有效哈希值的次数符合几何分布模型。因此,发送方平均必须尝试2^20 个值才能找到有效的标题头。如果合理估计计算哈希所需的时间,则需要大约一秒钟才能找到。没有比这种暴力破解方法更有效的方法来找到有效的标题头。

普通用户不会因生成Hashcash字符串所需的处理时间而感到明显的问题。但是,垃圾邮件发送者因为发送大量垃圾邮件,会大大减慢速度。

接收者的具体操作:

  1. SHA-1哈希值(例如,“1:20:060408:adam@cypherspace.org :: 1QTjaYd7niiQA / sc:ePa”)。这在1 GHz机器上大约需要2微秒,远远少于接收其余电子邮件所需的时间。如果前20位不全为零,则散列无效。 (随着机器处理速度的提高,以后的版本可能需要更多的位为零。)

  2. 收件人的计算机检查标题中的日期(例如,“060408”,表示2006年4月8日的日期)。如果不在当前日期的两天内,则无效。 (两天的窗口可以补偿不同系统之间的时钟偏差和网络路由时间。)

  3. 收件人的计算机检查哈希字符串中的电子邮件地址是否与收件人注册的任何有效电子邮件地址匹配,或者与收件人订阅的任何邮件列表匹配。如果未找到匹配项,则哈希字符串无效。

  4. 收件人的计算机将哈希字符串插入数据库。如果字符串已经在数据库中(表示正在尝试重新使用哈希字符串),则该字符串无效。

如果散列字符串通过所有这些测试,则认为它是有效的散列字符串。所有这些测试所花费的时间和磁盘空间远远少于接收电子邮件的正文内容。

B-money

B-money中提出了公共账簿和使用公钥作为身份标识的方法,交易通过网络向所有节点进行广播。

B-money 是首个面向去中心化设计的数字货币。

在B-Money的想法中,Wei提出了两个协议。

在第一个协议中,每个用户都维护一个数据库**(因为每个人都拥有一份数据库,所以中心机构被移除了)**,数据库中记录每一个假名(用户的公钥)中有多少钱。这些信息构成了一个帐簿,重点就是如何更新这些帐簿。

  1. **创建钱。**每个用户可以通过广播对以前未解决的计算问题的答案来获得钱。这样的计算的条件是必须很容易确定解决这个问题所需要的算力,解题所获得的钱与所付出的算力换算成一篮子货物的价值相等。例如,如果一道题在最经济的的情况下花了100小时的算力,而市场上需要花3篮子的货物来购买这100小时的算力,那么解开这道题产生的货币是3个单位。

  2. **转账。**如果Alice(公钥A,K_A)决定向Bob(公钥B,K_B)转X单位的钱,那么她发送一条广播消息”我将给K_B X单位的钱“。在广播了这个消息后,系统中的每个用户将K_A用户中的钱扣除X单位;同时将B账户增加X单位。(除非会导致A用户为负)

这一步补充解释:

如果Alice和Bob都是都是b-money的用户,那么他们都拥有公私钥对。在非对称密码体系中,公钥是公开的,所有人可见。公钥加密,私钥签名。在所有用户共同维护的账簿中,他们的公钥代表他们的身份。

加入Alice决定向Bob发2个单位的钱,**那么Alice就会广播用自己的私钥签名的消息“从K_A发送2个单位的钱到K_B。”**这条签名的信息向所有b-money用户证明,公钥A的主人想要将2个单位钱发送给公钥B。因此所有人都会更新他们的账簿。

  1. 合同的影响。有效合同必须包括最大赔偿,以防每个参与方违约。它还应包括一个在发生争议时将进行仲裁的一方。合同的所有各方(包括仲裁员)必须在其生效之前广播其签名。在合同和所有签名的广播之后,每个参与者以其最高赔偿金额借记每一方的账户,并将由合同的安全散列标识的特殊账户记入最大赔偿金额。【也即保存到安全账户】如果每方的借记成功而没有产生负余额,则合同生效,否则合同将被忽略,账户将被回滚。示例合同可能如下所示:

K_A同意在0:0:0 1/1/2000之前向K_B发送问题P的解。 K_B同意在0:0:0 1/1/2000之前支付K_A 100 MU(货币单位)。 K_C同意在发生争议时进行仲裁。 K_A同意在违约的情况下支付最多1000 MU。 K_B同意在违约的情况下支付最多200 MU。 K_C同意在违约的情况下支付最多500 MU。

  1. 签订合同。如果合同无争议地结束,则各方广播一条签名消息“与SHA-1哈希H签订的合同无需赔偿即可结束”。或者可能“与SHA-1哈希H的合同以下列赔偿结束:…”在所有签名的广播中,每个参与者按其最高赔偿金额计入每一方的账户,删除合同账户,然后如果存在,则根据赔偿计划对每一方的账户进行贷记或借记。

  2. 执行合同。如果合同当事方即使在仲裁员的帮助下也无法就适当的结论达成一致,则每一方都会广播建议的赔偿/罚款时间表以及任何有利于他的论据或证据。每个参与者确定实际的赔偿和/或罚款,并相应地修改他的账户。

DAi Wei自己提出,这个方案是不可行的,因为它依赖于同步的无阻塞的网络——也即,当Alice发给Bob两个单位的钱之后,如果她立刻又发出一条Alice发给Carol两个单位的钱的消息,那么所有人都能按照顺序接收到这两条消息。而不会出现部分人先收到Bob的消息,部分人先收到Carol的消息,(假设Alice只有两个单位的钱,那么第二条消息不会得到执行),从而造成分布式账本不一致的问题。

为了解决这个问题,Dai Wei提出了另一种方案,提出了部分机器担任服务器,由服务器来保管帐簿的概念。而参与交易的用户需要向随机多个服务器查询,保证信息成功执行。

B-money的一个特点是,非常坚定地将稳定币价。在这个系统中,货币的总量没有限制,同时和现实中的一篮子的货物的价格相关联。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值