提交 35051913 编写于 作者: Y yeasy

Updates intro/tech.md

上级 c40a45bd
......@@ -20,7 +20,11 @@
| T1 | B 转给 C | T0 的输出 | C 账户可以使用该交易 | B 签名确认 |输入减输出,为交易服务费 |
| ... | X 转给 Y | 别人给 X 的交易的输出 | Y 账户可以使用该交易 | X 签名确认 | 输入减输出,为交易服务费 |
### 账户/地址
下面分别介绍比特币网络中的重要概念和设计思路。
### 概念
#### 账户/地址
比特币账户采用了非对称的加密算法,用户自己保留私钥,对他发出的交易进行签名确认,并公开公钥。
......@@ -28,7 +32,7 @@
一般,也常常对账户地址串进行 Base58Check 编码,并添加前导字节(表明支持哪种脚本)和 4 字节校验字节,以提高可读性和准确性。
### 交易
#### 交易
交易是完成比特币功能的核心概念,一条交易将包括如下内容:
......@@ -40,9 +44,17 @@
* 收款人的公钥:收款人的公钥;
* 时间戳:交易何时能生效。
### 脚本
网络中节点收到交易信息后,将进行如下检查:
* 交易是否已经处理过;
* 交易是否合法。包括地址是否合法、发起交易者是输入地址的合法拥有者、是否是 UTXO;
* 交易的输入之和是否大于输出之和。
检查都通过,则将交易标记为合法的未确认交易,并在网络内进行广播。
#### 脚本
脚本是保障交易完成(主要用于检验交易是否合法)的核心机制,当所依附的交易发生时被触发
[脚本(Script)](https://en.bitcoin.it/wiki/Script) 是保障交易完成(主要用于检验交易是否合法)的核心机制,当所依附的交易发生时被触发。通过脚本机制而非写死交易过程,比特币网络实现了一定的可扩展性
一般每个交易都会包括两个脚本:输出脚本(Output Script)和认领脚本(Signature Script)。
......@@ -55,8 +67,9 @@
* P2PKH:Pay-To-Public-Key-Hash,允许用户将比特币发送到一个或多个典型的比特币地址上(证明拥有该公钥),前导字节一般为 0x00;
* P2SH:Pay-To-Script-Hash,支付者创建一个输出脚本,里边包含另一个脚本(认领脚本)的哈希,一般用于需要多人签名的场景,前导字节一般为 0x05;
引入脚本机制带来了灵活性,但也引入了更多的安全风险。比特币脚本支持的指令集十分简单,基于栈的处理方式,并且非图灵完备,此外还添加了额外的一些限制(大小限制等)。
### 区块
#### 区块
一个区块将包括如下内容:
......@@ -75,8 +88,9 @@
所有交易的内容。
### 设计理念
### 如何避免作恶
#### 如何避免作恶
基于经济博弈原理。在一个开放的网络中,无法通过技术手段保证每个人都是合作的。但可以通过经济博弈来让合作者得到利益,让非合作者遭受损失和风险。
......@@ -90,7 +104,7 @@
比特币网络需要所有试图参与者(矿工)都首先要付出挖矿的代价,进行算力消耗,越想拿到新区块的决定权,意味着抵押的算力越多。一旦失败,这些算力都会被没收掉,成为沉没成本。当网络中存在众多参与者时,个体试图拿到新区块决定权要付出的算力成本是巨大的,意味着进行一次作恶付出的代价已经超过可能带来的好处。
### 负反馈调节
#### 负反馈调节
比特币网络在设计上,很好的体现了负反馈的控制论基本原理。
......
......@@ -9,7 +9,7 @@
2008 年 10 月 31 日,中本聪发布比特币唯一的白皮书:《Bitcoin:A Peer-to-Peer Electronic Cash System/比特币:一种点对点的电子现金系统》。
2009 年 1 月 3 日,中本聪在位于芬兰赫尔辛基的一个小型服务器上挖出了第一批 50 个比特币。
2009 年 1 月 3 日,中本聪在位于芬兰赫尔辛基的一个小型服务器上挖出了第一批 50 个比特币,并记录下当天泰晤士报的头版标题:“ The Times 03/Jan/2009 Chancellor on brink of second bailout for banks ”
2010 年 5 月 21 日,第一次比特币交易:佛罗里达程序员 Laszlo Hanyecz 用 1 万 BTC 购买了价值 25 美元的披萨优惠券。这是比特币的首个兑换汇率:1: 0.0025 美金。这些比特币在今日价值约 700 万美金。
......@@ -31,7 +31,7 @@
2013 年 11 月 29 日,比特币的交易价格创下 1242 美元的历史新高,而同时黄金价格为一盎司 1241.98 美元,比特币价格首度超过黄金。
2014 年 2 月,全球最大比特币交易平台 Mt.Gox 宣告因 85 万个比特币被盗而破产并关闭,造成大量投资者的损失。
2014 年 2 月,全球最大比特币交易平台 Mt.Gox 宣告因 85 万个比特币被盗而破产并关闭,造成大量投资者的损失,比特币价格一度
2014 年 3 月,中国第一台可以兑换比特币的 ATM 在香港上线。
......
......@@ -7,7 +7,7 @@
目前,每 10 分钟左右生成一个不超过 1 MB 大小的区块(记录了这 10 分钟内发生的验证过的交易内容),串联到最长的链尾部,每个区块的成功提交者可以得到系统 12.5 个比特币的奖励(一定区块数后才能使用),以及用户附加到交易上的支付服务费用。
*注:每个区块的奖励一开始是 50 个比特币,每隔 21 万个区块自动减半,即 4 年时间,最终比特币总量稳定在 2100 万个。*
*注:每个区块的奖励一开始是 50 个比特币,每隔 21 万个区块自动减半,即 4 年时间,最终比特币总量稳定在 2100 万个。因此,比特币是一种通缩的货币。*
挖矿的具体过程为:参与者根据上一个区块的 hash 值,10 分钟内的验证过的交易内容,再加上自己猜测的一个随机数 X,让新区块的 hash 值小于比特币网络中给定的一个数。这个数越小,计算出来就越难。系统每隔两周(即经过 2016 个区块)会根据上一周期的挖矿时间来调整挖矿难度(通过调整限制数的大小),来调节生成区块的时间稳定在 10 分钟左右。为了避免震荡,每次调整的最大幅度为 4 倍。
......@@ -20,7 +20,7 @@
2010 年左右,挖矿还是一个很有前途的行业。但是现在,建议还是不要考虑了,因为从概率上说,由于当前参与挖矿的计算力实在过于庞大(已经超出了大部分的超算中心),获得比特币的收益已经眼看要 cover 不住电费了。特别那些想着用云计算虚机来挖矿的想法,意义确实不大了。
从普通的 CPU、到后来的 GPU、到后来的 asic 矿机、到现在众多矿机联合组成矿池。短短数年间,比特币矿机的技术走完了过去的计算机的历程,并且还颇有创新之处。确实是哪里有利益,哪里的技术就飞速发展!目前,矿机主要集中在中国大陆(超过一半的算力)和欧美
从普通的 CPU(2009 年)、到后来的 GPU(2010 年) 和 FPGA(2011 年末)、到后来的 ASIC 矿机(2013 年初,目前单片算力已达每秒数百亿次 Hash 计算)、再到现在众多矿机联合组成矿池。短短数年间,比特币矿机的技术走完了过去几十年的集成电路技术进化历程,并且还颇有创新之处。确实是哪里有利益,哪里的技术就飞速发展!目前,矿机主要集中在中国大陆(超过一半的算力)和欧美,大家比拼的是一定计算性能情况下低电压和低功耗的电路设计。全网的算力已超过每秒 $$ 10 ^{18}$$ 次 Hash 计算
很自然的,有人会想到,如果我有很强大的计算力,所有的块都是我算出来了,拒不承认别人的交易内容,那是不是就能破坏比特币网络。确实如此,基本上拿到 1/3 的计算力,比特别网络就存在被破坏的风险了;拿到 1/2,概率上就掌控整个网络了。但是这个将需要付出巨大的计算成本。
......
......@@ -30,7 +30,7 @@
如何提高交易的吞吐量,同时降低交易的确认延迟。
目前,公开的比特币区块链只能支持平均每秒 7 笔的吞吐量,一般认为安全的交易确认时间为一个小时
目前,公开的比特币区块链只能支持平均每秒约 7 笔的吞吐量,一般认为对于大额交易来说,安全的交易确认时间为一个小时。小额交易只要确认被广播到网络中并带有交易服务费用,即有较大概率被最终打包到区块中
区块链系统跟传统分布式系统不同,其处理性能无法通过单纯增加节点数来进行扩展,实际上,很大程度上取决于单个节点的处理能力。**高性能、安全、稳定性、硬件的加解密能力**,都将是考察节点的核心方面。
......@@ -40,7 +40,7 @@
实际在工程设计上,性能都存在可以优化的地方。
_注:VISA 系统的处理均值为 2000 tps,号称的峰值为 56,000 tps;证券交易所号称的处理均值在 80,000 tps。_
*注:VISA 系统的处理均值为 2000 tps,号称的峰值为 56,000 tps;证券交易所号称的处理均值在 80,000 tps。*
### 扩展性
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册