打字猴:1.703864738e+09
1703864738 区块链技术驱动金融:数字货币与智能合约技术 [:1703863910]
1703864739 区块链技术驱动金融:数字货币与智能合约技术 1.4 公钥即身份
1703864740
1703864741 让我们来看一下与数字签名并行的一个有用技巧,基本想法是从数字签名模式中拿出一个公共验证密钥,并将其与一个人或一个系统参与者的身份对等。如果你见到一条消息的签名被公钥pk正确验证,那么你可以认为pk就是在表达这条消息。你真的可以将公钥认为是参与者或者系统的一方,他可以通过签署声明而发布声明。从这个角度来说,公钥就是身份,让某人能为pk身份发声,他必须知道相应的密钥sk。
1703864742
1703864743 将公钥视为身份的一个结果是,你可以随时制定新的身份——你可以简单通过数字签名方案中的generateKeys程序,生成新的密钥对sk和pk。pk是你可以使用的新的公共身份,sk是相应的密钥,只有你自己知道并可以让你代表身份为pk发声。在实践中,你可能会使用pk的哈希作为你的身份,这是因为公钥很大。如果是这样的话,为了验证消息来自你的身份,人们会需要验证:(1)你的身份确实是pk的哈希;(2)信息能经过公钥pk验证。
1703864744
1703864745 此外,在默认情况下,你的公钥pk基本上看起来是随机的,也并没有人能够通过检查pk发现你的现实身份(当然,一旦你开始使用这个身份发表声明,这些声明可能泄露信息,而让别人将你的真实身份与pk联系起来。我们很快会更详细地讨论这个问题)。你可以生成一个看起来随机的新身份,看起来像人群中的一张脸,但这些都只有你能够控制。
1703864746
1703864747 去中心化身份管理
1703864748
1703864749 公钥和私钥的体系,帮助我们引入去中心化的身份管理的理念。你可以自己作为用户注册,而无须到一个中央机构注册为系统用户。你不需要别人给你一个用户名,你也不需要告诉任何人你会使用什么名字。如果你想要新的身份,可以随时生成一个,而且想要多少就生成多少。如果你希望拥有五个不同的名字,没有问题!那就生成五个身份。如果你想匿名一阵子,你可以生成一个新的身份,使用一段时间,然后弃之不用。有了去中心化身份管理,所有这一切都变得可能。事实上,这就是比特币对待身份的方式。这些身份在比特币语言中被称为地址。你可以常常听到地址这个词,用于比特币或加密货币相关的内容中,而地址其实就是公钥的哈希值。作为去中心化身份管理方案的一部分,它就是某人凭空捏造的一个身份而已。
1703864750
1703864751
1703864752 安全性与随机性
1703864753
1703864754 你可以不经过中央机构而生成一个身份的概念可能看起来有悖常理。毕竟,如果有人刚好就生成了跟你一样的密钥,他不就能偷走你的比特币吗?
1703864755
1703864756 我们给你的回答是,别人生成一个与你的相同256位密钥的概率如此之小,在实践中,我们不需要担心它会发生。总而言之,我们保证这种情况绝不会发生。
1703864757
1703864758 一般来说,与新手的直觉不同的是,概率系统是不可预测且难以推理的,反面的常常是真的——统计学理论使得我们可以精确地量化我们感兴趣的事件的概率,并对该系统行为做出自信的推论。
1703864759
1703864760 但还有一个精妙之处:概率保证只有在密钥为随机产生时为真。在现实系统中,随机的生成常常是薄弱环节。如果两个用户的电脑使用同样的随机来源或者使用可预测的随机,那么理论保证不再适用。所以,在生成密钥时使用良好随机源至关重要,以确保实践保证与理论保证相符。
1703864761
1703864762 乍一看,去中心化身份管理可能极具匿名性及隐秘性。毕竟,你可以自己创建一个看起来很随机的身份,同时也不用告诉任何人你的真实身份是什么。但事实并不是这么简单,随着时间的推移,你创建的身份会做出一系列的声明。人们看到这些声明便知道拥有这个身份的人做出了特定的一系列行为。他们能够开始将细节联系起来,从这一系列的行为推断出你的真实身份。随着时间的推移,一个观察者可以将这些事情联系起来,并推断出这样的结论:“天,这个人的行为好像乔(Joe),可能这个人就是乔。”
1703864763
1703864764 换句话说,在比特币系统中,你不需要明确地注册或揭露你的真实身份,但是你的行为模式本身可能是可识别的。这就是比特币等加密货币的基本隐秘性问题,我们将会在第6章专门讨论这个问题。
1703864765
1703864766
1703864767
1703864768
1703864769 区块链技术驱动金融:数字货币与智能合约技术 [:1703863911]
1703864770 区块链技术驱动金融:数字货币与智能合约技术 1.5 两种简单的加密货币
1703864771
1703864772 现在,让我们从密码术过渡到加密货币。我们之前的密码术干货在这里就要开始发挥作用了,今后我们会逐渐看到各部分之间如何相互联系,也会发现哈希函数和数字签名等密码程序的意义。在本节,我们将讨论两种很简单的加密货币。当然,我们也需要学习本书后面大量的内容,才能深刻阐释比特币本身的运作机制。
1703864773
1703864774 高飞币
1703864775
1703864776 第一个是高飞币(GoofyCoin,此币的创造者叫高飞),它应该是我们能想到的最简单的加密货币。高飞币只有两个规则,第一个规则是指定高飞可以随时创建新币,且这些新创建的币都属于他。
1703864777
1703864778 为创建新币,高飞生成一个他之前从未生成的唯一的货币编号(uniqueCoinID),并建立字符串“CreateCoin [uniqueCoinID]”。然后,他使用秘密签署密钥计算这个字符串的数字签名,该字符串与高飞的签名就构成一单位币。任何人都可以验证该新币包含高飞有效签名,因此该新币为有效币。
1703864779
1703864780 高飞币的第二个规则是,拥有此币的人可以将其转给其他人。转移一只币不是简单地将币数据结构发送给接受者,而是必须通过密码程序来完成。
1703864781
1703864782 假设高飞想把他创建的一只币转给爱丽丝。未达成这个目的,他需要创建一个新的声明表示“将此币支付给爱丽丝”,在此声明中“此币”就是该币的哈希指针。如上所述,身份其实就是公钥,因此“爱丽丝”指的就是爱丽丝的公钥。最后,高飞签署代表该声明的字符串。因为高飞是起初拥有该币的人,他必须签署花掉该币的任何交易。一旦由高飞签署的代表他的交易的这个数据结构存在,爱丽丝便拥有这个币。她可以向任何人证明她拥有这个币,因为她可以展示有高飞有效签名的数据结构。此外,它也指向曾经为高飞所有的一个有效币。因此,该币的有效性及所有权在系统中就不言自明了。
1703864783
1703864784 一旦爱丽丝拥有了这个币,她也可以花掉它。为达到这个目的,她创建了一个声明表示“将这个币付给鲍勃的公钥”,此时“这个币”就是她所有的那个币的哈希指针。当然,爱丽丝要签署该声明。任何看到这个币的人都可以验证鲍勃是其所有人。他们可以根据哈希指针链追溯到该币的创建及验证每一个步骤,这就是其合法所有人签署了一份声明表示“将这个币支付给[新的所有人]”,详见图1.10。
1703864785
1703864786
1703864787
[ 上一页 ]  [ :1.703864738e+09 ]  [ 下一页 ]