区块
所谓区块是构成区块链的基本单元,他由包含原数据的区块头和包含交易数据的区块主体构成。
区块头包含了三组原数据:
第一组:用来连接前面的区块以及索引自父区块哈希值的数据。
第二组:挖矿难度、Nonce(随机数,用于证明工作量算法的计数器)、时间戳。
第三组:能够总结并迅速归纳校验区块中全部交易数据的树根数据。
在整个区块链系统里,大约每十几分钟就会创建一个区块,这个区块里面包含了这段时间全网范围内发生的所有交易,每一个区块也包含了前一个区块的识别码,这样以来就使得每一个区块都能找到他前面的一个节点,一直倒推就形成了一条完整的交易链条。从区块链诞生之初到现在。全网已经形成了一条唯一的主链。
哈希算法
哈希算法是区块链中保证交易的信息不被轻易篡改的单向密码机制。哈希算法在收到一段明文之后,以一种不可逆转的方式将其转化为一段长度比较短、位数固定的散列数据。他具有两个特点:
第一, 整个加密的过程是不可逆的,这也就意味着我们没有办法通过输出的散列数据倒推原来的明文。
第二, 输入的明文和输出的散列数据是一一对应的,任何一个输入信息的变化,都会影响最终输出数据的变化。
在区块链的世界中,通常使用SHA-256(安全散列算法)进行区块的加密,其长度为256位,最终输出的结果是一串长度为32字节的随机散列数据,区块链通过哈希算法对正在交易的区块中的信息进行加密,并将其压缩成为一串数字和字母组合的散列字符串。区块链的哈希值能够准确而唯一的识别并标识一个区块,其中任何一个节点都能够通过简单的哈希计算获得这个区块的哈希值。如果计算出的哈希值没有变化就意味着区块中的数据没有被篡改。
公钥和私钥
公钥和私钥是区块链中经常听到的一个词汇,通俗来说就是一种不对称的加密方式,是对过去传统的对称加密方式的升级和提高。
我们用常见的电子邮件加密的模型来简单做一个解释,所谓公钥,就是给大家用的,我们可以通过电子邮件发布,也可以通过网站来让别人下载,公钥就是用来加密的。而私钥,则是自己的,必须小心保存,最好加上复杂的密码来确保其安全。私钥用来解密,并且私钥通常由个人拥有。在比特币的系统中,私钥的本质是32个字节组成的数组,公钥的地址和生成都依赖于私钥,有了私钥就能够生成地址,就能够花费对应地址上的比特币。
领取专属 10元无门槛券
私享最新 技术干货