MIT Blockchain and Money 学习笔记(Lecture 5):区块链基础 & 交易机制与脚本语言
在前几节课中,我们逐步了解了区块链的密码学基础与共识机制的运作逻辑。这节课将视角进一步推进至交易机制本身,构成区块链技术基础的“最后一块拼图”
Study Questions 回顾与个人探索
上节课末留了这些问题供我们自行学习探究,作为引导本节课内容的探索方向:
比特币如何记录交易?什么是未花费交易输出(UTXO)?交易中嵌入的脚本代码有多大的编程灵活性?
既然许多设计早于比特币,那中本聪的真正创新在哪里?
我在课前对这些问题进行了初步的学习和思考,以下是我的总结:
对第一个问题的理解:
比特币采用的是 UTXO 模型(Unspent Transaction Output)来记录交易状态。
每笔交易的输入(Input)都引用此前交易的某个输出(Output)。
每笔交易中嵌入的脚本叫做 Bitcoin Script,主要用于锁定与解锁交易输出。
该脚本语言是 非图灵完备 的,不能执行循环等复杂操作,具有限定的表达力。
这种设计体现了比特币“专注于货币功能”的定位,与以太坊所追求的通用性形成鲜明对比。
对第二个问题的思考:
中本聪并非发明了所有构成比特币的技术组件,但其 最大创新在于将多种现有技术整合为一个系统性解决方案。
尤其引入了一个 去中心化的经济激励机制,用以协调参与者行为。
他构建了一个 无需信任中介即可达成共识的系统架构。
💡 思考补充:创新不一定等于发明全新的东西,将已有要素重新组合以产生突破性的系统效能,也是创新的重要形式。
Overview
Transaction Inputs & Outputs
Unspent Transaction Output (UTXO)
Scripting language
Blockchain Design – Putting it All Together
Bitcoin’s Academic Pedigree
Transaction Format:交易格式
一个比特币交易可被简化为三大部分:
Inputs(输入):包括前一笔交易的输出引用、发送者签名、金额等
Outputs(输出):包括接收地址、公钥哈希、金额等
Lock_time(锁定时间):一种限制条件,例如某交易需延迟执行
一个交易可以包含多个输入和输出,从而支持复杂的转账分配
需要注意的是:
一笔交易中Output 总额通常应小于或等于 Input 总额
差额即为 Fee(矿工费),类似以太坊中的 Gas 机制
📌 一则课堂讨论
如果比特币交易也需要支付费用,那它和中心化支付系统(如银行转账)有什么区别?
我记录了课堂上几个值得思考的角度:
定价机制不同:中心化系统的手续费是固定并由机构设定,而比特币交易的 Fee 是浮动的、市场驱动的,甚至不是强制的
用户感知上差异不明显:对普通用户而言,中心化和去中心化的手续费行为体验相似
经济系统维度差异:在比特币网络中,即使不发生交易,也可能因通胀而“隐性地”为他人承担成本。这是去中心化系统中更深层次的激励与博弈
💭 我的想法:Fee 不只是激励机制的一部分,它作为网络资源的定价形式,也在为整个系统的安全性和抗攻击性提供保障
Coinbase Transaction:创世交易
Coinbase 交易是矿工打包区块时收到的区块奖励交易,是系统新币的来源。
只有输入是 系统发行的奖励(即没有引用之前交易)
奖励每 210,000 个区块减半
初始为 50 BTC,当前为 12.5 BTC
需等 100 个区块确认后,其输出才能作为下一笔交易的输入
永远作为区块中 第一笔交易 记录于 Merkle Tree
可包含 100 字节任意数据,常用于添加随机数等
创世区块包含《泰晤士报》标题:“Chancellor on brink of second bailout for banks”(2009年1月3日)
UTXO Set:未花费交易输出集
UTXO 是当前尚未被引用的交易输出,它构成了一个用户的“余额”状态。
比特币的所有余额由 UTXO 集定义
加快交易验证速度
在 Bitcoin Core 中通过 LevelDB 数据库维护(称为
chainstate
)
某些金额过小的交易输出因 Fee 成本过高而不值得使用,被称为 Dust(尘埃)。
Bitcoin Script:比特币脚本系统
Bitcoin Script 是比特币中用于交易验证的脚本语言,设计上 非图灵完备,避免了无限循环或不确定性。
基于堆栈(stack-based),不支持循环
提供指令验证签名与条件逻辑
常见脚本类型:
Pay-to-PubkeyHash(P2PKH):支付给公钥哈希,占比约 81%
Pay-to-ScriptHash(P2SH):支付给条件脚本哈希,占比约 18%
多重签名(M-of-N Multisig):0.7%
Pay-to-Pubkey(P2PK):0.1%(数据来源:Perez-Sola 等)
🧠 思考: 功能越多一定越好吗?是否应该为扩展性而进行冗余设计? 安全性 vs 灵活性,如何平衡这对矛盾?
我认为,Bitcoin Script 的设计虽然功能有限,但更加安全、可验证,也利于构建高可预期性的金融系统。
总结与答疑回顾
课程最后对前三节课程的核心内容做了回顾,并引发了几项深刻的讨论:
1. 比特币每10分钟出块,那交易是不是都要等这么久?
确实如此,若需最终结算性(finality),通常需等待区块确认;
但可通过 Layer 2(如 Lightning Network) 实现更快交易;
实际生活中我们也并非每笔交易都等待银行最终清算,用户可以基于交易费、网络情况等来估计成功率和风险,并非完全不可操作。
2. 挖矿与交易在比特币中的角色?
挖矿:为区块链提供激励,构建无中心可信网络,是“谁来决定下一步”的机制;
交易:体现了状态变化,构成网络存在的基本意义,是区块链世界中的应用之源。
3. 比特币的创新到底是什么?
不在于“区块链”本身(早已有此数据结构)
核心创新是 Nakamoto Consensus(中本聪共识)
结合 PoW + 最长链原则
建立去中心化的可信数据添加机制
构成了 Web3 的信任基础设施
📚 参考资料 Binance Academy:What is Nakamoto Consensus?
🧠 个人反思
本节课帮助我从交易结构的角度看清了比特币系统的底层运行逻辑,也促使我思考区块链系统中“功能、灵活性、安全性”三者之间的平衡点。中本聪的真正贡献或许不是“区块链”本身,而是系统级的集成创新——一种去中心化下的社会激励模型。
——这是技术,更是制度。