- 博客(32)
- 收藏
- 关注
原创 MEV和DEX
三明治攻击:DeFi交易的时候,可以通过改变交易顺序来获取币,比如A买B的交易,操作者可以在你前面放一笔交易,先买,抬价,然后再卖获得差价。
2025-09-17 17:24:42
246
原创 PBFT①
FLP不可能性定理是分布式计算领域的一个基础理论,由迈克尔·S·菲舍尔(Michael S. Fischer)、南希·林奇(Nancy Lynch)和迈克·帕特森(Mike Paterson)在1985年提出。共识问题是指在多个进程中,即使在存在故障节点的情况下,也要使得所有非故障节点最终就某个值达成一致的问题。DAG(有向无环图)的异步共识算法是一种基于DAG数据结构的分布式共识机制,旨在解决传统区块链在交易速度和扩展性方面的局限性。
2025-09-17 12:01:33
243
原创 区块链文献阅读①
S:susceptible未感染的 I:infected已感染的 R:removed所有都有数据。②反熵:异步的把数据再集体中复制 SI 每个节点周期性随机选择一组节点,互相交换差异数据。③谣言传播:异步的把数据再集体中复制 R。①直接邮寄:节点收到更新数据,直接转发。论文名称:以异步共识组来拓展。
2025-09-16 13:21:49
138
原创 区块链学习二十三——反思
反人类,我给你转账,你调用我函数。智能合约是用来编写控制逻辑的,互不信任的实体建立共识(好几台计算机重复同样操作)nothing is irrevocable 没有什么是不可挽回的。不可更改性 没有办法阻止调用。分叉恰恰是去中心化的体现。去中心化≠分布式系统。大规模计算服务:云平台。常用智能合约变成模板。
2025-09-15 16:55:23
141
原创 区块链学习二十三——TheDAO
硬分叉:把the dao所有账户的资金转到新的智能合约上,退款。软分叉:协议升级,凡是跟the dao有关的,都不准交易。两条链增加一个chain ID。BTC实现了去中心化的货币。ETH实现了去中心化的合约。
2025-09-15 15:39:40
228
原创 区块链学习二十一——权益证明
epoch减少为50,每个epoch一轮投票,对于上一个epoch来说是commit 下一个来说是prepare。过度阶段:混合使用(挖矿+权益证明) finality:包含在其中的交易不会取消。引入:验证者validator 投入一定数量的保证金 职责:达成共识,哪条是合法链。做法:每挖出100个区块作为一个epoch two-phase commit。gadet(FFG)准备采用的权益证明。混合型:持有的币越多,挖矿难度越小。你有多少这种币种的币决定投票权。BTC的能耗随时间不断增长。
2025-09-14 22:50:15
210
原创 区块链学习二十——难度调整算法
BTC是每隔2016个区块调整挖矿难度,目标维持出块时间在10min左右。ETH是每个区块都有可能调整挖矿难度,维持15s左右。以太坊中 最长合法连=最难合法连。
2025-09-14 16:18:58
250
原创 区块链学习十九——挖矿算法
litecion的puzzle 是用scrypt,一个对内存要求很高的hash函数。以太坊很早就说要转向权益(股份)证明,但是现在还是工作量证明。开辟个很大的数组, 需要读取数组 实际128k。hashrate 系统中所有矿工每秒计算的hash次数。轻节点保存16M的cache 矿工保存大数据集。发行货币时,预留一部分货币给以太坊的开发者。以太坊挖矿主要以GPU为主,比莱特币成功。最大的以太坊矿池所占的算例比重。以太坊用的两个数据集一大一小。ethash算法伪代码。拿最初的货币来换钱投资。
2025-09-14 15:48:24
360
原创 区块链学习十八——GHOST
分叉会变成orphan block(孤儿块)stale block(不新鲜块)矿池会有很大优势,因为容易出现分叉(因为出块时间短)① 挖到矿,但是没得到认可的安慰7/8的奖励 招安。改协议:鼓励及早进行合并,限制7代降低维护成本。故意不招安,打击对手。
2025-09-14 11:41:31
212
原创 区块链学习十七——交易树和收据树
块头里有总的bloom filter 是区块里所有bloom filter的并集。merkle tree 交易树和收据树的节点一一对应 都是MPT。缺点,例如A给B,要找到A的账户和B的账户很麻烦,还要确定B是否存在。交易树和收据树都是只组织当前的交易,状态数包括所有状态。这样就与状态树和收据树一致了,而且能大幅度缩短状态树。以太坊的运行过程可以看成一个交易驱动的状态机。②状态树可以改成只和当前区块相关的状态吗?可以支持查找某个元素在不在某个集合里面。UTXO是BTC的状态。ETH是状态树的状态。
2025-09-14 10:17:30
225
原创 区块链学习十六——状态树
所有的账户组织成一个patricia tree,用路径压缩提高效率,把普通指针换成hash指针,得到一个根哈希值,写入block header。键树(Keyword Tree),又称数字搜索树(Digital Search Tree)或。merkle tree 没有提供一个高效的查找方法,而且树不唯一,很hash不一样。BTC的merkle tree 构架完就不会再改了,没有提供查找和更新的方法。组织merkle tree 取根哈希值,构造merkle tree代价太大。③用排序的merkle tree。
2025-09-13 20:52:34
549
原创 区块链学习十五——账户
double spengding attack花钱的人不诚实。replay attack 重放攻击 收钱的人不诚实。②合约账户 不能主动发起一个交易。①外部账户 公私钥产生。方法:加入nonce计数。
2025-09-13 14:03:03
161
原创 区块链学习十四——以太坊的概述
以太坊设计的mining puzzle对内存要求很高。对智能合约的支持,smart contract。限制了asic芯片的使用。用权益证明代替工作量证明。
2025-09-13 13:35:18
141
原创 区块链学习十三——思考
key通过levelDB找到value value里面有前一个的key(哈希)全节点存储在一个(key,value)数据库里 levelDB。分布式系统的理论证明了 在异步的环境中不能区分垮掉还是运行缓慢。截断私钥的方式会降低账户的安全性,而且会增加UTXO。所谓的哈希指针只是说法,实际使用没有指针,只有哈希。取hash会造成信息的损失,不可逆。好的货币不应该限制数量,且能通货膨胀。因为指针在不同电脑上指示的地方不同。加密是不丢失信息的,解密才能还原。怎么找到前一个前一个区块的内容。
2025-09-13 13:08:02
205
原创 区块链学习十二一——BTC匿名性
证明账户是我的,证明我知道私钥,又不能告诉你 私钥取哈希,你验证(有争议)不常用 影响匿名性的因素:与实体的交互,还是会产生暴露。①网络层:TOR洋葱路由 多路转发 路由转发只知道上一跳。②应用层:coin mixing 币混在一起,再返回。比特币很大程度上提供了匿名性,但是不能消除关联性。①可以生成很多地址账户,账户可以被关联起来。在线钱包 带有coin mixing性质。交易所 带有coin mixing性质。随机化处理,防止遍历,保证x+y不变。BTC的账本是公开的。
2025-09-13 11:33:42
267
原创 区块链学习十一——问答
②全节点收到转账交易,有没有可能转账的收款地址从来没有听说过?③ 如果账户私钥丢了,该怎么办?①转账交易接收者可以不在线吗?账户的钱转到另一个安全账户上。④私钥泄露了怎么办?
2025-09-12 21:08:48
112
原创 区块链学习十——BTC分叉
例子:①把coinbase域后面几位改成utxo组成merkle tree的根哈希,可以验证账户余额。soft fork 半数以上的算力的节点更新了,可就会有临时分叉,不会有永久分叉。redeem script 旧节点只会做第一阶段的验证,新节点会做全部验证。forking attack 分叉攻击 deliberate fork。②protocol fork 协议分叉(不同版本的协议)hard fork 系统所有的软件更新了,才不会有。两条链各带一个chain ID分开。①state fork 临时分叉。
2025-09-12 19:14:09
257
原创 区块链学习九——比特币脚本语言
输入和输出脚本的执行输入输出脚本的形式①把输入脚本里的签名压入栈②把输出里的公钥压入栈③弹出栈顶元素用公钥检查签名是否正确 正确:true①签名压入栈②把公钥压入栈③把栈顶的元素复制一遍④栈顶元素取出取哈希值,再压入栈⑤把输出脚本提供的哈希值压入栈⑥弹出栈顶的两个元素,比较是否相等⑦公钥检查签名,是否正确①压入输入脚本的sig压入栈②serirs脚本压入栈③取哈希,得到serirs的哈希④输出脚本的哈希值压入栈⑤比较两个哈希值是否相等⑥pubkey压入栈⑦验证。
2025-09-12 13:06:48
266
原创 区块链学习八——挖矿
第三代ASIC芯片 application specific integrated circuit。第二代GPU挖矿 图形处理器:通用并行计算设计的(深度学习)② 共识机制的保障——> 银行人员遵守规定,不给坏人。第一代cpu挖矿 性价比太低,很多部件没用。①密码学上的保障——>无法伪造签名。
2025-09-11 23:15:41
190
原创 区块链学习六——网络
加入节点:种子节点——>知道其他节点,tcp联系(有利于传统防火墙)——>离开自动删除。每个节点维护一个等待上面的交易的集合,写道区块链中就从集合中删除。去中心化的问题:有的节点不一定按照比特币协议要求进行转发。每个节点维护一个邻居节点, flooding传播。
2025-09-11 13:15:17
239
原创 区块链学习四——协议
在一个异步的系统里,网络传输时延没有上限,即使只有一个成员有问题,也不能取得共识。sybil attack 女巫攻击,投票的情况下,不停产生账户获得投票权。有临时性的分叉(等长),维持一段时间后会有个胜出(先找到下个区块)计算力投票,只有找到nonce,获得记账权(挖矿)公钥hash:和上面的收款人的公钥hash对应。数字货币可以用签名来鉴别,但是没办法防止复制。输入脚本拼接前面交易的输出脚本,没错误通过。收款地址:公钥取哈希转换(银行账号)币的来源:收款人公钥hash。收款人公钥hash:银行账户。
2025-09-11 10:57:23
527
原创 区块链学习五——实现(续)
求hash只用到了block header(没有具体交易信息)的值,bh只有一个mekle tree的根哈希就能保证交易没法窜改。memoryless:将来还要挖多久和现在已经挖了多久是没关系的(无情!)(但也是挖矿公平性的保证)block reward 出块奖励是系统中产生比特币的唯一途径。①写入虚假交易——>诚实的节点不会接受,沿着上一个扩展。如果记账全落到一个恶意的节点手里(邪恶😈)如果记账全落到一个诚实的节点手里。配对后完成的 ——>交易合法。BTC总量上限2100万枚。出块奖励每隔4年减半。
2025-09-10 22:31:30
347
原创 区块链学习五——实现
挖矿:外层循环调整coinbase域的extra nonce——>算出block header里的哈希值——>内存循环再调整nonce。①出块奖励——>coinbase transaction(获得报酬 )block reward 每21万块减半。②交易费——>transaction fee 把交易打包到区块里,给小费。transaction—based ledger 基于交易的模式 比特币。是指在数字货币系统中,同一笔数字资产被重复使用的情况。UTXO中每个元素要给出这个。隐私性强,但没有账户概念。
2025-09-10 20:59:50
172
原创 区块链学习三——数据结构
哈希指针除了要保存内存地址之外,还要保存这个结构体的哈希值。好处:方便找到结构体的位置同时检测结构体内容有没有被修改。most recent block(最近产生的区块)gemesis block(创世区块)用哈希指针代替了普通指针。
2025-07-13 01:00:48
268
原创 区块链学习二——密码学原理
输入空间较大 输出空间较小,出现哈希碰撞的情况很常见。实际中,靠一个个数试,去找到两个不同的数的哈希值是相同的,几乎是不可能的。1.哈希碰撞(collision resistance)哈希碰撞的含义:不同的输入,哈希值是相同的。MD5算法已经可以人为的制造哈希碰撞。因此该算法已不安全。比特币中使用到了密码学的知识,主要是哈希函数与数字签名。
2025-07-12 13:48:52
327
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅