比特币

4 04, 2018

私钥/Private key

作者:| 2018-04-04T08:36:16+00:00 4月 4th, 2018|基本术语|暂无评论

私钥在比特币的语境中,是指与一个地址(这个地址是与这个私钥相对应的公钥的哈希值)相关联的一把密钥。它存放在后台,使得你可以发送之前被发送到这个地址的比特币出去。需要留意的是,因为比特币使用的加密算法是ECDSA椭圆曲线数字签名算法,公钥和地址都可以从私钥推出。

4 04, 2018

比特币地址/Bitcoin address

作者:| 2018-04-04T08:34:57+00:00 4月 4th, 2018|基本术语|暂无评论

比特币地址是一串像“13ignD31FysQbaBBVJUzffcQoFxxEuEcbE”这样的字符串,你需要知道这个地址,才能向他人发送比特币。创建比特币地址和相对应的私钥这一操作,可以通过比特币客户端完成。

4 04, 2018

钱包/Wallet

作者:| 2018-04-04T08:33:45+00:00 4月 4th, 2018|基本术语|暂无评论

钱包有两种意思:它既可以是比特币客户端的的同义词(尽管里有稍稍的不同,“客户端”更多的是指功能全面的桌面客户端,而“钱包”则更多的用于指代轻量级的基于浏览器的在线管理服务),也可以是指一个文件,这个文件里面包含了所有者的比特币地址以及使用这些地址时所需要的相对应的私钥。

4 04, 2018

数字签名/Digital signature

作者:| 2018-04-04T08:31:28+00:00 4月 4th, 2018|密码学|暂无评论

数字签名可以被附着在一条消息后面,证明这条消息的发送者就是和某个公钥相对应的一个私钥的所有人,同时可以保证私钥的秘密性。 某人在检查签名的时候,将会使用公钥来解密被加密了的哈希值(数据通过哈希运算得到的),并检查结果是否和这条信息的哈希值相吻合。 如果信息被改动过,或者私钥是错误的话,哈希值就不会匹配。在比特币网络以外的世界,签名常常用于验证信息发送者的身份 – 人们公布他们自己的公钥,然后发送可以被公钥所验证的,已经通过私钥加密过的信息。

4 04, 2018

公钥/Public keycryptography

作者:| 2018-04-04T08:30:03+00:00 4月 4th, 2018|密码学|暂无评论

加密系统是一种加密手段,它的每一个私钥都有一个相对应的公钥,从公钥我们不能推算出私钥,并且被用其中一个密钥加密了的数据,可以被另外一个相对应的密钥解密。 这套系统使得你可以先公布一个公钥给所有人,然后所有人就可以发送加密后的信息给你,而不需要预先交换密钥。

4 04, 2018

加密算法/encryption algorithm

作者:| 2018-04-04T08:29:20+00:00 4月 4th, 2018|密码学|暂无评论

加密算法是一个函数,它使用一个加密钥匙,把一条信息转化成一串不可阅读的看似随机的字符串,这个流程也是不可逆的(也就是说获得原始信息),除非是被某个也知道那把钥匙的人来操作。加密使得私密数据通过公共的因特网传输的时候不需要冒严重的被第三方知道传输的内容的风险。

4 04, 2018

哈希/Hash

作者:| 2018-04-04T08:28:11+00:00 4月 4th, 2018|密码学|暂无评论

哈希或译作“散列”,是一种函数,它把任何数字或者字符串输入转化成一个固定长度的输出。通过输出我们不可能反向推得输入,除非尝试了所有的可能的输入值。 下面是一个简单的哈希函数的例子,平方根:17202的平方根是很容易求得的,它大概是131.15639519291463,所以一个简单的哈希函数的输出可能是输入的数字的平方根的后面几位小数,在这个例子里面就是9291463。 但是,只给出9291463的话,我们几乎不可能推算出它是哪个输入的输出。现代加密哈希比如像SHA-256,比上面这个例子要复杂的多也要安全的多。哈希这个词也用于指代这样一个函数的输出值。

4 04, 2018

结论

作者:| 2018-04-04T08:24:50+00:00 4月 4th, 2018|比特币白皮书|暂无评论

我们在此提出了一种不需要信用中介的电子支付系统。我们首先讨论了通常的电子货币的电子签名原理,虽然这种系统为所有权提供了强有力的控制,但是不足以防止双重支付。为了解决这个问题,我们提出了一种采用工作量证明机制的点对点网络来记录交易的公开信息,只要诚实的节点能够控制绝大多数的CPU计算能力,就能使得攻击者事实上难以改变交易记录。该网络的强健之处在于它结构上的简洁性。节点之间的工作大部分是彼此独立的,只需要很少的协同。每个节点都不需要明确自己的身份,由于交易信息的流动路径并无任何要求,所以只需要尽其最大努力传播即可。节点可以随时离开网络,而想重新加入网络也非常容易,因为只需要补充接收离开期间的工作量证明链条即可。节点通过自己的CPU计算力进行投票,表决他们对有效区块的确认,他们不断延长有效的区块链来表达自己的确认,并拒绝在无效的区块之后延长区块以表示拒绝。本框架包含了一个P2P电子货币系统所需要的全部规则和激励措施。

4 04, 2018

计算

作者:| 2018-04-04T08:24:10+00:00 4月 4th, 2018|比特币白皮书|暂无评论

设想如下场景:一个攻击者试图比诚实节点产生链条更快地制造替代性区块链。即便它达到了这一目的,但是整个系统也并非就此完全受制于攻击者的独断意志了,比方说凭空创造价值,或者掠夺本不属于攻击者的货币。这是因为节点将不会接受无效的交易,而诚实的节点永远不会接受一个包含了无效信息的区块。一个攻击者能做的,最多是更改他自己的交易信息,并试图拿回他刚刚付给别人的钱。 诚实链条和攻击者链条之间的竞赛,可以用二叉树随机漫步(Binomial Random Walk)来描述。成功事件定义为诚实链条延长了一个区块,使其领先性+1,而失败事件则是攻击者的链条被延长了一个区块,使得差距-1。 攻击者成功填补某一既定差距的可能性,可以近似地看做赌徒破产问题(Gambler’s Ruin problem)。假定一个赌徒拥有无限的透支信用,然后开始进行潜在次数为无穷的赌博,试图填补上自己的亏空。那么我们可以计算他填补上亏空的概率,也就是该攻击者赶上诚实链条,如下所示: 假定p>q,那么攻击成功的概率就因为区块数的增长而呈现指数化下降。由于概率是攻击者的敌人,如果他不能幸运且快速地获得成功,那么他获得成功的机会随着时间的流逝就变得愈发渺茫。那么我们考虑一个收款人需要等待多长时间,才能足够确信付款人已经难以更改交易了。我们假设付款人是一个支付攻击者,希望让收款人在一段时间内相信他已经付过款了,然后立即将支付的款项重新支付给自己。虽然收款人届时会发现这一点,但为时已晚。 收款人生成了新的一对密钥组合,然后只预留一个较短的时间将公钥发送给付款人。这将可以防止以下情况:付款人预先准备好一个区块链然后持续地对此区块进行运算,直到运气让他的区块链超越了诚实链条,方才立即执行支付。当此情形,只要交易一旦发出,攻击者就开始秘密地准备一条包含了该交易替代版本的平行链条。 然后收款人将等待交易出现在首个区块中,然后在等到z个区块链接其后。此时,他仍然不能确切知道攻击者已经进展了多少个区块,但是假设诚实区块将耗费平均预期时间以产生一个区块,那么攻击者的潜在进展就是一个泊松分布,分布的期望值为: [...]