![[Pasted image 20241130200728.png]]

  • 遵循拜占庭协议的存储协议
  • 深度集成sui
  • 数据公开
  • 每个节点的数据都不是完整的
    • 基于数据保证

数据保障

![[Pasted image 20241130201137.png]]

  • 2/3的节点正常运作就可以正常运作

编码

![[Pasted image 20241130201550.png]]

  • 不同于拜占庭协议的双重保证
  • 将上传的数据编码成blob,分成k份,然后冗余到n份(n>k),经过。。。。。各种操作,存储到不同节点
  • 只剩1/3的节点时,数据也有可能存活

BLOB

![[Pasted image 20241130202507.png]]

非目标

![[Pasted image 20241130203153.png]]

  • 不能运行智能合约
  • 收费存储
  • 不能作为CDN使用

用途

  • 可以用来做layer2(不一定是公链)
    • 可以做数据验证
  • 可以写一些SDK工具
  • 可以用于网站的部署

warlus json

处理event方法

  • 只给他ID,用id去查、
    fetch数据在page中
    组件中处理数据

next.config去定义

do while

默认

hash指针

问:指针的地址只在本计算机有意义,那么hash指针是怎么在网络中传输的呢
答:在网络中传输时,只传输hash,不传输指针,全节点会把区块存储到(key,value)里面 ,然后在数据库(常用的是levelDB)里查找。
注意:1.key是hash,value是内容
2.区块链这种结构实际上实在levelDB这种数据库串起来的
3.实际系统当中hash指针其实是只有hash,没有指针
4.有一些节点没有保存所有区块的信息,想得到其他的要向全节点索取

区块恋

1.是指将私钥分隔开,多人保存的做法
问题1:会使私钥安全性降低,私钥长度影响破解难度![[Pasted image 20240420221819.png]]
注意:多人使用的账户需要使用multisig(多人签名),而不是区块恋
问题2:对UTXO集合不友好,增加负担

比特币怎么绕过分布式共识的不可能结论

1.严格意义上来说,比特币没达到真正的共识(例
:分叉)
注意:在异步(消息的延迟没有上限)的环境中,无法辨认一个远程的服务器是缓慢还是已经垮掉了。

BTC的稀缺性

1.挖矿难度低,出块奖励高

量子计算

取hash值一般会造成数据的损失
建议一个地址只用一次交易,一部分负责交易,一部分转给自己的其他账户,保证安全和隐私,量子计算也算不出来

1.转账交易时接收者不在线怎么办?
答:转账不需要接受者在线
2.全节点收到转账交易,接收者的收款地址是节点从未听说过的。
3,账户私钥丢失怎么办?
答:没有办法,但很多交易所会保管账户的密钥,可以通过这个来进行身份验证,但交易所可能被黑,导致私钥泄露,例,mr.gox
4.账户泄露了怎么办?
答:尽快转账到安全账户上
5.转账的时候写错了地址怎么办?
答:没有办法,转账交易无法取消,转给一个不存在的地址会使该金额无法被输出,会使全节点一直维护该UTXO集合,增大全节点的压力。
![[Pasted image 20240414205258.png]]
OP_RETURN——无条件的返回错误
只有在输出时(UTXO集合被消耗时),才会执行输出脚本
6.会不会有的miner会偷别的miner的nonce
答:发布的区块中有一个coinbase tx( troduction)——收款人地址,发布区块时必须修改为自己的,但是修改后merkel tree的root hash就发生改变,nonce值就会改变
7.怎么知道交易费该给那个矿工?
答:total inputs 和total outputs的差值就是交易费,由矿工自己收集,事先不需要知道给那个矿工![[Pasted image 20240414210618.png]]![[Pasted image 20240414210639.png]]每个区块最大大概能容纳4000笔交易

![[Pasted image 20240409180352.png]]注释:output——输出![[Pasted image 20240409180602.png]]
locktime——交易的生效时间(一般为0)
time——交易产生时间
blocktime——区块产生时间![[Pasted image 20240409180830.png]
vout——交易中的第几个输出
![[Pasted image 20240409181615.png]]asm——交易的具体内容
reqsigs——交易还需要多少个区块才能兑现![[Pasted image 20240409181901.png]]
先执行输入脚本再 执行输出脚本![[Pasted image 20240409182023.png]]
![[Pasted image 20240409182256.png]]![[Pasted image 20240409183515.png]]![[Pasted image 20240409183106.png]] P2SH应用:
1.多重签名
![[Pasted image 20240409185018.png]]
1.销毁比特币
AltCoin(Alternative coin):需要摧毁比特币才能得到的货币
2.往区块链里提交一些内容——销毁很少的比特币(也可以把比特币作为交易费交给矿工)来获得往链中写入信息的权利
比特币脚本语言一般不支持循环,所以不存在停机问题