网络安全检测|网络安全服务|网络安全扫描-香港墨客投资移动版

主页 > 业界资讯 > imtoken

如何建立Bitcoin点对点加密虚拟货币系统(2)

  首先,你要生产Bitcoin,你就要争取成为第一个创造出新的“版块”(Block)的人。一个版块,就是上一个版块出现之后的所有交易(“我给予/销售/交易这些Bitcoin给你”)。因此,要生产Bitcoin,我的机器就要等待并获悉新的交易,把这些交易捆绑成一个版块,然后对这些数据反复运行一个散列算法(hashing algorithm)。我运行散列算法(把任意长度的数据转换成256位),试图找到一个足够小的散列值,以便向整个网络宣布“我赢得了找到下一个有效版块的比赛”。如果成功了,我就得到50个Bitcoin货币。

  目前来说,每一个新版块价值50个Bitcoin。大约每两个星期,网络上的所有节点就会评估这段时间有多少版块被创建出来,并自动(且独立地)调整“难度”。像这样,平均而言,约每10分钟整个网络中就会出现一个新版块。这就是Bitcoin为什么能在没有中央服务器的情况下限制供应量。

  你只有解决“找一个小的散列值”的问题后,才能创建一个版块。据我们所知,解决这样的问题只需要大量的、强大的计算能力(反复运行散列算法)。网络上的每个人都可以进行检查,看你是否确实解决了这个问题(只计算一个散列值真的很容易),也可以确保新版块里只包含有效的交易,而你只能从创建新版块中获得50个Bitcoin货币。

  问:需要多少交易来创建一个版块?

  答:数量不定——至少是一个交易,直到一个任意制定的、将来可以很容易改变的数量。你可以去Bitcoin Block Explorer网站看看版块里面是什么。

  防止同一笔Bitcoin被重复支出

  问:那么如何防止同一笔Bitcoin被重复支出呢?

  所有交易都会被广播到这个点对点网络上的每个节点.....这是解决方案的第一部分。

  如果一笔Bitcoin被支出两次的情况广播出来,那么某些节点将先看到它第一次发生的支付交易,其他节点则看到的是它第二次发生的支付交易。

  究竟是哪一个支付交易“赢”了,则是由恰好创建了下一个版块的那个节点来决定 ——无论是哪个节点找到了“小的散列值”, 它的板块中包含的那个支付交易被判断为有效的,其他的支付交易被视为无效。

  偶尔会出现网络中的两个节点几乎同时找到有效版块的情况,这样事情会变得很奇怪。

  问:为什么有很多人都会尝试作弊?

  答:我也想知道!我希望有人编写一个工具,能发现这个网络上的作弊企图。

  问:同一笔Bitcoin被重复支出的情况有没有可能是意外发生的?

  答:这真的不太可能是意外。

  关于项目管理

  问:你们有一些开发人员在参与Bitcoin项目——那么如何进行项目管理呢?

  我们正处于一个过渡中,从基本上是一个单人制作的项目(Satoshi编写所有的代码,把关所有的变化)过渡来源更开放、由社区主导的模式。我自告奋勇尝试以一种更加分散的方法来改善Bitcoin软件。我们将采取类似于维护Linux的做法,提交(使用Github)上来的补丁会经过审查,然后决定是接受它还是退回去返工。

  问:对于那些对分布式计算感兴趣的开发人员,你可以推荐一些资源吗?

  答:这是个好问题!分布式计算中的很多问题现在还处于尖端性的研究过程中,我不太确定应该从哪里开始。我个人的背景不是点对点网络,所以我不是合适回答这个问题的人。

  问:你认为分布式计算和强大的密码系统相结合,可以替代“云计算”,为那些交不起服务器租金的人服务吗?

  答:是的,虽然把应用程序放在云上非常便宜。就我自己来说,在Bitcoin相关项目的前端,我使用谷歌的App Engine,在后端的Bitcoin网络节点,我则使用VPSes和亚马逊的EC2。

  使用App Engine创建应用程序,是一种不错的、免费的学习可扩展的分布式计算的方法。

  问:你认为Bitcoin的源代码可能作为建立其他类型的点对点社区的基础吗?

  答:不能,它是专门为Bitcoin设计的,而且效果也很好。其他的点对点社区有不同的网络需求。

(责任编辑:admin)