ac8665a80a4fbb0e649a056f917241b3 #hashAmatic #hash
74482130b7a7650845c9c9a928df644c #hashAmatic #hash

(6/n)

  • 自私挖矿
  • 挖到区块先藏着不广播 → 继续挖下一块 → 等时机再一次性广播两块

    ~~(因为矿工广播区块,其他矿工立刻收到,放弃当前计算?不对不对,是因为没有播报,然后区块内容是错误的,然后大家都白挖了?时机是什么时候?)~~

    自私矿工偷偷挖到第101块不广播 →
    其他矿工还在基于第100块挖 →
    其他矿工也挖出了第101块,准备广播 →
    自私矿工此时立刻广播自己的101块 + 已经挖好的102块 →
    自私矿工的链:100→101→102(网络规则:选最长链,胜出)
    其他矿工的链:100→101(作废,孤块没有奖励)
    夺笋,但是需要巨大的算力,想了下如果有好几个自私矿工,就变成囚徒困境了:所有人都作恶 → 集体崩盘
  • 51%攻击
  • 控制了全网 >50% 算力 → 比其他人更快延伸链 → 可以重写最近的交易历史 → 先付款买东西,收到货后撤销交易

    ~~(为什么?)~~

    正常链:...→ 100 → 101(含:我付给商家1 XMR)→ 102 → 103
    攻击者:...→ 100 → 101'(不含那笔付款)→ 102' → 103' → 104'
    攻击者由有超过50%的算力:链延伸更快
    时间够长 → 攻击者的链更长 → 网络接受新链 → 旧链作废,覆盖成功
    付款记录消失,货已经收到,所以也叫“双花攻击”
  • XMR保护机制:
  • 抗 ASIC 的算法,比特币用SHA256,Monero用RandomX,专门为CPU优化设计,让CPU和ASIC差距极小 → 算力极度分散在全球普通电脑上;

    LWMA:使难度调整更灵敏,防止算力突然涌入薅羊毛后撤走。

    #monero #xmr #hash #nonce #crypto

    (5/n)
    Monero挖矿流程:

    • 用户发起交易 → 广播到网络
    • 矿工收集交易 → 打包成候选区块
    • 矿工不断改变 nonce → 反复计算哈希
    • 找到满足难度的 nonce → 区块成立
    • 广播区块 → 其他节点验证 → 上链
  • nonce:Number used Once,是 32 位整数,最大只有约 42 亿种可能,唯一作用用于让哈希值变化

    hash(区块内容 + nonce=114514) = abcd... ❌
    Hash(区块内容 + nonce=222222222) = jklm ...❌
    Hash(区块内容 + nonce=369963369) = 0001... ✅
  • 区块内容:

    上一个区块的哈希值(固定)
    所有交易的根哈希(矿工选择)
    时间戳 (当前时间)
    当前难度(网络自动计算,固定)
  • 答案哈希:

    哈希结果 < 目标值,由网络自动计算的当前难度决定这次目标值
    然后开始计算Hash(区块内容 + nonce=XXXXX)
    矿工通过修改nonce,找到一个哈希,哈希结果 < 目标值
    (有可能试了42亿个nonce可能都没有符合条件的哈希结果,这时需要修改时间戳:小范围浮动,或交易列表:加一笔/删一笔,来改变区块内容,再尝试nonce)
    这个矿工广播区块
    → 其他节点验证 → 链上+1
    → 其他矿工立刻收到 → 放弃当前计算 → 基于新区块重新开始
    (选择nonce应该会有什么策略?我能想到的就是从中间开始算?或者划分间距,均分算力?)
    矿池的做法:
    矿工A:负责 0 ~ 10亿
    矿工B:负责 10亿 ~ 20亿
    矿工C:负责 20亿 ~ 30亿
    大多数矿工:用顺序遍历而不是随机
    矿工A的区块内容:
    交易列表:[tx1, tx2, tx3]
    时间戳:10:00:00.001
    extranonce:A的任意数据
    矿工B的区块内容:
    交易列表:[tx1, tx2, tx4]
    时间戳:10:00:00.003
    extranonce:B任意数据
    单独挖:很久才赢一次,收益极不稳定
    加入矿池:有稳定的小额收益,按算力贡献分成
  • #monero #xmr #hash #nonce #crypto

    (4/n)

  • Monero 'Fluorine Fermi' (v0.18.4.4-release):软件版本,Monero每个版本都有元素周期表命名,Fluorine Fermi = 氟 + 费米

  • Height: 2140052/3630686 (58.9%)

    2140052 —— 本地已同步到第 214 万块
    3630686 —— 主网当前最新块高度363万块
    58.9% —— 同步进度
    Monero 的奖励是一条递减曲线,120秒产出一块(120s是目标,一般是120s左右波动),早期区块 ~35 XMR/块,慢慢递减...,进入尾部排放 → 固定 0.6 XMR/块
    一个有趣的网站:Monero区块浏览器 https://moneroexplorer.org
  • not mining:表示没有在挖矿,只是在跑全节点验证区块

  • net hash:那个年代的算力

    net hash ≈ 当前难度 ÷ 出块间隔(120秒)
    2014年的区块 → 当前难度很低 → 显示 net hash 很小
    2026年的区块 → 当前难度很高 → 显示 net hash 1.37 GH/s
    1 GH/s = 1000 MH/s = 10亿次哈希/秒
    矿工算力增加 → 出块变快 → 网络自动调高难度 → 出块速度回到2分钟(怎么这么像内卷2333)
  • v12 位当前区块使用的协议版本号,较新,可以看(3/n)的截图,所在的是v1v4v6 ...

  • 12(out)+0(in) connections:12个连出去的节点、0个连进来的节点

    好像有点吸血鬼了?好像是因为18080 端口没有暴露到公网,等我跑完就开  
  • uptime 0d 1h 35m 59s:已运行1h 35m 59s

  • #monero #crypto #xmr #hash

    2aca594b0ac6e4e8d0f976a708198139 #hashAmatic #hash
    bfba3ad539e8ad8e8fed330e16bf0b67 #hashAmatic #hash
    7ae6368db490c6b80e98b7595bbdb9de #hashAmatic #hash
    3b33a9b43edfba8f2768d9f7ed04a71b #hashAmatic #hash
    0e4bbffab43da26d7416df61e777b248 #hashAmatic #hash