一、前言村里那本“糊涂账”大家好我是你们的老朋友小码哥。前几天回老家正好赶上村里年底分红。我二大爷拎着个破旧的本子气呼呼地来找我“小码啊你懂电脑你给评评理去年咱们村集体鱼塘卖了八万块村长说只卖了五万剩下三万哪去了这账本全在他手里他说多少就是多少咱也没法查啊”我一看这不就是典型的“中心化记账”问题吗村长一个人管账本他想改就改想删就删咱们普通村民一点办法都没有。但今天我要告诉你一个神奇的东西——区块链。别被这高大上的名字吓到说白了它就是一本全村人一起记、谁也改不了的账本。这篇文章我就用咱们农村最熟悉的“记账本”场景把区块链最核心的“去中心化”讲得明明白白。保证你听完就能跟菜市场大妈吹牛二、传统记账为什么村长能偷偷改账先说说咱们村以前是怎么记账的。村里有个集体账本专门记录村里的收入和支出。比如2025年3月卖鱼塘收入8万元2025年5月修路支出2万元2025年8月买化肥支出1万元这个账本平时放在谁手里村长手里。问题来了村长可以改账他偷偷把“8万”改成“5万”没人知道。账本可能丢万一村长家着火了账本烧了全村人的账就全没了。村民不信任年底分红时村长说剩多少钱就是多少钱村民只能干瞪眼。这就是典型的中心化记账——一个人说了算其他人只能信。那有没有办法解决呢当然有咱们老祖宗其实早就想出了一个办法——“互相监督”。三、分布式记账全村人一起记谁也别想赖账假设咱们村换一种记账方式每家每户都发一个一模一样的账本。每次村里有收入或支出不是村长一个人记而是全村100户人家同时记。比如今天卖鱼塘收入8万元村长在自己家账本上记一笔“2025年3月1日卖鱼塘收入8万元”张三在自己家账本上也记一笔“2025年3月1日卖鱼塘收入8万元”李四、王五、赵六……全村100户人家都记上这一笔这时候村长想偷偷把8万改成5万门儿都没有因为其他99户人家的账本上都清清楚楚写着8万。除非村长能跑到全村99户人家家里把所有人的账本都改了——这几乎不可能。这就是分布式记账的核心思想账本不放在一个人手里而是分散在所有人手里。在计算机世界里这个“全村人一起记的账本”就叫区块链。每个村民的账本就是一个节点全村人一起记账的过程就叫共识机制。四、区块链到底长啥样——用“连环账本”来理解你可能要问了“那区块链这个名字是怎么来的跟‘链’有什么关系”别急咱们接着讲故事。假设咱们村开始用新方法记账了。每次记账不是随便写在一页上而是一页一页地装订成册。每一页都记录着这一段时间内村里发生的所有账目。关键来了每一页的末尾都要写上上一页的“指纹”。什么叫“指纹”就是这一页所有内容的唯一编号。比如第一页的内容是“卖鱼塘8万、修路2万”通过一个数学公式算出来一个编号比如“ABC123”。然后第二页的开头就写上“上一页编号ABC123”。这样一来每一页都跟上一页紧紧连在一起形成一条链。如果有人想偷偷改掉第一页的内容第一页的编号就会变成“DEF456”但第二页开头写的还是“ABC123”对不上号了全村人一看就知道有人改账了。这就是区块链名字的由来——“区块”就是每一页账本“链”就是这些编号连成的链条。用技术术语来说区块Block记录一段时间内的所有交易数据哈希值Hash就是那个“唯一编号”由数学公式计算得出链Chain每个区块都包含上一个区块的哈希值形成链条五、共识机制全村人怎么“投票”决定谁记对了故事讲到这里你可能又有一个疑问“全村100户人家一起记账万一有人记错了怎么办比如张三喝醉了把8万记成80万那账不就乱了吗”好问题这就引出了区块链另一个核心概念——共识机制。咱们村想了个办法每次记账不是所有人同时记而是先选出一个“记账员”由他来负责把这一段时间的账目整理好、写在新的一页上然后发给全村人核对。那怎么选这个“记账员”呢咱们村可以有好几种选法方法一谁先解出数学题谁记账工作量证明村长说“我出一道很难的数学题谁先算出来谁就当这次记账员。”比如题目是“找到一个数字跟这一页的账目内容拼在一起算出来的编号以三个0开头。”全村人开始疯狂计算。张三算了一万次没找到李四算了两万次也没找到王五算到第36542次的时候终于找到了王五赶紧把答案公布出来“我找到了数字是12345拼上账目内容算出来的编号是000ABC123”其他人一验证果然编号以三个0开头说明王五没作弊。于是王五就成了这次记账员他把这一页账本发给全村人大家核对无误后都把这个新页加到自己的账本里。这就是工作量证明Proof of WorkPoW——比特币用的就是这种方法。谁算得快、算得多谁就有机会记账。当然算题需要消耗大量电力和算力这也是比特币被诟病“太费电”的原因。方法二谁存的钱多谁记账权益证明村里觉得算数学题太费电了于是换了个方法“谁在村里存的钱多谁就有更大的机会当记账员。”比如张三存了1000块李四存了500块王五存了200块。那张三被选中的概率就是李四的两倍、王王的五倍。这种方法叫权益证明Proof of StakePoS——以太坊现在用的就是这种。它比工作量证明省电得多但也有一个问题有钱人越来越有话语权。方法三轮流记账委托权益证明村里又改进了一下“大家先投票选出21个最靠谱的人当‘代表’然后这21个人轮流记账。”比如张三、李四、王五等21人被选为代表今天张三记明天李四记后天王五记……如果谁记错了或者故意捣乱大家就把他踢出去换一个人上来。这种方法叫委托权益证明Delegated Proof of StakeDPoS——EOS用的就是这种。它效率很高但有点“半中心化”的味道。六、一张表看懂三种共识机制为了方便大家对比我做了一个表格共识机制农村比喻代表项目优点缺点工作量证明PoW谁先解出数学题谁记账比特币安全性极高去中心化程度高非常费电速度慢每秒只能处理7笔交易权益证明PoS谁存的钱多谁记账以太坊2.0省电速度较快富者愈富公平性存疑委托权益证明DPoS大家选代表轮流记账EOS速度快每秒可处理上千笔交易有点中心化代表可能勾结七、代码示例用Python模拟一个最简单的区块链光说不练假把式。下面我用Python写一个最简单的区块链让你看看它到底是怎么工作的。import hashlib import json from time import time class Block: 区块类 def init(self, index, transactions, timestamp, previous_hash): self.index index self.transactions transactions # 账目内容 self.timestamp timestamp # 记账时间 self.previous_hash previous_hash # 上一个区块的哈希值 self.nonce 0 # 工作量证明用的随机数 self.hash self.compute_hash() # 当前区块的哈希值 def compute_hash(self): 计算当前区块的哈希值唯一编号 block_string json.dumps({ index: self.index, transactions: self.transactions, timestamp: self.timestamp, previous_hash: self.previous_hash, nonce: self.nonce }, sort_keysTrue) return hashlib.sha256(block_string.encode()).hexdigest() class Blockchain: 区块链类 def init(self): self.chain [] self.create_genesis_block() # 创建创世区块第一页 def create_genesis_block(self): 创建创世区块 genesis_block Block(0, [创世区块全村初始资金100万], time(), 0) self.chain.append(genesis_block) def add_block(self, transactions): 添加新区块 previous_block self.chain[-1] new_block Block( indexlen(self.chain), transactionstransactions, timestamptime(), previous_hashprevious_block.hash ) # 工作量证明找到一个nonce使哈希以0000开头 while not new_block.hash.startswith(0000): new_block.nonce 1 new_block.hash new_block.compute_hash() self.chain.append(new_block) def is_chain_valid(self): 验证区块链是否被篡改 for i in range(1, len(self.chain)): current self.chain[i] previous self.chain[i-1] # 检查当前区块的哈希是否正确 if current.hash ! current.compute_hash(): return False # 检查当前区块是否指向正确的上一个区块 if current.previous_hash ! previous.hash: return False return True 模拟村里记账 my_blockchain Blockchain() my_blockchain.add_block([卖鱼塘收入8万元, 张三买化肥支出1万元]) my_blockchain.add_block([修路支出2万元, 李四卖猪收入3万元]) my_blockchain.add_block([年底分红支出5万元]) 打印区块链 print( 村里的区块链账本 ) for block in my_blockchain.chain: print(f区块 {block.index}:) print(f 账目: {block.transactions}) print(f 哈希值: {block.hash}) print(f 上一个哈希: {block.previous_hash}) print() 验证区块链是否被篡改 print(f区块链是否有效: {my_blockchain.is_chain_valid()}) 模拟村长篡改账本 print(\n 村长试图篡改账本 ) my_blockchain.chain[1].transactions [卖鱼塘收入5万元] # 把8万改成5万 print(f区块链是否有效: {my_blockchain.is_chain_valid()}) 输出False因为篡改后哈希变了跟下一个区块记录的上一个哈希对不上运行这段代码你会看到每个区块都包含上一个区块的哈希值形成链条一旦有人篡改某个区块的内容它的哈希值就会改变跟下一个区块记录的“上一个哈希”对不上系统立刻发现账本被篡改了八、区块链的“不可篡改”到底有多靠谱你可能还会问“那如果村长特别厉害把全村100户人家的账本都改了是不是就成功了”理论上是的。但在真实的区块链网络中情况是这样的比特币网络全球有超过1万个节点相当于1万户人家都在记账分布在各个国家。村长想改账他得同时控制超过51%的节点——也就是至少5001台电脑。这需要天文数字的算力和电力成本远远超过篡改账本能得到的收益。以太坊网络节点数量也超过5000个同样很难被攻破。这就是区块链的安全性保障不是绝对不可篡改而是篡改成本极高高到没人愿意去干。九、区块链的实际应用不只是“炒币”很多人一听到区块链就想到比特币、炒币、割韭菜。其实区块链的应用远不止这些应用场景传统问题区块链解决方案供应链溯源买到假茅台不知道真假每瓶酒从生产到销售的全过程都上链扫码可查电子发票发票造假、重复报销每张发票上链不可篡改不可重复报销版权保护文章被抄袭维权困难创作时间上链作为版权证明公益捐款捐款去向不透明每笔捐款上链全程可追溯数字身份身份信息泄露用户自己掌控身份数据授权使用十、总结用一句话记住区块链好了故事讲到这里咱们来总结一下区块链 分布式账本 共识机制 加密技术分布式账本账本不放在一个人手里而是分散在所有人手里谁也别想偷偷改共识机制全村人一起决定谁记账、怎么记账确保账目一致加密技术每一页都跟上一页“锁”在一起改了任何一页都会被立刻发现下次你二大爷再抱怨村长改账你就可以拍着胸脯说“二大爷咱们村要是用上区块链村长想改账门儿都没有”当然区块链也不是万能的。它速度慢比特币每秒只能处理7笔交易而Visa每秒能处理2万笔、耗电高、存储成本大。但它在需要信任、需要透明、需要不可篡改的场景下确实是一个革命性的技术。最后送大家一句话区块链解决的不是技术问题而是信任问题。它让互不相识的人可以放心地一起记账、一起合作。我是小码哥咱们下期再见
菜市场大妈都能懂的“记账本”:为什么全村人一起记的账,村长偷偷改不了?
发布时间:2026/7/17 11:09:40
一、前言村里那本“糊涂账”大家好我是你们的老朋友小码哥。前几天回老家正好赶上村里年底分红。我二大爷拎着个破旧的本子气呼呼地来找我“小码啊你懂电脑你给评评理去年咱们村集体鱼塘卖了八万块村长说只卖了五万剩下三万哪去了这账本全在他手里他说多少就是多少咱也没法查啊”我一看这不就是典型的“中心化记账”问题吗村长一个人管账本他想改就改想删就删咱们普通村民一点办法都没有。但今天我要告诉你一个神奇的东西——区块链。别被这高大上的名字吓到说白了它就是一本全村人一起记、谁也改不了的账本。这篇文章我就用咱们农村最熟悉的“记账本”场景把区块链最核心的“去中心化”讲得明明白白。保证你听完就能跟菜市场大妈吹牛二、传统记账为什么村长能偷偷改账先说说咱们村以前是怎么记账的。村里有个集体账本专门记录村里的收入和支出。比如2025年3月卖鱼塘收入8万元2025年5月修路支出2万元2025年8月买化肥支出1万元这个账本平时放在谁手里村长手里。问题来了村长可以改账他偷偷把“8万”改成“5万”没人知道。账本可能丢万一村长家着火了账本烧了全村人的账就全没了。村民不信任年底分红时村长说剩多少钱就是多少钱村民只能干瞪眼。这就是典型的中心化记账——一个人说了算其他人只能信。那有没有办法解决呢当然有咱们老祖宗其实早就想出了一个办法——“互相监督”。三、分布式记账全村人一起记谁也别想赖账假设咱们村换一种记账方式每家每户都发一个一模一样的账本。每次村里有收入或支出不是村长一个人记而是全村100户人家同时记。比如今天卖鱼塘收入8万元村长在自己家账本上记一笔“2025年3月1日卖鱼塘收入8万元”张三在自己家账本上也记一笔“2025年3月1日卖鱼塘收入8万元”李四、王五、赵六……全村100户人家都记上这一笔这时候村长想偷偷把8万改成5万门儿都没有因为其他99户人家的账本上都清清楚楚写着8万。除非村长能跑到全村99户人家家里把所有人的账本都改了——这几乎不可能。这就是分布式记账的核心思想账本不放在一个人手里而是分散在所有人手里。在计算机世界里这个“全村人一起记的账本”就叫区块链。每个村民的账本就是一个节点全村人一起记账的过程就叫共识机制。四、区块链到底长啥样——用“连环账本”来理解你可能要问了“那区块链这个名字是怎么来的跟‘链’有什么关系”别急咱们接着讲故事。假设咱们村开始用新方法记账了。每次记账不是随便写在一页上而是一页一页地装订成册。每一页都记录着这一段时间内村里发生的所有账目。关键来了每一页的末尾都要写上上一页的“指纹”。什么叫“指纹”就是这一页所有内容的唯一编号。比如第一页的内容是“卖鱼塘8万、修路2万”通过一个数学公式算出来一个编号比如“ABC123”。然后第二页的开头就写上“上一页编号ABC123”。这样一来每一页都跟上一页紧紧连在一起形成一条链。如果有人想偷偷改掉第一页的内容第一页的编号就会变成“DEF456”但第二页开头写的还是“ABC123”对不上号了全村人一看就知道有人改账了。这就是区块链名字的由来——“区块”就是每一页账本“链”就是这些编号连成的链条。用技术术语来说区块Block记录一段时间内的所有交易数据哈希值Hash就是那个“唯一编号”由数学公式计算得出链Chain每个区块都包含上一个区块的哈希值形成链条五、共识机制全村人怎么“投票”决定谁记对了故事讲到这里你可能又有一个疑问“全村100户人家一起记账万一有人记错了怎么办比如张三喝醉了把8万记成80万那账不就乱了吗”好问题这就引出了区块链另一个核心概念——共识机制。咱们村想了个办法每次记账不是所有人同时记而是先选出一个“记账员”由他来负责把这一段时间的账目整理好、写在新的一页上然后发给全村人核对。那怎么选这个“记账员”呢咱们村可以有好几种选法方法一谁先解出数学题谁记账工作量证明村长说“我出一道很难的数学题谁先算出来谁就当这次记账员。”比如题目是“找到一个数字跟这一页的账目内容拼在一起算出来的编号以三个0开头。”全村人开始疯狂计算。张三算了一万次没找到李四算了两万次也没找到王五算到第36542次的时候终于找到了王五赶紧把答案公布出来“我找到了数字是12345拼上账目内容算出来的编号是000ABC123”其他人一验证果然编号以三个0开头说明王五没作弊。于是王五就成了这次记账员他把这一页账本发给全村人大家核对无误后都把这个新页加到自己的账本里。这就是工作量证明Proof of WorkPoW——比特币用的就是这种方法。谁算得快、算得多谁就有机会记账。当然算题需要消耗大量电力和算力这也是比特币被诟病“太费电”的原因。方法二谁存的钱多谁记账权益证明村里觉得算数学题太费电了于是换了个方法“谁在村里存的钱多谁就有更大的机会当记账员。”比如张三存了1000块李四存了500块王五存了200块。那张三被选中的概率就是李四的两倍、王王的五倍。这种方法叫权益证明Proof of StakePoS——以太坊现在用的就是这种。它比工作量证明省电得多但也有一个问题有钱人越来越有话语权。方法三轮流记账委托权益证明村里又改进了一下“大家先投票选出21个最靠谱的人当‘代表’然后这21个人轮流记账。”比如张三、李四、王五等21人被选为代表今天张三记明天李四记后天王五记……如果谁记错了或者故意捣乱大家就把他踢出去换一个人上来。这种方法叫委托权益证明Delegated Proof of StakeDPoS——EOS用的就是这种。它效率很高但有点“半中心化”的味道。六、一张表看懂三种共识机制为了方便大家对比我做了一个表格共识机制农村比喻代表项目优点缺点工作量证明PoW谁先解出数学题谁记账比特币安全性极高去中心化程度高非常费电速度慢每秒只能处理7笔交易权益证明PoS谁存的钱多谁记账以太坊2.0省电速度较快富者愈富公平性存疑委托权益证明DPoS大家选代表轮流记账EOS速度快每秒可处理上千笔交易有点中心化代表可能勾结七、代码示例用Python模拟一个最简单的区块链光说不练假把式。下面我用Python写一个最简单的区块链让你看看它到底是怎么工作的。import hashlib import json from time import time class Block: 区块类 def init(self, index, transactions, timestamp, previous_hash): self.index index self.transactions transactions # 账目内容 self.timestamp timestamp # 记账时间 self.previous_hash previous_hash # 上一个区块的哈希值 self.nonce 0 # 工作量证明用的随机数 self.hash self.compute_hash() # 当前区块的哈希值 def compute_hash(self): 计算当前区块的哈希值唯一编号 block_string json.dumps({ index: self.index, transactions: self.transactions, timestamp: self.timestamp, previous_hash: self.previous_hash, nonce: self.nonce }, sort_keysTrue) return hashlib.sha256(block_string.encode()).hexdigest() class Blockchain: 区块链类 def init(self): self.chain [] self.create_genesis_block() # 创建创世区块第一页 def create_genesis_block(self): 创建创世区块 genesis_block Block(0, [创世区块全村初始资金100万], time(), 0) self.chain.append(genesis_block) def add_block(self, transactions): 添加新区块 previous_block self.chain[-1] new_block Block( indexlen(self.chain), transactionstransactions, timestamptime(), previous_hashprevious_block.hash ) # 工作量证明找到一个nonce使哈希以0000开头 while not new_block.hash.startswith(0000): new_block.nonce 1 new_block.hash new_block.compute_hash() self.chain.append(new_block) def is_chain_valid(self): 验证区块链是否被篡改 for i in range(1, len(self.chain)): current self.chain[i] previous self.chain[i-1] # 检查当前区块的哈希是否正确 if current.hash ! current.compute_hash(): return False # 检查当前区块是否指向正确的上一个区块 if current.previous_hash ! previous.hash: return False return True 模拟村里记账 my_blockchain Blockchain() my_blockchain.add_block([卖鱼塘收入8万元, 张三买化肥支出1万元]) my_blockchain.add_block([修路支出2万元, 李四卖猪收入3万元]) my_blockchain.add_block([年底分红支出5万元]) 打印区块链 print( 村里的区块链账本 ) for block in my_blockchain.chain: print(f区块 {block.index}:) print(f 账目: {block.transactions}) print(f 哈希值: {block.hash}) print(f 上一个哈希: {block.previous_hash}) print() 验证区块链是否被篡改 print(f区块链是否有效: {my_blockchain.is_chain_valid()}) 模拟村长篡改账本 print(\n 村长试图篡改账本 ) my_blockchain.chain[1].transactions [卖鱼塘收入5万元] # 把8万改成5万 print(f区块链是否有效: {my_blockchain.is_chain_valid()}) 输出False因为篡改后哈希变了跟下一个区块记录的上一个哈希对不上运行这段代码你会看到每个区块都包含上一个区块的哈希值形成链条一旦有人篡改某个区块的内容它的哈希值就会改变跟下一个区块记录的“上一个哈希”对不上系统立刻发现账本被篡改了八、区块链的“不可篡改”到底有多靠谱你可能还会问“那如果村长特别厉害把全村100户人家的账本都改了是不是就成功了”理论上是的。但在真实的区块链网络中情况是这样的比特币网络全球有超过1万个节点相当于1万户人家都在记账分布在各个国家。村长想改账他得同时控制超过51%的节点——也就是至少5001台电脑。这需要天文数字的算力和电力成本远远超过篡改账本能得到的收益。以太坊网络节点数量也超过5000个同样很难被攻破。这就是区块链的安全性保障不是绝对不可篡改而是篡改成本极高高到没人愿意去干。九、区块链的实际应用不只是“炒币”很多人一听到区块链就想到比特币、炒币、割韭菜。其实区块链的应用远不止这些应用场景传统问题区块链解决方案供应链溯源买到假茅台不知道真假每瓶酒从生产到销售的全过程都上链扫码可查电子发票发票造假、重复报销每张发票上链不可篡改不可重复报销版权保护文章被抄袭维权困难创作时间上链作为版权证明公益捐款捐款去向不透明每笔捐款上链全程可追溯数字身份身份信息泄露用户自己掌控身份数据授权使用十、总结用一句话记住区块链好了故事讲到这里咱们来总结一下区块链 分布式账本 共识机制 加密技术分布式账本账本不放在一个人手里而是分散在所有人手里谁也别想偷偷改共识机制全村人一起决定谁记账、怎么记账确保账目一致加密技术每一页都跟上一页“锁”在一起改了任何一页都会被立刻发现下次你二大爷再抱怨村长改账你就可以拍着胸脯说“二大爷咱们村要是用上区块链村长想改账门儿都没有”当然区块链也不是万能的。它速度慢比特币每秒只能处理7笔交易而Visa每秒能处理2万笔、耗电高、存储成本大。但它在需要信任、需要透明、需要不可篡改的场景下确实是一个革命性的技术。最后送大家一句话区块链解决的不是技术问题而是信任问题。它让互不相识的人可以放心地一起记账、一起合作。我是小码哥咱们下期再见