区块链是一种分布式(去中心化)的资料库(数据库、记账本),所谓去中心化,就是与我们平时所说的数据库(或者账本)不同,并不是只有系统维护者才可以更改数据库(记账),在区块链网络中,每一个用户(也称每一个节点)都参与记账,系统会挑选出在一个时间段内记账最快最好的用户,该用户把这段时间内的数据变化记录到一个区块中(可视为账页),并将这个区块备份给网络中的其他用户,下个时间段也会进行这个操作,周而复始,这样系统中每一个用户都有完整的账本副本。区块链技术也叫分布式总账技术。
区块链是比特币的一个概念,是比特币的底层技术,是使用密码学技术相关联产生的数据块。数据块中包含交易信息,不可篡改。
2008年11月1日,中本聪在网上发布了一篇技术论文《比特币白皮书:一种点对点电子支付系统》,两个月后,2009年1月3日他开发出了第一版比特币客户端,标志着比特币正式诞生。P2P形式的数字货币,去中心化支付系统。
特性:
区块链1.0:数字货币,比特币
区块链2.0:以太坊,智能合约
区块链3.0:区块链进入全应用时代
Token是区块链上流通的、带有价值的、加密的权益凭证。市场经常将Token翻译为“代币”,但最好翻译为“通证”,因为其不仅仅是代币,可以代表任何有价值的东西,代币、游戏币、代金券等。
有价值的Token至少是三权合一:
中本聪的比特币白皮书最早发布于“密码朋克”,狭义地说:密码朋克是一套加密的电子邮件系统,讨论的话题包括数学、加密技术、计算机技术等等,密码朋克的用户约1400人,早期的成员有非常多的IT精英,中本聪就是其中之一。据统计,密码朋克的成员讨论和发明失败的数字货币和支付系统多达数十个,因此中本聪发明的比特币并不是横空出世,而是基于吸取了前面数十次失败后发明出来的。
算力是比特币网络处理能力的度量单位。挖取比特币需要矿机,每个矿机每秒钟可以做多少次hash碰撞,就代表这台矿机的算力,单位是hash/s。
hash碰撞定义:给定表M,存在函数F(key),对任意给定的关键字key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数F(key)为哈希函数(Hash)
(1)当矿工“挖矿”赚取比特币
(2)收购别人的比特币
(3)通过比特币交易平台买入
(4)通过注册或做任务获得(仅限某些交易平台或相关网站,且奖励一般都很少,大部分在0.0001比特币)
(5)开店采用比特币收款
(6)通过工作获取比特币(仅限双方同意使用比特币作为工作酬劳)
在比特币系统中,每隔10分钟创建一个区块,这个区块记录了这段时间内发生的所有交易。同时,每个区块包含着前一个区块的ID,因此便可根据此ID找到上一个区块,以此类推,追踪到起始区块(创世区块),从而可以生成一个完整的交易链条,形成区块链。
公有链的三大特点如下:
第一,公有链可以保护用户权益免受程序开发者的影响。在公有链中程序的开发者没有权利干涉用户,所以用户权益更容易得到保护。
第二,公有链开放性强。在公有链上,任何用户都可建立 自己的应用,从而产生一定程度的网络效应。任何满足一定技术条件的人都可以访问,也就是说,只要有一台能够联网的计算机就能够满足访问的条件。
第三,数据公开透明。在公有链上的所有数据是默认公开 的,在这里每个参与者都可以看到系统中所有的账户余额和交易活动,也就是所谓的公开透明的分布式“总账”系统。不过,区块链的匿名性让参与者能够隐藏现实世界中的真实身份,从而找到了公开信息与个人隐私保护之间的一个平衡。
公有链的典型应用包括比特币、以太坊、超级账本、大多数“山寨币”等,区块链的起源也是由公有链开始的。
私有链有以下几个特点:
(1)私有链的交易速度非常快。
(2)私有链有更好的隐私保障。
(3)私有链有更好的节点连接。
(4)私有链的交易成本更加便宜。
联盟链的典型特点是,各个节点通常有对应的实体机构,只有得到联盟的批准才能加入或退出系统。各个利益相关的机构组织在区块链上展开紧密地合作,并共同维护系统健康稳定的发展。,
成立于2015年9月的R3区块链联盟是最典型的联盟链,目前已经有数十家国际银行和金融机构加入,成员遍及全球。这些成员包括纽约梅隆银行、花旗集团、德国商业银行、德意志银行、汇丰银行、日本三菱UFJ金融集团、澳大利亚国民银 行、加拿大皇家银行、法国兴业银行、多伦多道明银行、中国平安、瑞穗银行、北欧银行、意大利联合信贷银行、巴黎银行、富国银行、荷兰国际集团、麦格理银行、加拿大帝国商业银行等金融机构。
在线模板地址:https://anders.com/blockchain/hash
Hash值是对最上面的Block值+Nonce值+Data值进行运算后得到的,但是每次开始运算时,Block值和Data值是固定的,只有Nonce值在变化(每次计算时,Nonce值从0开始递增,直到计算出符合条件的额Hash值)。通过不断改变Nonce值来运算得到符合条件的Hash值,这个过程就称为挖矿。
我们随便输入Nonce值,点击Mine,开始挖矿。如下图,经过一段时间的运算,得到了符合条件的Hash值,(hash字符串的前四位都是0,0的个数代表了挖矿的难度,这里的挖矿难度就是4)
区块链中,每个区块都包含上一个区块的Hash值,图中的Prev的值就是上一个区块的Hash值。第一个区块没有上一个区块,所以Prev的值为0,一条区块链的第一个区块被称为“创世区块”
随便在这条区块链中的某个区块中添加数据,这个区块以及其后的所有区块都会变红,这就意味着,做了改变之后的Hash值已经不符合要求,此区块及之后的区块都需要重新挖矿。
分布式模板中,有三条区块链:Peer A、Peer B、Peer C。且每一条的内容都完全一样,每一个区块链,就代表一个节点,区块链网络中,每个节点都保存着所有的区块值。
Tx值,就是交易记录,也是区块中的Data。如步骤一所说:每一个区块可以包含一笔以上的交易记录。(简单点理解,Token就是区块中记录的有意义的数据,而不是我们测试时所输入的123等等)
区块中的第一笔交易。比特币网络约定每个区块的第一笔交易是coinbase交易,这是一笔为了让矿工获得奖励及手续费的特殊交易,即发行货币。
本文章是《合天网安实验室》学习笔记,侵删。