技术原理:
1、交易
l交易记录:
比特币没进行一次交易,就要在比特币交易记录中,用于确认交易,比特币交易记录是一个基于时间序列的链式结构,记录付款人、收款人、交易金额、交易时间等数据。如:(1月1日赵大付给王二1比特币,1月2日王二付给张三1比特币,1月3日张三付给李四......)
l交易确认
电子货币进行交易时,为了保证交易的正常进行,传统方法是引入信得过的第三方权威(银行结算中心)来验证每一笔交易,此处用到了中心化。
比特币是去中心化的。因此要证明比特币最新的交易记录是有效的,比特币用了“多数人的正义”的方法,当交易发生时,交易信息就会被公开宣布,如:5个人在一起同时用纸记录一个交易,现在有人说“赵大给王二1块钱”,这里面有三个人都同意这件事并将其记录下来,并把记录的纸复印5份,人手一份,那么他们就有唯一受到认可的记录了。
l防止记录被篡改:
运用非对称加密技术,除了拥有者,外人没有密钥无法解密交易记录。拥有者不会篡改记录,一则以前的记录已经被大多数人确认,无法更改,二则新交易尚未发生,不能进行更改。
2、时间戳服务器
l作用
对以区块形式存在的一组数据实时随机散列而加的时间戳。
l不同主机的时间不相同问题
因为去中心化,就不能从一个权威处获取时间,比特币使用“多数人的正义”方法获取时间,时间来自于参与验证而连接的节点的时间的中位数,连接的节点数量不少于5,中位数时间和本机时间差别不超过70分钟,否则就会提醒你跟新本机时间。
3、工作量证明:
l作用:
防止有人通过控制节点时间的方式而已更改时间,同时修改比特币源码跳过时间检测机制或恶意构造交易。
l证明方法
n基于CPU投票(一CPU一票),用CPU投票解决谁是大多数的问题,“大多数”的决定表达为最长的链,因为最长的链包含了最大的CPU工作量。如果大多数的CPU是城市节点,那么诚实链条会最长。如果要对也已出现的区块进行修改,攻击者必须重新完成该区块的工作量外加该区块之后所有区块的工作量,并最终赶上和超越诚实节点的工作量。
l原理:
提升造假成本。很多网站为了防止机器人恶意注册,通常采用人际识别机制,如验证码。
根本原理在于安全和成本的相关性,没有人会花200块的成本去制造100块的钞票。
4、网络广播
l作用:
为了达成所有人参与的交易验证和记录,需要将交易广播出去,为了实现广播出去以后的信息实现同步和内容统一。
l步骤:
1)新的交易向全网广播
2)每个节点都将受到的交易信息纳入一个区块中
3)每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明
4)当一个节点找到了一个工作量证明,他就想全网进行广播
5)当且晋档包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性
6)其他节点表是他们接受该区块,而表是接受的方法是:在该却快的末尾织造新的区块一延长该链条,而将被接受区块的随机散列值视为先于新区快的随机散列值。
l原理:
n僵局
节点始终将最长的链条视为正确的链条,兵持续工作和延长它。如果有两个节点同时广播不同版本的新区快,那没其他节点在接受到该区块的时间上将存在先后差别。词是,他们讲在率先收到的区块基础上进行工作,丹也会保留另外一个链条,以防后者变成最长链条。
n僵局的打破:
等到下一个工作量证明被发现,二其中的一条链条被证实是较长的一条,那么在另一条分支链条上工作的节点将转换到被证实为较长的那条链上工作。
5、激励机制
n产生原因:
因为每一笔交易,都需要至少5个节点的参与验证,参与验证必将消耗节点的CPU计算量,要维持节点持久性而非激情性地参与验证,需要一种激励机制,最好的激励机制是直接的经济奖励。
n好处:
n可以保持节点的诚实性
n提供一种将电子货币注入到流通领域的方法
6、计算量问题:
考虑到了计算机硬件的摩尔定律:为了应对计算机计算力的大幅度提高,比特币的挖掘量达到一定的数值之后,后续的比特币的挖掘所需的工作量也提高,相当于:5年前,用1000块的设备花30小时能挖到1个比特币,而现在用此时1000块的设备挖比特币还是要30小时才能挖到一个比特币,但是此时的1000块的设备的计算性能是5年前的很多倍了。