欢迎来到环境100文库! | 帮助中心 分享价值,成长自我!

环境100文库

换一换
首页 环境100文库 > 资源分类 > PDF文档下载
 

比特币:一种点对点的电子现金系统(中文).pdf

  • 资源ID:3489       资源大小:1.13MB        全文页数:13页
  • 资源格式: PDF        下载权限:游客/注册会员/VIP会员    下载费用:10碳币 【人民币10元】
快捷注册下载 游客一键下载
会员登录下载
三方登录下载: 微信开放平台登录 QQ登录   微博登录  
下载资源需要10碳币 【人民币10元】
邮箱/手机:
温馨提示:
支付成功后,系统会自动生成账号(用户名和密码都是您填写的邮箱或者手机号),方便下次登录下载和查询订单;
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,既可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

比特币:一种点对点的电子现金系统(中文).pdf

比特币一种点对点的电子现金系统 Bitcoin A Peer-to-Peer Electronic Cash System 原文作者 中本聪( Satoshi Nakamoto) 执行翻译 巴比特 |关注虚拟经济 独家赞助 B 论文 作者邮箱 S www.bitcoin.org [摘要 ]本文提出了一种完全通过点对点技术实现的电 子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间 不需要通过任何的金融机构。 虽然 数字签名( Digital signatures)部分解决了这个问题, 但是 如果仍然需要第三方的支持才能防止双重支付( double-spending)的话,那么这种系统 也就 失去 了 存在的价值。我们 we在此提出一种解决方案,使现金系统在点对点的环境下运行,并防止双重支付问题。该网络通过随机散列( hashing)对全部交易加上时间戳( timestamps),将它 们合 并入一个不断延伸的基于随机散列的 工作量证明 ( proof-of-work)的链条作为交易 记录 ,除非重新完成全部的 工作量证明 ,形成的交易记录将不可更改。最长的链条不仅将作为被观察到的事件序列( sequence)的证明,而且被看做是来自 CPU计算能力最大的池( pool)。只要大多数的 CPU 计算能力都没有打算合作起来对全网进行攻击,那么诚实的节点将会生成 最长的 、 超过攻击者的链条 。 这个系统本身需要的基础设施非常少。信息尽最大努力在全网传播 即可 ,节点 nodes可以随时离开和重新加入网络,并 将 最长的 工作量证明 链条 作为在 该节点 离线期间 发生的交易的证明。 1. 简介 互联网上的贸易,几乎都需要借助金融机构作为可资信赖的第三方来处理电子支付 信息。虽然在绝大 多数情况下 这类系统 都运作良好,但是这类系统仍然内生性地受制于“基于信用的模式 ” trust based model的弱点。 人们 无法实现完全不可逆的交易,因为金融机构总是不可避免地会 出面协调争端。而金融中介的存在,也会增加交易的成本,并且限制了实际可行的最小交易规模,也限制了日常的小额支付交易。并且 潜在的损失还在于,很多商品和服务本身是无法退货的,如果缺乏不可逆 的支付手段,互联网的贸易就大大受限。因为有潜在的退款的可能,比特币一种点对点( Peer-to-Peer)的电子现金系统 执行翻译 B 独家赞助 2 就需要交易双方拥有信任。 此外,因为 商家也必须 对 自己的客户 小心 提防 , 所以 会向客户索取完全不必要的个人信息。而 实际的商业行为中,一定比例的欺诈性客户也被 认为 是不可避免的,相关损失视作 销售费用 处理。 而 在使用物理现金的情况下, 因为此时没有第三方信用中介的存在, 这些销售费用和支付问题上的不确定性 却 是可以避免的 。 所以 ,我们非常需要 这样 一种电子支付系统,它基于密码学原理而不 基于信用,使得任何达成一致的双方,能够直接进行支付, 从 而不需要第三方中介的参与。 杜绝回滚 reverse支付交易 的可能 ,这 就可以 保护特定的卖家免于欺诈; 而对于 想要保护买家 的人来说,在此环境下设立通常的第三方担保机制 也可谓轻松加愉快。 在这篇论文中,我们 we将提出一种通过点对点分布式的时间戳服务器来生成 依照时间前后排列并加以记录的电子交易证明,从而解决双重支付问题。只要诚实的节点所控制的计算能力的总和,大于有合作关系的 cooperating攻击者的计算能力的总和,该系统就是安全的。 2. 交易 Transactions 我们定义,一枚电子货币( an electronic coin)是 这样的一串数字签名 每一位所有者通过对前一次交易和下一位拥有者的公钥 Public key 签署一个随机 散列的数字签名,并将这个签名附加 在这枚电子 货币的末尾,电子货币就发送给了下一位所有者。而收款人通过对签名进行检验,就能够验证该链条的所有者。 比特币一种点对点( Peer-to-Peer)的电子现金系统 执行翻译 B 独家赞助 3 该过程的问题在于,收款人将难以检验,之前的某位所有者,是否 对这枚电子货币进行 了双重支付。通常的解决方案,就是引入信得过的第三方权威,或者类似于造币厂 mint的机构,来对每一笔交易进行检验,以防止双重支付。在每一笔交易结束后 ,这枚电子货币就要被造币厂回收,而造币厂将发行一枚新的电子货币;而 只有 造币厂直接发行的电子货币,才算作有效,这样就能够防止双重支付。可是 该解决方案的问题在于,整个货币系统的命运完全依 赖于运作造币厂的公司,因为每一笔交易都要经过该造币厂的确认,而该造币厂就好比是一家银行。 我们需要收款人有某种方法,能够确保之前的所有者没有对更早发生的交易实施签名。从逻辑上看,为了达到目的,实际上我们 需要关注的 只 是于本 交易之 前发生的交易,而 不需要关注这笔交易发生之后 是否 会 有双重支付的尝试。为了确保某一次交易 是 不存 在 的 , 那么 唯一的方法就是获悉之前发生过的所有交易。在造币厂模型里面,造币厂获悉所有的交易,并且 决定了 交易完成的先后顺序。如果想要在电子系统中排除 第三方中介机构,那么交易 信息 就应当 被公开宣布( publicly announced) 1,我们需要整个系统内的所有参与者,都有唯一公认的历史交易序列。收款人需要确保在 交易期间绝大多数的节点都认同 该交易是首次出现。 3. 时间戳服务器 Timestamp server 本解决方案首先提出一个“时间戳服务器”。时间戳服务器通过对 以区块 block形式存在的 一组数据实施随机散列而加上时间戳,并将该随机散列进行广播,就像在新闻或世界性新闻组网络( Usenet)的发帖一样 2345。显然,该时间戳能够证实特定数据必然于某特定时刻 是的确存在的 ,因为只有在该时刻 存在了才能获取相应的 随机散列值 。每个时间戳应当将前一个时间戳纳入其随机散列值中,每一个随后的时间戳都对之前的一个时间戳进行增强 reinforcing,这样就形成了一个链条( Chain)。 1 W Dai(戴伟) ,a scheme for a group of untraceable digital pseudonyms to pay each other with money and to enforce contracts amongst themselves without outside help(一种能够 借助电子假名在群体内部相互支付 并迫使个体 遵守规则且不需要外界协助的电子现金机制) , “B-money”, http// 1998 2 H. Massias, X.S. Avila, and J.-J. Quisquater, Design of a secure timestamping service with minimal trust requirements,(在最小化信任的基础上设计一种时间戳服务器) In 20th Symposium on Ination Theory in the Benelux, May 1999. 3 S. Haber, W.S. Stornetta, How to time-stamp a digital document, (怎样为电子文件添加时间戳) In Journal of Cryptology, vol 3, No.2, pages 99-111, 1991. 4 D. Bayer, S. Haber, W.S. Stornetta, Improving the efficiency and reliability of digital time-stamping,(提升电子时间戳的效率和可靠性) In Sequences II s in Communication, Security and Computer Science, pages 329-334, 1993. 5 S. Haber, W.S. Stornetta, Secure names for bit-strings,(比特字串的安全命名) In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. on Computer and Communications Security, pages 28-35, April 1997. 比特币一种点对点( Peer-to-Peer)的电子现金系统 执行翻译 B 独家赞助 4 4. 工作量证明 ( Proof-of-Work) 为了在点对点的基础上构建一组分散化的时间戳服务器,仅仅像报纸或世界性新闻网络组一样工作是不够的,我们还需要一个类似于亚当 柏克( Adam Back)提出的哈希现金( Hashcash)6。 在进行随机散列运算时, 工作量证明机制 引入了对某一个特定值的扫描工作,比方说 SHA-256下 ,随机散列值以一个或多个 0 开始。那么随着 0 的数目的上升 , 找到这个解所需要的工作量将呈指数增长, 但是 检验 结果 仅需要一次随机散列运算。 我们在区块中补增一个随机数 Nonce,这个随机数要使得该给定 区块的随机散列值出现了所需的那么多个 0。 我们通过反复尝试来找到这个随机数 , 找到为止。 这样我们就构建了一个工作量证明机制。只要该 CPU 耗费的 工作量能够满足该工作量证明机制,那么除非重新完成相当的 工作量, 该区块的信息就不可更改。由于之后的区块是链接在该区 块之后的,所以 想要更改该 区块中的信息,就 还 需要重新完成之后所有 区块 的 全部 工作量。 同时,该工 作量证明机制还解决了在集体投票表决时, 谁是大多数的问题。如果决定大多6 A. Back, Hashcash - a denial of service counter-measure,(哈希现金 拒绝服务式攻击的克制 方法)http//www.hashcash.org/papers/hashcash.pdf, 2002. 比特币一种点对点( Peer-to-Peer)的电子现金系统 执行翻译 B 独家赞助 5 数的方式是基于 IP地址的,一 IP地址一票,那么如果有人拥有分配大量 IP地址的权力,则该机制就被破坏了。而工作量证明机制的本质则是一 CPU一票。“大多数”的决定表达为最长的链,因为最长的链包含了最大的工作量。如果大多数的 CPU为诚实的节点控制,那么诚实的链条将以 最快 的速度延长 ,并超越其他的竞争链条。如果想 要对业已出现的区块进行修改,攻击者必须重新完成该区块的工作量外加 该区块之后所有区块的工作量,并最终赶上和超越诚实节点的工作量。 我们将在后文证明,设想 一个较慢的攻击者 试图赶上 随后的区块,那么其成功概率将呈指数化递减。 另一个问题是,硬件的运算速度在高速增长, 且节点参与网络的程度 会有所起伏。为了解决这个问题,工作量证明的难度 the proof-of-work difficulty将采用移动平均目标的方法来确定,即令难度指向令每小时生成区块的速度 为某一预设 的 平均数。如果区块生成的速度过快,那么难度就会提高。 5. 网络 运行该网络的步骤如下 1 新的交易向全网进行广播 ; 2 每一个节点都将收到的交易信息纳入一个区块中 ; 3 每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明 ; 4 当一个节点找到了一个工作量证明,它就向全网进行广播 ; 5 当且仅当包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性 ; 6 其他节点表示他们接受该区块,而表示接受的方法,则是在跟随该区块的末尾,制造新的区块以延长该链条,而将被接受区块的随机散列值视为先于新区快的随机散列值。 节点始终都将 最长的链条视为正确的链条,并持续 工作和延长它。如果有两个节点同时 广播不同版本的新区块,那么其他节点在接收到该区块的时间上将存在先后差别。当此情形,他们将在率先收到的区块 基础上进行工作,但也会 保留另外一个链条,以防后者 变成最长的链条。该僵局( tie) 的打破 要等到下一个工作量证明被发现,而其中的一条链条被证实为 是 较长 的一条 ,那么在另一条 分支 链条 上工作的节点将转换阵营,开始在较长的链条上工作。 所谓“新的 交易要广播”,实际上 不需 要抵达全部的节点。只要交易信息 能够抵达足够多的节点,那么他们将很快被整合进一个区块中。而区块的广播对被丢弃的信息是具有容错能力比特币一种点对点( Peer-to-Peer)的电子现金系统 执行翻译 B 独家赞助 6 的。如果一个节点没有收到 某特定 区块,那么该节点 将会发现自己缺失了某个区块,也就可以提出自己下载该区块的请求。 6. 激励 我们 约定 如此 每个区块的第一笔交易进行特殊化处理,该交易产生一枚由该区块创造者拥有的新的电子货币。这样就增加了节点支持该网络的激励,并 在没有中央集权机构发行货币的情况下, 提供了一种将电子货币分配到流通领域的一种方法。 这种将一定数量新货币持续增添到货币系统中的方 法,非常类似于耗费资源去挖掘金矿并将黄金注入到流通领域。此时 ,CPU的时间和电力消耗就是消耗的资源。 另外一个激励的来源则是交易费( transaction fees)。如果某笔交易的输出值小于输入值,那么 差额就是交易费,该交易费将被增加到该区块的激励中。只要既定数量的电子货币已经进入流通,那么激励机制就可以逐渐转换为完全依靠交易费,那么本货币系统就能够免于通货膨胀。 激励系统也有助于鼓励节点保持诚实。如果有一个贪婪的攻击者能够调集比所有诚实节点加起来还要多的 CPU计算力,那么他就面临一个选择要么将其用于诚 实工作产生新的电子货币,或者将其用于进行二次支付攻击。那么他就会发现,按照规则行事、诚实工作是更有利可图的。因为该等规则使得他能够拥有更多的电子货币,而不是破坏这个系统使得其自身财富的有效性受损。 7. 回收硬盘空间 如果最近的交 易已经被纳入了足够多的区块之中,那么就可以丢弃该交易之前的数据 ,以回收硬盘空间。为了同时确保不损害区块的随机散列值,交易 信息 被随机散列时,被构建成一种 Merkle 树( Merkle tree) 7的形态,使得只有根 root被纳入了区块的随机散列值。通过将该树( tree)的分支拔除( stubbing)的方法,老区块就 能 被压缩。 而 内部的随机散列值是不必保存的。 7R.C. Merkle, Protocols for public key cryptosystems, (公钥密码系统的协议 ) In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. S. Haber, W.S. Stornetta, Secure names for bit-strings,(比特字串 安全命名) In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. on Computer and Communications Security, pages 28-35, April 1997. H. Massias, X.S. Avila, and J.-J. Quisquater, Design of a secure timestamping service with minimal trust requirements,(在最小化信任的条件下 设计一种时间戳服务器) In 20th Symposium on Ination Theory in the Benelux, May 1999. 比特币一种点对点( Peer-to-Peer)的电子现金系统 执行翻译 B 独家赞助 7 不含交易信息的区块头 ( Block header) 大小仅有 80字节。如果我们设定区块生成的速率为每 10分钟一个,那么每一年产生的数据位 4.2MB。( 80 bytes * 6 * 24 * 365 4.2MB)。 2008年, PC系统通常的内存容量为 2GB,按照摩尔定律的预言,即使将全部的区块头存储于内存之中都不是问题。 8. 简化的支付确认( Simplified Payment Verification) 在不运行完整网络节点的情况下,也能够对支付进行检验。一个用户需要保留最 长的工作量证明链条的区块头的拷贝,它可以不断向网络发起询问,直到 它确信自己拥有最长的链条,并 能够 通过 merkle 的分支通向它被加上 时间戳 并纳入 区块 的那次交易。 节点想要 自行检验该交易的有效性 原本是不可能的 , 但 通过追溯到链条的某个位置,它就能看到某个节点曾经接受过它,并且 于其后追加的区块也进一步证明全网曾经接受了 它。 比特币一种点对点( Peer-to-Peer)的电子现金系统 执行翻译 B 独家赞助 8 当此情形,只要诚实的节点控制了网络,检验机制 就 是可靠的。但是,当全网被一个计算力占优的攻击者攻击时,将变得较为脆弱。因为网络节点能够自行确认交易的有效性, 只要攻击者能够持续地保持计算力优势, 简化的机制会被攻击者焊接的( fabricated)交易欺骗 。 那么一个可行的策略就是,只要他们发现了一 个无效的区块,就立刻发出警报,收到警报的用户将立刻开始下载被警告有问题 的区块或交易的完整信息,以便对信息的不一致进行判定。对于日常会发生大量收付的商 业机构,可能仍会希望运行他们自己的完整节点,以保持较大的独立完全性和检验的快速性。 9. 价值的组合与分 割( Combining and Splitting Value) 虽然可以单个单个地 对电子货币 进行处理,但是对于每一枚电子 货币单独发起一次交易将比特币一种点对点( Peer-to-Peer)的电子现金系统 执行翻译 B 独家赞助 9 是一种笨拙的办法。为了使得价值易于组合与分 割,交易 被设计为 可以纳入多个输入和输出。一般而言是某次价值较大的前次交易构成的单一输入,或者由某 几个价值较小的前次交易共同构成的并行 输入,但是 输出 最多只有两个 一个用于支付, 另一个 用于找零(如有)。 需要指出 的是, 虽然 一笔交易依赖于之前的多笔交易 、 这些交易又各自依赖于多笔交易,但 是 这并不存在任何问题。 因为 这个工作机制并不需要 展开检验 之前发生的所有交易历史 。 10. 隐私( Privacy) 传统的造币厂模型为交易的参与者提供了一定程度的隐私保护,因为试图向可信任的第三方索取交易信息是严格受限的。但是如果将交易信息向全网进行广播,就意味着这样的方法失效了。但是隐私依然可以得到保护将公钥保持为匿名。公众得知的信息仅仅是 有 某个人将一定数量的货币发所给了另外一个人,但是难以将该交易同 某个 特定的人联系在一起 ,也就是说,公众难以确信,这些人究竟是谁 。这同股票交易所发布的信息是类似的, 每一手 股票买卖 发生的时间、交易量是记录在案 且可供 查询 的,但是 交易双方的 身份 信息 却不予透露 。 作为额外的预防措施,使用者可以让每次交易都 生成 一个新的地址 ,以确保这些交易不被追溯到一个共同的所有者 。 不过 由于 存在 并行 输入 ,一定程度上的追溯还是不可避 免的,因为并行输入 暗示 这些货币都属于同一 个所有者。 此时的 风险在于, 如果某个人的 某一个公钥被确认属于他,那么就可以追溯出此人的其它 很多交易。 11. 计算 设想如下 场景 一个攻击者试图比诚实节点产生 链条更快 地制造 替代性区块链 。 即便它达到了这一目的,但是整个系统也并非就此 完全 受制于攻击者的独断意志了,比方说凭空创造价值,或者掠夺本不属于攻击者的货币。 这是因为 节点将不会接受无效的交易,而诚实的节 点永远 不会接受一个包含了无效信息的区块。一个攻击者能做的,最多 是更改他自己的交易信息,并试图拿回他刚刚付给别人的钱。 诚实链条和攻击者链条之间的竞赛,可以用二叉树随机漫步( Binomial Random Walk来描述。成功事件定义为诚实链条延长了一个区块,使其领先性 1,而失败事件则是攻击者的链条比特币一种点对点( Peer-to-Peer)的电子现金系统 执行翻译 B 独家赞助 10 被延长了一个区块,使得差距 -1。 攻击者成功填补某一既定差距的可能性,可以近似地看做 赌徒破产问题( Gambler’s Ruin problem)。假定一个赌徒拥有无限 的透支信用,然后开始进行潜在次数为无穷的赌博,试图填补上自己的亏空。那么我们可以计算他填补上亏空的概率,也就是该攻击者赶上诚实链条,如下所示 8 𝑝 诚实节点制造出下一个节点的概率 𝑞 攻击者制造出下一个节点的概率 𝑞𝑧 攻击者最终消弭了 z个区块的落后差距 qz 1 if p ≤ qqpz if p 𝑞 假定 pq,那么攻击成功的概率就因为区块数的增长而呈现指数化下降 。 由于概率是攻击者的敌人,如果他不能幸运且 快速地获得成功,那么他获得成功的机会随着时间的流逝就变得愈发渺茫。那么我们考虑一个收款人需要等待多长时间,才能足够确信付款人已经难以更改交易了。我们假设付款人是一个支付攻击者,希望让收款人在一段时间内相信他已 经付过款了,然后立即将支付的款项重新支付给自己。虽然收款人届时会发现这一点,但 为时已晚。 收款人生成了新的一对密钥组合,然后只预留一个较短的时间将公钥发送给付款人。这将可以 防止 以下情况 付款人预先准备好一个区块链然后 持续地对此区块进行运算,直到运气让他的区块链超越了诚实链条,方才立即执行支付 。 当此情形, 只要交易一旦发出, 攻击者就开始秘密地准备一条包含了该交易替代版本的平行链条。 然后 收款人将等待交易出现在首个区块中, 然后在等到 z个区块链接其后。 此时,他 仍然不 能 确切知道攻击者 已经进展了多少个区块,但是假设诚实区块将耗费平均预期时间以 产生一个区块,那么攻击者的潜在进展就是一个泊松分布, 分布的 期望值为 λ z qp 8 W. Feller, An introduction to probability theory and its applications, (概率学理论与应用导论) 1957 比特币一种点对点( Peer-to-Peer)的电子现金系统 执行翻译 B 独家赞助 11 当此情形,为了计算攻击者追赶上的概率,我们 将 攻击者取得进展区块数量 的泊松分布的概率密度,乘以 在该数量 下 攻击者 依然能够追赶上的概率 。 λke−λk∞k0∙ qpz−k if k ≤ z1 if k 𝑧化为如下形式 ,避免对无限数列求和 1 − λke−λkzk0∙ ( 1 − qp z−k ) 写 为 如下 C语言 代码 include double AttackerSuccessProbabilitydouble q, int z { double p 1.0 - q; double lambda z * q / p; double sum 1.0; int i, k; for k 0; k z; k { double poisson exp-lambda; for i 1; i k; i poisson * lambda / i; 比特币一种点对点( Peer-to-Peer)的电子现金系统 执行翻译 B 独家赞助 12 sum - poisson * 1 - powq / p, z - k; } return sum; } 对其进行运算,我们可以得到如下的概率结果,发现概率对 z值呈指数下降。 当 q0.1时 z0 P1.0000000 z1 P0.2045873 z2 P0.0509779 z3 P0.0131722 z4 P0.0034552 z5 P0.0009137 z6 P0.0002428 z7 P0.0000647 z8 P0.0000173 z9 P0.0000046 z10 P0.0000012 当 q0.3时 z0 P1.0000000 z5 P0.1773523 z10 P0.0416605 z15 P0.0101008 z20 P0.0024804 z25 P0.0006132 z30 P0.0001522 比特币一种点对点( Peer-to-Peer)的电子现金系统 执行翻译 B 独家赞助 13 z35 P0.0000379 z40 P0.0000095 z45 P0.0000024 z50 P0.0000006 求解令 P0.1的 z值 为使 P0.001,则 q0.10 z5 q0.15 z8 q0.20 z11 q0.25 z15 q0.30 z24 q0.35 z41 q0.40 z89 q0.45 z340 12.结论 我们在此提出了一种不需要信用中介的电子支付系统。我们首先讨论了通常的电子货币的电子签名原理, 虽然 这种系统为所有权提供了强有力的控制,但是不足以防止双重支付。为了解决这个问题,我们提出了一种采用工作量证明机制的点对点网络来记录交易的公开信息,只要诚实的节点能够控制绝大多数的 CPU计算能力,就能使得攻击者事实上难以改变交易记录。该网络的强健 之处在于它结构上的简洁性。节点之间的工作大部分是彼此独立的,只需 要很少的协同。每个节点都不需要明确自己的身份,由于交易信息 的流动路径 并无任何要求 ,所以 只需要尽其最大努力传播即可。 节点可以随时离开网络, 而 想重新加入网络也非常容易, 因为 只需要 补充 接收离开期间的工作量证明链条即可 。节点通过自己的 CPU计算力进行投票,表决他们对有效区块的确认,他们 不断延长有效的区块链 来表达自己的确认 ,并拒绝 在 无效的区块之后延长区块 以 表示拒绝。 本框架包含了 一个 P2P电子 货币系统所需要的全部规则和激励措施。

注意事项

本文(比特币:一种点对点的电子现金系统(中文).pdf)为本站会员(币链财经)主动上传,环境100文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知环境100文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017 环境100文库版权所有
国家工信部备案号:京ICP备16041442号-6

收起
展开