欢迎光临散文网 会员登陆 & 注册

看完这个视频,你会比99.999%的人懂区块链

2021-12-24 19:52 作者:kbkyqyjhwbtdrdqs  | 我要投稿

区块链



是什么?


去中心化的数据库



原理和组成?


账户(中心化数据库:只有数据库管理人员可以创建账户):

  1. 任何人都可以创建账户(通过钱包app或代码);
  2. 可以往账户里放代码,被其他账户调用(智能合约):别的账户通过调用这个账户和账户里的应用进行交互;
  3. 组成:

地址:账号

密钥:密码(不被存储,保证安全)(密钥丢失的解决方案:multisig钱包等)


数字签名

1. 怎么证明一条消息是谁发的

非对称加密/公私钥加密[1]:即用私钥签名、公钥验签

公钥vk <= 一一对应,公钥/私钥加密可用私钥/公钥破解 => 私钥sk

2. 怎么证明一条消息有没有被篡改

交易的哈希值(指纹):

交易M =生成哈希值=> 指纹 H(M) =私钥sk签名=> 数字签名S(H(M))

btc交易里包括:交易数据M,公钥vk,数字签名S(H(M))


每个账户对应一个私钥

私钥生成公钥,公钥生成地址

想 操作地址(交易) 必须用私钥对 操作(交易数据) 的哈希值进行签名

公钥验签,证明消息来自私钥拥有者

验签得到的哈希值等于交易的哈希值则证明消息没被篡改


交易

被账号的私钥签名过的一系列指令

区块链的状态通过交易得到改变


区块:存放被公认的交易记录(是一系列的交易)

区块头:存放区块最基础的数据

(包括:区块对应的状态所存的地址、区块对应的交易所存的地址(交易的哈希值)、上一个区块的哈希值)

通过 区块头 我们可以找到此区块中包含的交易

区块链上的新的状态变化(新的交易)加入各个节点的方法:

所有区块链上的交易都会通知整个区块链网络(所有节点都能收到新的交易)

每隔一段时间选一个节点生成一个新的区块,其他节点检查是否合法,如果合法,新区快的生成者会获得一定的虚拟货币奖励。


共识机制


!怎么选择节点(新区块的选取):

  1. 不能让节点不付出代价地参与随机抽取(开放共识体系不可能存在[2])
  2. 节点必须付出资源才能参与新区快的生成

区块链的种类:

工作量证明(proof of work)—— 付出计算资源 —— btc、eth 1.0

权益证明(proof of stake)—— 付出金钱资源(抵押资金越多越有机会被抽中生成新区块)—— eth 2.0、cardano

——分支:历史证明,更公平—— solana

空间证明(proof of space)——付出储存资源—— chia、filecoin

区块链给到节点的预期收益必须大于节点预期付出的资源(虚拟货币奖励)


!以哪个节点的区块历史为准:

背景: pow区块链中两个节点同时解答出结果 等情况会造成不同节点历史不一样(分叉)

一般以最长的链为准(nakamoto共识算法):被最多的资源认证/经过最多证明,最可靠

加密经济学(用经济学原理让不同节点达成共识)

  1. 节点选择最长的链的动机:经济利益
  2. 但是节点还是有一定的动机发起51%攻击,解决办法:让攻击的预期收益远低于支出



更广义的区块链


layer 2:应用层(智能合约)

layer 1.5:计算层(智能合约运行的环境,储存智能合约运行的状态、数据、逻辑)=> 广义 (一台去中

layer 1:共识层(狭义区块链) => 区块链 心化的电脑)

去中心化的电脑被所有使用者共享


[1]

RSA公钥和私钥是什么?

首先来说,RSA是一种非对称加密算法,它是由三位数学家(Rivest、Shamir、Adleman)设计出来的。

非对称加密是相对于对称加密而言的。对称加密算法是指加密解密使用的是同一个秘钥,而非对称加密是由两个密钥(公钥、私钥)来进行加密解密的,由此可见非对称加密安全性更高。

公钥顾名思义就是公开的密钥会发放给多个持有人,而私钥是私有密码往往只有一个持有人。

公私钥特性

  • 公钥与私钥是成对出现的;
  • 私钥文件中包含了公钥数据,所以可以基于私钥导出公钥;
  • 密钥越长,越难破解,所以2048位密钥比1024位密钥要更安全;
  • 公钥和私钥都是密钥,被公开的那个就是公钥,没有被公开的那个就是私钥。

公钥和私钥都可用于加密和解密

公钥和私钥都可以用于加解密操作,用公钥加密的数据只能由对应的私钥解密,反之亦然。虽说两者都可用于加密,但是不同场景使用不同的密钥来加密,规则如下:

1、私钥用于签名、公钥用于验签

签名和加密作用不同,签名并不是为了保密,而是为了保证这个签名是由特定的某个人签名的,而不是被其它人伪造的签名,所以私钥的私有性就适合用在签名用途上。

私钥签名后,只能由对应的公钥解密,公钥又是公开的(很多人可持有),所以这些人拿着公钥来解密,解密成功后就能判断出是持有私钥的人做的签名,验证了身份合法性。

2、公钥用于加密、私钥用于解密,这才能起到加密作用

因为公钥是公开的,很多人可以持有公钥。若用私钥加密,那所有持有公钥的人都可以进行解密,这是不安全的!

若用公钥加密,那只能由私钥解密,而私钥是私有不公开的,只能由特定的私钥持有人解密,保证的数据的安全性。


[2]

开放共识体系:不做人数限制、不做用户权限认证

2005年《secure computation without authentication》证明这种系统无法保证诚实用户的共识能够获胜

恶意用户制造大量用户来占据网络的大多数(sybil attack)

2008年 satoshi nakamoto 比特币建立共识体制

sybil attack根源:恶意用户 低成本 参与

解决:大幅提升账户参与区块链抽取的成本

btc里:解数学难题(付出计算资源)后才有机会生成新的区块(更新区块链的状态)

“挖矿” => 避免sybil attack


看完这个视频,你会比99.999%的人懂区块链的评论 (共 条)

分享到微博请遵守国家法律