工作量证明是最早也是最广泛使用的共识算法,它由比特币的创始人中本聪提出,并应用于比特币网络和其他许多加密货币网络中。工作量证明的原理是让网络中的参与者(也叫矿工)通过使用计算能力来竞争生成新的区块,并获得相应的奖励。这样可以防止恶意攻击者篡改或伪造区块链上的数据,因为他们需要付出巨大的成本才能够做到。
工作量证明的优点有:
比特币区块链中使用的加密算法是SHA256,SHA256是SHA2系列算法细分出的一种算法,其中SHA是Secure Hash Algorithm的缩写,名称中的256值代表最终的哈希值摘要,哈希值通常用一个长度为64的十六进制字符串来表示,相当于是个长度为32个字节的数组,其中1个字节等于8位,也就是说无论明文大小如何,哈希值始终为256位。
比特币的挖矿过程,就是找到输入值的过程,这个输入值是通过SHA256算法产生了一串开头带有70个零的输出值,但是没有已知的公式,每个人能做的只有蛮力计算,一个一个数去试,知道找到正确的输入值,因此SHA256在比特币协议中发挥着关键作用,如果投资者可以逆推这个算法,那么就可以比其他人挖矿挖的更快,赚更多钱。
比特币本身是个公开的账本,每一个区块就是一页账,从第一页开始,每一页上都有一个这样的哈希值,但在数字货币市场中,投资者不可能找到一个完全相同的哈希值,不过比特币挖矿只需要找到一个接近的哈希值就好,不需要完全匹配,挖矿难度也可以跳转,大约会保证每十分钟就有矿工找到匹配的输入值,然后转6.25个比特币的出块奖励。
预言机的概念源于古希腊神话中的预言者,他们可以向人类传达神灵的意志和信息。在区块链领域,预言机类似于一个中介,它可以向智能合约传达外部世界的信息,或者向外部世界传达智能合约的结果。预言机是一种扩展区块链功能和应用范围的技术,它可以使区块链与现实世界发生互动。
区块链本身是一种封闭的、确定性的、不可篡改的分布式账本,它只能处理和存储在其内部发生的交易和事件。然而,许多智能合约的执行需要依赖于区块链之外发生的数据和事件,例如股票价格,天气情况,体育比赛结果等。这些数据和事件被称为“链外”(off-chain)数据和事件,而区块链上已经存在的数据和事件被称为“链上”(on-chain)数据和事件。由于区块链无法直接访问链外数据和事件,因此需要预言机作为一个桥梁,将链外数据和事件安全可靠地传输到区块链上,或者将链上数据和事件安全可靠地传输到区块链之外。
双花攻击的原理是利用区块链网络中的延迟和分叉现象,发送两笔或多笔相互冲突的交易,使得其中一笔交易被确认,而另一笔交易被回滚或忽略。例如,用户A有10个比特币,他先向用户B发送了10个比特币,然后在交易被确认之前,他又向自己的另一个地址发送了10个比特币。如果用户A能够控制足够多的算力或者幸运地挖出新的区块,他就有可能使得第二笔交易被接受,而第一笔交易被废弃。这样,用户A就实现了双花攻击,既得到了用户B的商品或服务,又保留了自己的10个比特币。
根据发生的时间和方式,双花攻击可以分为以下几种类型: