比特币的运行机制是怎样的?

比特币的运行机制是怎样的?

aisen 管理员 船龄 9.9年 来源
 45465  5

简介


Alice跟Bob离的很远,她想买Bob的羊驼袜子。作为回报,她想付给Bob一美元。一元钞票只是一片纸,非常容易制作(对于那些能够制造的人),但是在现实生活中被人们接受用来交换有价值的产品和服务,比如Alice想买的袜子。Alice能够做的简单事情就是把一美元放进信封邮寄给Bob,然后等待Bob把袜子寄给她。
另外一种方法是Alice把钱“电汇”给Bob。要做到这些,首先她把她的钞票给一个叫银行的组织,银行负责安全的保存Alice的钞票,然后返回Alice一个书写的承诺(被称作银行结单)。任何时候,只要她愿意,她能够到银行取回她保存在银行的相同数量的钞票。因为这些钱仍然属于Alice,她有资格用这些钱来做她想做的任何事,另外银行(像大部分银行)会收取一小笔费用,作为把钞票转给Bob的服务费。银行可以派一个人拿着Alice的钞票(或者换成了崭新的钞票,如果Alice的钞票比较破旧)到Bob家里交给Bob,但是,一般情况,是通过Alice的银行账户直接转到Bob的帐号再通知他们两人。下次Bob将在账单中看到,或者,如果他比较急迫,下次他会联系银行询问他在银行中拥有多少钱。
因为银行有很多顾客,并且银行需要花钱雇佣员工与人们交谈和签署文档,所以最近银行已经开始使用机器(比如ATMs)和网络服务来代替付费的员工和顾客交互。这些机器被设计成用来处理顾客想要对他/她的钱进行的操作,以及顾客可能操作的的范围(比如,ATMs能够处理现金)。最后,大部分时间,很少有人来处理这种事务。人们能够一直知道银行安全保存的金钱里面有多少是他们的,并且,他们信任他们在银行账单上和他们电脑屏幕上看到的金钱数量,他们任何时候可以从银行得到的相应的钞票。他们确信,他们能够像接受纸币一样接受这些数字(这类似于当初人们开始像接受金银一样接受纸币)。
尽管如此,事实上,机器的使用并没有改变这种系统的结构,这种结构基于一个中心权威机构(银行)负责保存用户账户信息。每个人不得不依靠这个权威机构的诚实(比如,说到他们总共保管了多少金钱,或者至少保持多少纸币可供所有着可用)。同样,每个人不得不在这个机构提供他/她的真实姓名来认证他们的身份,从而被允许取回他们的钞票或者转账给别人。
Bitcoin是一个拥有一种叫做bitcoin货币并且能够自由转移的系统,它使用一种类似与在线银行接口的方式,但是是匿名的并且不需要依赖一个中心权威机构来决定真伪。这些bitcoin需要消耗真实的资源(CPU时间和电力)来生产,所以它们是有价值的,它们不能够被重复使用,也不会消失,除非这些bitcoin所有者的电脑被非法访问。



怎样预防盗窃?


为了保证偷听者,比如Eve,不能够通过使用别人的名字建立一个交易来存取其他人的bitcoin,我们使用公共密钥系统来生成数字签名。在这个系统中,每个人,比如Alice和Bob拥有一个保存在安全钱包中的公开/私有密钥对。仅仅拥有私有key的用户可以签署文档,比如用来签署他转移一些bitcoin给某人的交易,但是每个人都能够使用他的公共key来验证这个签名。
Bob把公共key发送给Alice
Alice添加Bob的公共key和她希望转账的数量到这个交易中
Alice使用她的私密key签署这个交易
现在,任何知道Alice和Bob公共key的人都确认,Alice同意转移这个数量的bicoin给Bob,因为除了Alice没有其他人拥有Alice的私密key。Alice不会愚蠢到把她的私密key给别人,否则,别人就可以使用她的名字来签署交易、从她的余额中转移资金。
稍后,当Bob想转移同样的coin给Charley,他要做同样的事情:接收Charley的公共key,添加新的交易到交易链中并且使用他(Bob)的私有key签署。但是只有Bob能够这样做,因为只有Bob拥有这个私有key,这个key被需要用来签署交易,并且这是唯一在交易链中匹配Bob公共key的私有key。
Eve不能够通过把Bob的公共key替换成她自己的来改变这些coin的拥有者,因为Alice使用自己的私有key签署过转账给Bob的交易,来声明这些属于她自己的coin现在属于Bob,并且Alice的私有key对Eve来说是秘密。所以如果Charley承认这些最初的coin是在Alice手中,稍候她将同样接受这些coin被转移给Bob了,而现在Bob转移同样的coin给他。



怎样防止重复使用?


这是我们怎样保证Alice不能复制coin,并且不能把它用在多个交易上(这是Bitcoin最主要的创新)
交易的详细信息被发送给所有的人,或者尽可能多发送到其他电脑上。
一个包含所有交易记录并且持续增长的blocks链,被所有的电脑共同维护(每台电脑拥有一个完整的拷贝)。
交易的blocks必须是合法的,并且必须包含劳动的证据(网络每10分钟产生一个block),才会被这个记录链接受。
Blocks使用一种方式链接起来,如果任何一个被修改,所有后面的blocks必须被重新计算
当这个链出现多个合法的分支时,只有那个最长的分支被接受并被延续下去。
当Bob看到他的交易被包含在一个block上,而这个block在那个唯一的最长并且增长最快的block链(通过有意义的计算增长)上时,他就能确信Alice发起的交易已经被网络上的计算机接受,并且被永久记录下来防止Alice使用同样的coin再建立一个交易。
理论上,Alice能够努力生成欺骗性的blocks,这些blocks上不存在她以前使用过的coin,她尝试把这些blocks发送给每个人,作为这个coin仍然属于她的证据。然而,以前Alice签署过的交易已经发布过,并且被发送给了在bitcoin网络中很大数量的计算机,包含它的一个block已经被某人生成(否则,这个coin的第一个接收者不会确认它)。因为生成一个合法的block被设计成需要很长的时间,Alice的速度竞争不过所有的其他电脑。Bob会从其他人收到更多的blocks,Alice单独永远生成不了这些blocks,并且一些更新的blocks将会包含Alice以前的交易,让Bob知道Alice已经把她的coin花费出去了。Alice能够移除她的交易的唯一方法是创造一个平行的block链,这些block链必须比所有其他人已经生成的链更长并且不包含她的交易,因为仅有最长的链被接受。为了保持最长,它同时不得不增长比其它的链更快,这样才能阻止block生成器把Alice的交易添加到链中。为了做到这些,Alice必须可以永久的控制网络上大部分的cpu资源;这种事我们认为没有单个的人或组织可以做到。因此,只要控制大部分cpu的人不跟Alice合作,她的交易将永久的被记录并且她将不能用同样的coin建立另一个交易。


怎样保证匿名性?


Bitcoin"帐号"不需要关联姓名并且不需要跟某个个体对应。每个余额简单的关联一个随机生成的公开/私有密钥对并且这些钱属于拥有这个私有key并且能够使用它来签署交易的人。这些使用这些keys签署的交易同样不需要包含姓名。
一个Bitcoin地址就是一个公开key,看起来像这样:
14iPPJcajb6bwejbimpHkS5z8HEbQSzNLd
每个人可以拥有很多这样的地址,每个地址拥有自己的余额,这样使确定哪个人拥有这些钱更困难。为了保护他的隐私,Bob甚至能够为每个独立的交易生成一个新的公开/私有密钥对。这样David从Charley收到的coin将不能确定谁是在这个交易列表中第二个拥有的人(不询问Charley的情况下)。



货币的制造


正如上面说的,Bob和Charley需要验证从Alice发出的原始coin是合法的。Alice不能简单的及时凭空生成coins,因为一个coin的出现是一个需要被其他人接受的交易。
根据当前的软件,新coins是这样被慢慢引入:每台生成一个的block的电脑获得50BTC,这个block被允许放一个交易,获得的金钱不需要从某个地方获得。这个金钱是对那些付出计算生成block的人的激励。然而,根据目前协定,每过四年,生成一个block的奖励降低一半。意味着,在2013年的同一时刻,绝大多数CPUs将不再接受那些把50BTC添加到金钱数量中的blocks,并且他们仅仅接受那些添加一半数量的blocks。同样的事情将会发生在2017,2021,2025年等,除非不同的Bitcoin客户端软件普遍出现在网络上。
因为激励最终会慢慢变少,对Alice来说另一种获取bitcoins的方式是当他生成blocks的时候接受交易费。在每个bicoins的转移中,这里有一个自愿支付的交易费,这个数量是可以选择的,由那个发出金钱的人支付。这个金钱付给付出劳动生成包含这个交易的block的人,需要这个block这个交易才会被接受。因为Alice可以自由的包含任意交易的集合,她可以只选择包含那个最高交易费的交易。如果每个人都这样做,最后,取决于交易的总量,对于一笔交易的最低交易费在blocks链中将会产生。



总结


可以访问Bitcoin Block Explorer这个网站,实际的体验一下这个系统。 这个网站向你展示blocks链中最新的blocks。block链包含所有发生在这个系统中已经被接受的历史交易记录。 注意下在最后一个小时多少blocks被产生,应该大约6个。同时注意最后一个小时交易的数量和转移的总量(最后一次我检查是大约64和15K)。 这将让你了解这个系统的活跃度。
下一步,详细了解这些blocks中的一个。 首先注意到这个block的hash值以一串0开头,这个表示制造它有多难。 生成这个block的计算机不得不运行在许多临时的值(同时在block的页面中列出来了)直到发现一个可以生成这串0 下一个需要注意的是标记为Previous block的这行,每个block在它前面会包含它的hash值,这是block链的组成结构。 现在看一下这个block包含的所有交易。第一个交易是生成这个block的计算机的收益。它包含一个固定数量的凭空产生的金额,以及可能包含这个block中的其它交易的交易费。
详细了解这些交易的任何一个,你将发现它是由多个进来和出去的资金组成。 事实上,这里可能有不止一个进来和出去的资金,允许这个系统用任何可能的方式把资金连接或者拆分成需要的部分金额(常常是分)。 每个进来的资金来自于一个以前的某个地址的交易(你同样可以详细了解) 并且每一个出去的资金被转移给某人,并且组成未来交易的一部分(如果它已经发生了,你同样可以进去详细了解)。
最后你可以详细了解任何一个地址并且知道哪些公开的信息可以看到。
为了得到一个对Bitcoin系统活跃度的印象,你也许喜欢访问监控网站Bitcoin Watch和Bitcoin Monitor。开始是关于交易数量和大小的一般性统计数据,然后是实时的采用可视化的方式展示Bitcoin系统中发生的活动。


  • 全部
  • 最佳
  • goggle1 水手 船龄 8.6年 2014-01-02 16:12:22
    文章写的真好,或者说翻译的真好。赞一个!
    只是,原文在哪里?可否附上url地址?
    How a Bitcoin Transaction works,这张图片看不清楚啊,亲。
  • 船龄 2013-11-20 07:27:58
    分享自格拉斯哥流浪者《比特币的运行机制是怎样的?》 -  转自 http://t.cn/zR7NEj5     简介  Alice跟Bob离的很远,她想买Bob的羊驼袜子。作为回报,她想付给Bob一美...  (来自 @头条博客) - http://t.cn/8khFDjZ
  • 船龄 2013-11-05 14:48:04
    但是是匿名的并且不需要依赖一个中心权威机构来决定真伪。这些bitcoin需要消耗真实的资源(CPU时间和电力)来生产,所以它们是有价值的,它们#不能够被重复使用#,也不会消失,除非这些bitcoin所有者的电脑被非法访问。 http://t.cn/zR7NEj5 趣点http://t.cn/zR0JYyM
  • 船龄 2013-11-05 14:46:31
    要做到这些,首先她把她的钞票给一个叫银行的组织,银行负责安全的保存Alice的钞票,然后返回Alice一个#书写的承诺#(被称作银行结单)。任何时候,只要她愿意,她能够到银行取回她保存在银行的相同数量的钞票 http://t.cn/zR7NEj5 趣点http://t.cn/zR0J0Jr
  • 船龄 2013-09-30 00:00:26
    发表了博文 《比特币的运行机制是怎样的?》 - 转自 http://t.cn/zR7NEj5   简介 Alice跟Bob离的很远,她想买Bob的羊驼袜子。作为回报,她想付给 http://t.cn/zR7NEjq
登录 账号发表你的看法,还没有账号?立即免费 注册
推荐教程
换一批