摘自“http://youtu.be/obRzfcvMshM” 视频讲解
1. 数字签名
数字签名和交易记录一一对应,记录修改数字签名变更,在对应性的基础上,还需可鉴别性
采用非对称加密法对sha-256的计算结果进行加密,保证交易的可鉴别性(私钥/公钥)
2. 去中心化 peer to peer
确认付款方有足够的金额进行支付, 所以电子交易的一个重点:每笔交易都必须把以前的交易作为基础,而不是以余额为基础
当额度不足,支付方必须增加一条交易记录以确保额度 >= 待支付额度
当额度 > 待支付额度,系统会将余额以支付的方式支付给支付方
3. 转账记录的存储和维护
Q1:如何同步交易记录?
A:当比特币终端登陆后,向附近的节点请求自己没有的区块,逐一校验交易的合法性、区块的合法性,当确认合法后才加入自己的块链中
Q2:如何防止交易记录被篡改?
A:每个区块都包含上一个区块的sha-256信息,所以区块中的任何记录都不能进行修改。当篡改交易后,就会导致区块链的断裂,这个区块链也就不是最长的区块链
篡改者是否可以不断的增加区块,来保证这个被篡改的区块链最长呢?
Q3:如何防止同一笔收入被重复使用
A:1)矿工会检查放入新区块的每个交易记录中的输入值是否在前面的区块所包含的交易记录中使用过;2)如果同时有两个交易记录,矿工只认可其中一个交易记录有效,并只将其加入到新区块中
这三个问题由区块链技术解决,数字货币网络仅仅认可并维护一条区块链
新区块的加入,区块内的交易才能得到确认
新区块是由比特币网络上的“矿工”节点生成
矿工接收发送到网络上的各个比特币交易记录,逐个检查交易记录的合法性
新区块制作成功后发送给网络上的各个节点,并添加到区块链末尾
采用一个巧妙的方法限制单位时间内生成的新区块的数量
巧妙的方法:成功完成一个额外的工作后,才能把生成的区块发布到网络上
额外工作:这个额外的工作,整个比特币网络一般只有一个矿工能在10分钟左右时间成功完成
这个额外的工作分2步:
1. 将新制作的区块所包含的内容(前一个区块的SHA-256函数值+这个新区块的基本信息+这个新区块所包含的所有交易记录)组合成一个字符串
2. 找一个随机数
在这个字符串的末尾添加这个随机数,组成新字符串
SHA-256(新字符串)= 一个256位的二进制数,如果这个256位的二进制数的前72位全是0,才算成功完成了这个额外的工作
这个额外的工作难度非常高:
新字符串 = 前一个区块的SHA-256函数值+这个新区块的基本信息+这个新区块所包含的所有交易记录 + 随机数
SHA-256(新字符串) = (前72位全部为0)256位的二进制数
网络上的节点接收、验证、添加新区块
网络上接收到这个新区块的所有节点都做相同的操作:检查区块,符合要求就添加到自己区块链的末尾
挖矿:寻找符合要求的随机数
找到这个随机数完全靠运气,但矿工的运算能力越强,进行sha-256函数运算的速度越快,则运气会越好
挖矿拼的是运算速度:
1. 原始使用个人计算机:每秒能进行大约60万次sha-256函数运算
2. 使用GPU提高运算速度
3. 专用矿机每秒能进行大约10万亿次sha-256函数运算
矿工的激励措施:
1. 比特币奖励:12.5BTC(2017)
2. 交易费收入:区块中所有交易的交易费,平均余约2BTC(2017)
平均每个区块约14.5BTC,约合26万美元,即170万人民币
问题1: 同时生成多个新区块(区块内交易记录会有差异)哪个区块会被添加到区块链中?
多个区块同时会加载在最后一个区块链上,等待下一个新区块的出现,新区块基于哪一个冲突区块产生,那么该冲突区块会被保留,其他区块会被删除
因为多个冲突区块保存的交易不尽相同,所以某些交易会被重新确定为未确认交易,等待被加入新的交易区块中。当交易记录所在的区块后面又添加了若干(小额交易1-2个,大额交易3-6个)新区块后,才可以稳妥的认为本次交易被网络确认
Q:比特币是怎么发行的?
A:新比特币作为对矿工的奖励进入比特币网络进行流通
奖励机制:
每生成21万个区块,奖励金额减半;如:0-21万:50 BTC/块; 21-42万:25 BTC/块
从第693万个区块开始,对矿工的奖励为0,也就是不再有新的比特币流入比特币网络,到时,累计又2100万比特币流入到了比特币网络,矿工的收入将完全来自每笔比特币转账交易的交易费,交易费只有比特币在账户之间转移,不是新产生的比特币。也就是说,比特币网络上的比特币总量永远不会超过2100万个
Q:比特币存在哪里?
A:比特币一般存在比特币客户端软件的数据文件里,如果把数据文件弄丢了,就永远的失去了里面的比特币
Q:比特币转账和支付宝转账的区别
A:比特币不是银行或金融机构发行的,使用比特币不需要绑定银行卡,不需要任何身份证明,不要手机短信确认,只要能上网,只要安装了比特币客户端软件,就可以转账或收款。所有的转账不受任何机构监督和管理,转错了,完全没有挽回的余地
Q:比特币转账的手续费?
A:比特币客户端会给一个推荐值或最低值,具体由支付方自己决定
比特币所使用的主要技术和特点:
1. 利用SHA-256算法和非对称加密法制作数字签名
2. 利用区块链中的区块存储比特币交易记录
3. 设置额外的工作从而控制单位时间内生成区块的个数,同时保护比特币网络
4. 将已定数额的比特币和区块内的所有交易费奖励给成功生成区块的矿工,激励更多的矿工加入比特币网络,促进比特币网络的茁壮成长
5. 比特币转账不依赖银行或其他金融机构
6. 比特币网络内比特币的总量不会超过2100万比特币