Our website is made possible by displaying online advertisements to our visitors.
Please consider supporting us by disabling your ad blocker.

This White Paper is temporary. We are writing the final one that will be posted here. Check back when this warning is removed. Thanks for your patience.


Krypto₣ranc:法国货币的重生

1. 介绍

1999年,欧元取代法国货币:法郎。来自世界各地的人们还有3年的时间来回馈他们所有的法郎。 2002年,法郎在存在700多年后为欧元腾出空间而消失。法郎是法国文化和成功的忠实形象。 2010年,法国中央银行估计超过 40亿法郎没有归还给人民手中的流通。随着时间的推移,法郎的删除留下了苦涩的味道。虽然1999年GDP增​​长率为+ 3%,但此后从未接近这一数字。许多人认为这种牺牲是法国经济垮台和失去主权的开始。当时人们不可能改变事态,有一场前所未有的亲欧洲宣传活动,所有主流媒体和所有最有影响力的人都在推动法郎的消亡。但事情发生了变化。随着Satoshi Nakamoto的区块链技术的发明和bitCoin的兴起,拥有合适技术技能的合适团队现在可以在没有任何权威机构批准的情况下创建货币。我们是这个团队,为什么不这样做呢? Krypto₣ranc是弗朗克令人难以置信的复兴。这不是区块链领域的新技术革命,但它是一个革命性的想法:重做官僚,人民为人民,开源,自由和不可阻挡的东西!

2. 技术

为了实现这一目标,没有必要重新创建车轮。 BitCoin是世界上最受欢迎的加密货币,在Github有超过500个贡献者和超过20,000个分支,bitCoin团队改进了Satoshi的工作并定期发布改进。因此我们希望尽可能接近bitCoinKrypto₣ranc必须是一个可靠的货币,基于一个万无一失的概念,我们不会添加任何可能危及Satoshi Nakamoto工程安全的外来代码。我们将尽可能地坚持使用bitCoin核心,因此我们可以在每次升级和每个新版本之后尽可能快地沿着原始加密货币和最流行的路径升级Krypto₣ranc

简单地说,Krypto₣rancbitCoin,但具有不同的区块链,具有适合这个特定项目的不同行为,因此Krypto₣ranc成为世界上的主要货币。但区块链的技术完全相同。

Krypto₣ranc基于POW(工作证明)系统,因为您无法加强每个事务和区块链的整体安全性,而不会使解密变得困难,POW是最安全,最可靠的方法。 POW方法对于保护区块链免受攻击者至关重要,我们不会引入任何可能降低其安全性的东西。我们还希望与运行bitCoin的所有矿工和池保持兼容:Krypto₣rancbitCoin一样易于使用

美元和欧元有什么区别?他们的功能是一样的,我们可以买卖。同样的推理适用于两种区块链。真正的区别在于印刷的硬币数量和人们的接受程度。毫无疑问,与比特币相比,Krypto₣ranc将成为法郎用户的首选货币,而比特币被许多人视为纯粹的投机和实验实体。

3. 目标

Krypto₣ranc的目的是被法国政府接受为储备货币。我们认为金融体系将经历一场重大危机,黄金将无法在这种情况下拯救欧元。如果没有加密货币作为储备货币,欧元区将陷入彻底的混乱局面。当这种情况发生时,除了加密货币之外,人们无处可挽救他们的财富,它将是唯一安全的地方。法国人知道法郎和Krypto₣ranc将是他们在金融崩溃的情况下替代资金的替代选择。我们认为像法国这样的国家应该有足够的Krypto₣ranc能够从加密货币中打印纸币和硬币,这将是避免在失踪的欧元现金无法为经济提供动力的情况下出现戏剧性情况的必要措施。我们还认为,欧元区的每个国家都应该有一个双重现金系统,票据以欧元和Krypto₣ranc,bitMark,bitLire,BitPesos等流通......

4. 排放

如前所述,Krypto₣ranc区块链与bitCoin区块链不同。我们将在2019年1月1日至2022年1月1日之间发行6.55亿Krypto₣ranc。这样我们将匹配法国中央银行的资本化。然后我们将有一个通货紧缩的硬币发电,将在200年内达到总计200亿。

将在Krypto₣ranc的作者之间预先开采和共享25亿Krypto₣rancs,并用于资助维护和未来发展。 Krypto₣ranc必须获得充足的资金才能继续发展并获得长期支持。


因为我们使用的区块链技术与Satoshi Nakamoto创建的技术相同,所以这里是区块链的原始白皮书,由Google翻译成多种语言(使用下拉标记来更改语言)。


比特币:点对点电子现金系统| Satoshi Nakamoto

抽象

纯粹的点对点电子现金版本允许在线支付直接从一方发送到另一方,而无需通过金融机构。数字签名提供了解决方案的一部分,但如果仍然需要受信任的第三方来防止双重支出,则主要优势将会丢失。我们提出使用点对点网络解决双重支出问题。网络时间戳通过将它们散列到正在进行的基于散列的工作证明链中进行交易,形成一条在不重做工作量证明的情况下无法更改的记录。最长的链不仅可以作为所见事件序列的证据,而且可以证明它来自最大的CPU功率池。只要大多数CPU功率由不协作攻击网络的节点控制,它们就会产生最长链和超速攻击者。网络本身需要最小的结构。消息是在尽力而为的基础上广播的,节点可以随意离开并重新加入网络,接受最长的工作证明链作为它们消失时发生的事情的证据。

1. 介绍

互联网上的商业几乎完全依赖于作为可信第三方的金融机构来处理电子支付。尽管该系统对大多数交易运行良好,但仍然存在基于信任模型的固有弱点。完全不可逆交易实际上是不可能的,因为金融机构无法避免调解纠纷。调解成本增加了交易成本,限制了最小实际交易规模,并切断了小额临时交易的可能性,并且丧失了为不可逆服务进行不可逆转支付的能力的成本更高。由于存在逆转的可能性,对信任的需求就会扩散。商家必须警惕他们的客户,骚扰他们获取比他们原本需要的更多信息。一定比例的欺诈被认为是不可避免的。这些成本和支付的不确定性可以通过使用实物货币亲自避免,但是没有机制可以在没有可信方的情况下通过通信渠道进行支付。);?>

2. 交易

我们将电子硬币定义为数字签名链。每个所有者通过对先前交易的散列和下一个所有者的公钥进行数字签名并将这些硬币添加到硬币的末尾来将硬币转移到下一个硬币。收款人可以验证签名以验证所有权链。

问题当然是收款人无法验证其中一位业主没有花费多倍的钱。一个常见的解决方案是引入一个可信赖的中央机构或薄荷,它检查每笔交易的双重支出。在每次交易之后,必须将硬币返回薄荷以发行新硬币,并且只有直接从薄荷发出的硬币才被信任不会被双重花费。这个解决方案的问题在于,整个货币体系的命运取决于运营薄荷的公司,每笔交易都必须通过它们,就像银行一样。

我们需要一种方法让收款人知道以前的所有者没有签署任何先前的交易。就我们的目的而言,最早的交易是重要的,所以我们不关心以后的双重花费。确认没有交易的唯一方法是了解所有交易。在基于铸币的模型中,薄荷知道所有交易,并决定首先到达。为了在没有可信任方的情况下实现这一目标,必须公开宣布交易,并且我们需要一个系统,以便参与者就收到订单的单一历史记录达成一致。收款人需要证明在每次交易时,大多数节点同意它是第一次收到的。

3. 时间戳服务器

我们提出的解决方案以时间戳服务器开始。时间戳服务器的工作原理是将一个项目块的哈希值加上时间戳并广泛发布哈希值,例如在报纸或Usenet帖子中。时间戳证明当时数据必须存在,显然,为了进入哈希。每个时间戳在其散列中包含先前的时间戳,形成一个链,每个附加的时间戳加强它之前的时间戳。

4. 验证的工作

要在点对点的基础上实现分布式时间戳服务器,我们需要使用类似于Adam Back的Hashcash的工作量证明系统,而不是报纸或Usenet帖子。工作量证明涉及扫描一个值,当进行散列时,例如使用SHA-256,散列以多个零位开始。所需的平均工作量是所需的零位数的指数,并且可以通过执行单个散列来验证。

对于我们的时间戳网络,我们通过递增块中的随机数来实现工作量证明,直到找到给块的散列提供所需零位的值。一旦花费了CPU工作量使其满足工作量证明,就不能在不重做工作的情况下更改块。由于后面的块被链接在其后,更改块的工作将包括重做之后的所有块。

工作量证明还解决了确定多数决策中的表示的问题。如果大多数是基于一个IP地址一票,那么任何能够分配许多IP的人都可能会破坏它。工作证明基本上是单CPU一票。多数决策由最长的链表示,其中投入的工作量最大。如果大部分CPU功率由诚实节点控制,那么诚实链将增长最快并超过任何竞争链。要修改过去的块,攻击者必须重做块的工作证明以及之后的所有块,然后赶上并超越诚实节点的工作。我们稍后会说明,随着后续块的添加,攻击速度慢的追赶者的概率会呈指数级递减。

为了补偿随着时间推移而增加的硬件速度和对运行节点的不同兴趣,工作量证明难度由针对每小时平均块数的移动平均值确定。如果它们生成得太快,则难度会增加。

5. 网络

运行网络的步骤如下:

  1. 新事务将广播到所有节点。
  2. 每个节点都将新事务收集到一个块中。
  3. 每个节点都在为其块查找困难的工作证明。
  4. 当节点找到工作证明时,它会将块广播到所有节点。
  5. 仅当节点中的所有事务都有效且尚未使用时,节点才接受该块。
  6. 节点通过使用接受块的散列作为前一个散列来创建链中的下一个块来表示它们对块的接受。

节点始终认为最长的链是正确的,并将继续努力扩展它。如果两个节点同时广播下一个块的不同版本,则一些节点可以首先接收一个或另一个节点。在这种情况下,他们在他们收到的第一个工作,但保存另一个分支,以防它变得更长。当找到下一个工作证明并且一个分支变长时,将打破平局;然后,在另一个分支上工作的节点将切换到较长的节点。

新的交易广播不一定需要到达所有节点。只要它们到达许多节点,它们就会很快进入一个块。块广播也容忍丢弃的消息。如果一个节点没有收到一个块,它会在收到下一个块时请求它,并意识到它丢失了一个块。

6. 激励

按照惯例,块中的第一个事务是一个特殊事务,它启动块的创建者拥有的新硬币。这增加了节点支持网络的激励,并提供了一种初步将硬币分配到流通中的方法,因为没有中央授权来发布它们。稳定增加一定数量的新硬币类似于黄金矿工花费资源为循环增加黄金。在我们的例子中,它耗费了CPU时间和电力。

奖励也可以通过交易费来获得资金。如果交易的输出值小于其输入值,则差值是添加到包含交易的块的激励值的交易费用。一旦预定数量的硬币进入流通,激励就可以完全转换为交易费用并且完全没有通货膨胀。

激励措施可能有助于鼓励节点保持诚实。如果贪婪的攻击者能够比所有诚实的节点组装更多的CPU能力,他将不得不选择使用它来通过窃取他的付款来欺骗人们,或者使用它来生成新的硬币。他应该发现遵守规则更有利可图,这些规则比其他人合并更多的新硬币,而不是破坏系统和他自己财富的有效性。

7. 回收磁盘空间

一旦硬币中的最新事务被埋在足够的块下,就可以丢弃之前用完的事务以节省磁盘空间。为了在不破坏块的散列的情况下实现这一点,在Merkle树中对事务进行散列,只有根包含在块的散列中。然后可以通过截断树的分支来压缩旧块。内部哈希不需要存储。

没有事务的块头大约是80个字节。如果我们假设每10分钟生成一个块,则每年80字节* 6 * 24 * 365 = 4.2MB。由于计算机系统通常在2008年销售2GB内存,而摩尔定律预测当前每年增长1.2GB,即使块头必须保存在内存中,存储也不应成为问题。

8. 简化的付款验证

无需运行完整的网络节点即可验证付款。用户只需要保留最长工作证明链的块头的副本,他可以通过查询网络节点获得它,直到他确信他拥有最长的链,并获得将事务链接到的Merkle分支。它没有时间戳的块。他不能自己检查交易,但是通过将它链接到链中的某个地方,他可以看到网络节点已经接受了它,并且在它进一步确认网络有之后添加了块。接受了它。

因此,只要诚实节点控制网络,验证就是可靠的,但如果网络被攻击者制服,则验证更容易受到攻击。虽然网络节点可以自己验证事务,但只要攻击者可以继续压制网络,攻击者的伪造事务就会欺骗简化的方法。防止这种情况的一种策略是在检测到无效块时接受来自网络节点的警报,提示用户的软件下载完整块并警告事务以确认不一致。频繁付款的企业可能仍希望运行自己的节点,以获得更加独立的安全性和更快的验证。

9. 结合和分裂价值

虽然单独处理硬币是可能的,但是对于转移中的每一分钱进行单独的交易是不方便的。为了允许拆分和组合值,事务包含多个输入和输出。通常会有来自较大的先前交易的单个输入或组合较小金额的多个输入,并且最多两个输出:一个用于支付,一个将更改(如果有的话)返回给发送者。

应该注意的是,扇出,交易依赖于多个交易,而这些交易依赖于更多,这不是问题。永远不需要提取事务历史的完整独立副本。

10. 隐私

传统的银行模式通过限制对相关方和可信第三方的信息访问来实现一定程度的隐私。公开发布所有交易的必要性排除了这种方法,但仍可以通过打破另一个地方的信息流来维护隐私:通过匿名保持公钥。公众可以看到有人向其他人发送金额,但没有信息将交易与任何人联系起来。这类似于证券交易所发布的信息水平,其中个人交易的时间和规模,即“磁带”,是公开的,但没有说明当事人是谁。

作为附加防火墙,应为每个事务使用新密钥对,以防止它们与公共所有者链接。对于多输入交易,某些链接仍然是不可避免的,这必然表明他们的输入由同一所有者拥有。风险在于,如果密钥的所有者被泄露,则链接可以揭示属于同一所有者的其他交易。

11. 计算

我们考虑攻击者试图比诚实链更快地生成替代链的情景。即使这已经完成,它也不会使系统向任意变化开放,例如凭空创造价值或从不属于攻击者的钱。节点不会接受无效的交易作为付款,诚实的节点永远不会接受包含它们的块。攻击者只能尝试更改自己的一笔交易以收回他最近花的钱。

诚实链和攻击链之间的竞争可以表征为二项式随机游走。成功事件是诚实链被延长一个区块,其领先优势增加+1,而失败事件是攻击者链被延长一个区块,将差距缩小-1。

攻击者从特定赤字中赶上的可能性类似于赌徒的破产问题。假设一个拥有无限信用的赌徒开始出现赤字并且可能会进行无数次试验以试图达到盈亏平衡。我们可以计算他达到盈亏平衡的概率,或者攻击者追赶诚实链的概率,如下所示[8]:

p= probability an honest node finds the next blockq= probability the attacker finds the next blockqz= probability the attacker will ever catch up from z blocks behind

qz={1ifpq(q/p)zifp>q}

鉴于我们的假设 p>q, 随着攻击者必须赶上的数量增加,概率呈指数下降。如果他在早期没有幸运的冲刺,他的机会变得越来越小,因为他落后了。

我们现在考虑新事务的接收者需要等待多长时间才能充分确定发件人无法更改事务。我们假设发件人是一名攻击者,他希望让收件人相信他付了一段时间,然后在一段时间过后将其切换回自己。接收器会在发生这种情况时收到警报,但发件人希望为时已晚。

接收方生成新密钥对,并在签署前不久将公钥提供给发件人。这可以防止发送者提前准备一系列的块,通过持续工作直到他有幸到达足够远,然后在那一刻执行交易。一旦发送了交易,不诚实的发件人就会在包含其交易的备用版本的并行链上开始秘密工作。

The recipient waits until the transaction has been added to a block and z 块之后已经链接了。他并不知道攻击者所取得的确切进展,但假设诚实的区块占用了每个区块的平均预期时间,攻击者的潜在进展将是具有预期值的泊松分布:

λ=zqp

为了获得攻击者现在仍然能够赶上的概率,我们将泊松密度乘以他可以从该点赶上的概率所取得的每一个进展量:

k=0λkeλk!{(q/p)(zk)ifkz1ifk>z}

重新排列,以避免总结分布的无限尾...

1k=0zλkeλk!(1(q/p)(zk))

转换为C代码......

#include 
double AttackerSuccessProbability(double q, int z)
{
	double p = 1.0 - q;
	double lambda = z * (q / p);
	double sum = 1.0;
	int i, k;
	for (k = 0; k <= z; k++)
	{
		double poisson = exp(-lambda);
		for (i = 1; i <= k; i++)
			poisson *= lambda / i;
		sum -= poisson * (1 - pow(q / p, z - k));
	}
	return sum;
}
			

运行一些结果,我们可以看到概率随指数下降z

q=0.1
z=0    P=1.0000000
z=1    P=0.2045873
z=2    P=0.0509779
z=3    P=0.0131722
z=4    P=0.0034552
z=5    P=0.0009137
z=6    P=0.0002428
z=7    P=0.0000647
z=8    P=0.0000173
z=9    P=0.0000046
z=10   P=0.0000012

q=0.3
z=0    P=1.0000000
z=5    P=0.1773523
z=10   P=0.0416605
z=15   P=0.0101008
z=20   P=0.0024804
z=25   P=0.0006132
z=30   P=0.0001522
z=35   P=0.0000379
z=40   P=0.0000095
z=45   P=0.0000024
z=50   P=0.0000006
			

求解P小于0.1%......

P < 0.001
q=0.10   z=5
q=0.15   z=8
q=0.20   z=11
q=0.25   z=15
q=0.30   z=24
q=0.35   z=41
q=0.40   z=89
q=0.45   z=340
			

12. 结论

我们提出了一种不依赖信任的电子交易系统。我们从通常的数字签名框架开始,它提供了对所有权的强有力控制,但是如果没有防止双重支出的方法则是不完整的。为了解决这个问题,我们提出了一种使用工作量证明来记录事务公共历史的点对点网络,如果诚实节点控制大部分CPU能力,攻击者很快就会变得计算不切实际。该网络结构简单,结构简单。节点一次完成,几乎没有协调。它们不需要被识别,因为消息不会被路由到任何特定的地方,只需要尽力而为。节点可以随意离开并重新加入网络,接受工作证明链作为他们离开时发生的事情的证据。他们用他们的CPU权力进行投票,表达他们对有效块的接受,通过扩展它们并拒绝对它们进行处理来拒绝无效块。任何所需的规则和激励措施都可以通过这种共识机制来实施。

References

  1. W. Dai, "b-money," http://www.weidai.com/bmoney.txt, 1998. 
  2. H. Massias, X.S. Avila, and J.-J. Quisquater, "Design of a secure timestamping service with minimal trust requirements," In 20th Symposium on Information Theory in the Benelux, May 1999.  
  3. S. Haber, W.S. Stornetta, "How to time-stamp a digital document," In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. 
  4. D. Bayer, S. Haber, W.S. Stornetta, "Improving the efficiency and reliability of digital time-stamping," In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. 
  5. S. Haber, W.S. Stornetta, "Secure names for bit-strings," In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997.  
  6. A. Back, "Hashcash - a denial of service counter-measure," http://www.hashcash.org/papers/hashcash.pdf, 2002. 
  7. R.C. Merkle, "Protocols for public key cryptosystems," In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. 
  8. W. Feller, "An introduction to probability theory and its applications," 1957.