如何建立Bitcoin点对点加密虚拟货币系统
时间:2024-03-27 14:29 来源:网络整理 作者:墨客科技 点击:次
据国外媒体报道,Bitcoin是一种开源的、点对点的(Peer-to-Peer)网络电子货币,由Satoshi Nakamoto开发,并由一小组开发人员维护。知名科技博客读写网(ReadWriteWeb)的克林特芬利(Klint Finley)在制作“分布式网络“专题系列时,就Bitcoin软件的运作方式,采访了该项目的加文安德烈森(Gavin Andresen)。全文摘要如下: 本文是对Bitcoin的技术性概述。如果你对该软件所涉及的政治经济元素有兴趣,可以参看相关的维基百科条目或尼可拉斯布兰查德(Niklas Blanchard)的论文。 简述Bitcoin 的运作机制 问(克林特芬利):你能否向那些不太熟悉Bitcoin的人简短地描述一下它? 答(加文安德烈森):当然可以。 Bitcoin是一种点对点的货币——它是由人而不是由中央银行或政府创造的货币。 问:它的运作机制是怎样的呢? 答:大家都会试图生产Bitcoin,并且通过一个点对点的网络来交易Bitcoin。大家运行的代码将阻止作弊行为的发生—— 没有人能创造超量的Bitcoin,也没有人能够把已经支出的Bitcoin再次支付出去,而且只有Bitcoin的合法所有者才能使用它。 关于Bitcoin,真正的创新理念在于这样一个机制:无需依赖一个中央权威装置就能防止Bitcoin被重复支出。 另一个的重大新理念则是:无需依赖一个中央权威装置就能限制Bitcoin的供应量。 解决“引导问题”的3种机制 问:你门是如何在没有中央权威装置的情况下做到这些事的呢? Bitcoin客户端和服务器又是如何找到对方的呢? 答:我先从容易的问题谈起 ——Bitcoin客户端如何找到对方: 所有的点对点网络都存在“引导问题(the bootstrapping problem)” ——没有中央服务器,网络上的节点(机器)需要能够找到对方。Bitcoin使用以下3种机制来解决这个问题: 1 在默认情况下,Bitcoin客户端加入了一个IRC聊天通道,并得知加入该通道的其他客户端的IP地址和端口。该通道的名称(和IRC聊天服务器的名称)被写死(Hardcode)在了Bitcoin软件中。 2一些“知名的”Bitcoin节点也被编写在了软件中,以防IRC聊天服务器由于某种原因无法访问。 3你还可以手动添加(通过配置文件或命令行选项)可以运行Bitcoin的其他机器的IP地址。 一旦你连接到了Bitcoin 的点对点网络上,别的机器发送给你的信息中就会包含它们所知道的其他IP地址(及端口),所以那时你将会通过Bitcoin网络自身来找到其他Bitcoin节点。 人们也在积极讨论其他可能的引导机制,所以如果在未来一年左右出现了新的引导机制,我也不会感到惊讶。 和“引导”相关的其他问题 问:我猜你也可以手动改变IRC聊天服务器和通道? 答:实际上不能 。要那样做的话,你必须重新编码。 问:这是为什么? 答:我们对“引导”的想法是定义一个地方,你可以去那里寻找其他的节点,所以建立第二个IRC聊天通道将是毫无意义的。而且现有通道也没有限制可以连接到它的客户端的数量,因此实在没有理由使用多个通道。 问:但是,在IRC聊天服务器关停时怎么办呢? 答:几个月前,Bitcoin确实更换过用于引导的IRC服务器——我们发布了一个新的客户端,它使用不同的IRC网络。所以如果是IRC服务器暂时关停,全新Bitcoin客户端将使用备份的 “知名的”节点名单。旧的Bitcoin客户端将连接到它们之前连接的节点上——在最后一次运行Bitcoin时,相当IP地址被记录在了‘addr.dat‘数据库文件中。 问:是否有什么机制,要求客户使用软件的最新版本进行连接? 答:可以说有,也可以说没有。 我们不会阻止旧的客户端进行连接。我们支持旧客户端“向上兼容”。但是几个月前出现的一次重大错误,让我们的主要开发人员(Satoshi)决定采用一个机制,通知那些使用不够安全的版本的用户升级。 我们当然不会鼓励人们运行版本很旧的Bitcoin软件。 限制Bitcoin供应量 问:能谈谈较困难的部分吗——在不依靠中央服务器的情况下,如何防止Bitcoin被重复支出,以及如何限制Bitcoin的供应量? 答:我先说说限制供应量的问题。 根据Bitcoin的设计,总共只能有2100万个货币被生产出来。当前货币的生产速率是每10分钟50个左右。 (责任编辑:admin) |