区块链技术到底是什么?
区块链:一种分布式的记账系统(分布式数据库)。通过全网共同验证交易、维护数据库的方式实现去中心化的目的。
基于密码学和分布式数据库的技术,将每个参与者都变成一个权力中心,通过共识算法和密码函数解决现实场景中的信任问题。
像电子链表,新数据出现,根据共识规则把所有数据打成一个新区块,连接再原链条的后面。每个参数者下载保存完整链条
区块链特性:
- 去中心
- 去信任
- 数据透明
- 数据不可篡改
什么是1:1准备金保证的数字货币?
准备金:金融机构为了应对大额提款时具备充足的清偿能力,会按库存现金比例存放在中央银行的存款。
1:1准备金:每一枚数字货币都有一个实物背书。有实物背书的数字货币比较稳定,可以作为投资者规避风险的工具。
- Tether公司发行的USDT: 1:1 的准备金保证,一枚USDT就有1美元背书
- 委内瑞拉政府发行的‘石油币’:50亿桶原油为其背书,一石油币等价于一桶原油
- BitShares平台推出的BitUSD 与美元挂钩
- 与人民币挂钩的BitCNY等
比特币地址和密钥之间有什么关系?它是如何生成的?
比特币地址:
- 接收,发送时都会用到比特币地址
- 由数字和字母组成的字符串,以1和3开头
- 以收款方形式出现
比特币:
- 建立在密码学基础上
- 其地址也是匿名的
- 不包含所有的任何信息
中本村利用椭圆曲线算法ECC先产生了比特币的公钥和私钥,然后进行一系列的数字签名运算得出我们使用的比特币的地址。
- 私钥随机生成器生成
- 私钥通过椭圆曲线算法、哈希函数等单向、不可逆算法推导公钥以及地址。
- 总共2100万,出块时间10分钟左右,4年减半,首次是依次出50枚。
- 私钥用来声明用户对比特币的所有权
- 由私钥推导出公钥,反之则不行。
- 非对称机密算法在这里承担了权威第三方认证到的工作
实际交易:
- 使用比特币钱包接收生成的比特币地址
- 转账时扫描二维码或手动输入接收方的转账地址,完成交易
- 加密货币一般接收打一笔汇款后就会改一次比特币地址、
- 鼓励使用新地址交易,便于提高匿名性
- 同一钱包旧地址依然可用
比特币是如何发行的?
比特币:一种建立在区块链技术上的加密货币,没有特定的发行机构,是由系统自动生产一定数量的比特币作为矿工奖励来完成发行过程的。
比特币区块链:相当于一个账本,每个区块都是账本中的一页,所有比特币交易都需要通过矿工挖矿,来记录到这个账本中。
矿工挖矿:通过一系列算法,计算出符合要求的哈希值,从而争取到记账权。
- 试错的过程:每秒产生的随机哈希碰撞次数越多,计算出正确的哈希值概率越大
- 最先计算出的就将比特币交易打包成一个区块,记录到整个区块,获得奖励
- 激励矿工维护区块链的安全性和不可篡改
什么是比特币全节点?它对整个比特币网络意味着什么?
节点:
- 矿工
- SPV轻钱包的普通用户
- 全节点用户(比特币去中心化特性):通过比特币客户端,下载并保有完整区块链数据的节点。他们能够独立效验所有比特币交易,并且实时更新数据。
早起没有其余用户的比特币网络中,所有运行比特币客户端的都可以看做一个全节点,保存着整个比特币区块链的数据,并且形成一个点对点的网络。
交易过程:
- 新交易出现,接收到的节点会都每笔交易是否余额充足可供支出,是否存在双花问题,脚本是否符合规定等条件进行验证。
- 验证通过,发给网络其他节点,并将这些信息保存在本地内存中。
- 所有节点完成对交易的验证之后,这笔交易就保存在了所有全节点的内存中。
- 从而确保了交易的安全性和区块链的不可篡改性
通常情况:比特币节点数量越多,网络安全性越高
比特币区块链上的交易是如何进行的?
交易:本质上就是资产所有权的转移。
比特币交易:记录在区块链当中的比特币所有权的转移。就是一个地址向领一个地址转账的过程。
比特币交易过程中,使用到了公钥私钥,来确认比特币的所有权以及对交易进行签名。私钥是随机字符串,私钥可以推出公钥。所以拥有私钥,就拥有比特币的支配权。
发起交易 -> 私钥签名(许可,不被修改) -> 广播到比特币网络等待确认 -> 矿工计算哈希值争取记账权 -> 打包成区块 -> 上传到区块链中 -> 6个以上区块确认 -> 转账完成
比特币交易就是经过签名运算,表达价值转移的过程。通过比特币网络传输,矿工打包到区块,永久保存在区块链上。
交易 = 输入 + 数额 + 输出
比特币钱包中的账户余额指的是什么?
比特币余额:比特币钱包应用派生出来的产物,中本聪设计的比特币系统中,没有余额这个概念,只设计了UTXO的概念。
UTXO:未花费的交易输出。每一笔比特币交易实际上都是由若干个交易输入和交易输出组成的。
- UTXO一旦创建就不能被分割。只能全部花费掉,如果有余,多余的会再转给自己,产生新的UTXO,周而复始。
- 比特币钱包中所看到的账户余额,实际上是钱包通过扫描区块链并聚合所有属于该用户的UTXO计算得来的。
UTXO和账户系统对比
- UTXO只看最后一次交易,账户系统需要看所有的增减操作。随着时间和交易量的加大,效率差异会越来越大。
- UTXO未来可以裁剪历史老数据,而账户系统则不能丢弃老数据,前者区块链可以控制住整体大小,而后者只能持续膨胀。
为什么说助记词和私钥同样重要?
私钥:由加密算法生成的一个32字节随机数,由64个十六进制的字符组成。一个钱包只有一个私钥,不能修改。没有规律可读性低。
助记词:代替私钥,方便记忆。将64位私钥转换成若干个常见的英文单词或其他语言版本的词汇,这些词汇均从固定的词库中得到,不同钱包可以使用不同的词库。
- 助记词只会在创建钱包的时候出现
- 私钥的另一个表现形式
一笔有效的比特币交易经历了哪些步骤?
1、交易发起方生成私钥(椭圆曲线算法ECC),对交易进行数字摘要,浓缩成字符串,再用私钥对摘要签名
- 数字签名:确保信息来源以及数据的完整性,方式交易信息被伪造
- 修改交易信息后,原数字签名就失效了。
2、将交易信息和数字签名广播到整个网络,接收到的矿工,通过公钥解密数字签名,验证。通过则由矿工打包上传到区块链
- 用钱包转账的时候,只需要填写转账地址、转账金额、矿工费即可
比特币的哈希函数
哈希函数是信息技术领域的基石,也是比特币协议的总要组成部分。
- 公钥产生
- 地址产生
- 挖矿等
哈希函数就是一种特殊的数字方程式,也叫散列算法
- 可将任意长度的二进制值映射为较短且固定长度的随机字符串(哈希值)
- 随机性
- 抗碰撞性
- 不可从结果反推原始输入值
每个区块都会引用前一个区块的哈希值,环环相扣,紧密连接。
全节点钱包和轻钱包的区别?
钱包:管理私钥、地址以及区块链数据的作用
区块链数据维护方式来分类
- 全节点钱包
- 参与到网络的数据维护中,同步了区块链上的所有数据
- 更为隐秘、验证更快
- 代表性的 Bitcoin Core
- 需要大硬盘空间
- 轻钱包
- 参考了中本聪提出的SPV机制
- 不存储完整的区块链数据
- 也会下载新区块的数据,但是会对数据法分析,只保存于自身想过的交易数据。
- 运行时依赖比特币上其他全节点
- 代表性的 Electrum和Bither
什么是双花问题?
数字化货币系统中,由于数据的可复制性,使得系统可能存在同一笔数字资产因不当操作被重复使用的情况,称之为双花。
解决办法:
- 依赖第三方信任即构对数据进行中心化管理,并通过实时修改账户余额的方法
- 去中心化的点对点价值传输系统中,比特币采用UTXO、时间戳等技术解决
- 接收到交易的,会先去验证是否被花费过(存在于UTXO中),不存在,验证失败
- 防止一个UTXO被重复使用,加入了时间戳
- A 将 1BTC 同时转给B,C ,两笔交易仅有一笔会完成。
- 挖矿节点会记录优先接收到的或手续费高的那笔交易
- 交易被先后记录,根据时间戳的数据,最先被记录的交易才能成功验证。
- 即使2个交易分别被2个节点记录并验证为有效交易,且将各自挖出包含相关交易的新区块同时广播到比特币网络中。也不会出现双花现象。
- 根据比特币协议,当两个节点同时生产新区块时,区块链会出现分叉
- 只有最先生成新区块并成为当前最长链上的交易,才能被认证。
- 通常超过6个区块对交易进行确认之后,该转账过程才算成功
- 比特币区块链中也会出现双花问题,比如”遭受51%算力攻击”的时候。
什么是区块链的共识机制?
非对称加密、时间戳等密码学技术,让其在没有第三方权威机构支持下,实现有效的价值信息转移。
共识机制:解决了“区块链如何再分布式场景下达成一致性”这以问题。
由于点对点交易,使各个节点所观察到交易事务的先后顺序出现一定差异。所以需要一套机制,在差不多时间内对发生事务的先后顺序达成共识。
共识机制:在区块链网络内起到决定谁负责生成新区块以及维护区块链统一的作用。
- PoW(工作量证明):按劳分配。(比特币之外,莱特币、以太坊等加密货币)
- PoS(权益证明):股权分配的PoS机制,根据用户持币量以及持币时间来发放利息的制度.
- DPoS(股份授权证明):权益证明机制下衍生出来的共识方案,最早被应用于比特股
- 分布式一致性算法:如PBFT,则是传统场景下常用的共识机制。
科学家普遍认为,在分布式场景下达成完全一致性是不可能的,所以基于区块链设计各种共识机制,是在牺牲一部分代价的基础上实现一致性的。
- 因为网络延时的情况下,会出现极少部分矿工同一时间生成合格区块的情况。此时就会产生分叉。
- 需要等待6个区块确认后才承认最长的链为合法链。
拜占庭将军问题指的是什么?
区块链解决了闻名已久的拜占庭将军问题
拜占庭军队内所有将军必需达成一致的共识,才能更好地赢得胜利。但是,在军队内有可能存有叛徒,扰乱将军们的决定。这时候,在已知有成员不可靠的情况下,其余忠诚的将军需要在不受叛徒或间谍的影响下达成一致的协议。
莱斯利·兰伯特( Leslie Lamport )通过这个比喻,表达了计算机网络中所存在的一致性问题。这个问题被称为拜占庭将军问题。
网友评论