比特币与加密货币技术
这门课学什么
课程从技术上讲比特币如何运作。内容包括哈希与签名、去中心化共识、工作量证明、交易脚本、钱包、挖矿、匿名性和监管。3 个单元配编程作业。
内容摘要
这门课从计算机科学角度讲比特币怎样运作。它不讲投资,只讲技术和机制:哈希和签名怎样保证账本不可篡改,没有中心机构时节点怎样达成共识,矿工为什么愿意干活,以及这套系统在哪些地方仍然脆弱。课程对应纳拉亚南(Arvind Narayanan)等人合著的《比特币与加密货币技术》(Bitcoin and Cryptocurrency Technologies)。
全课 11 讲,分 3 个阶段。第 1 阶段是第 1–3 讲,讲原理:密码学基础、去中心化共识与工作量证明,以及交易、脚本、区块和点对点网络的细节。第 2 阶段是第 4–7 讲,讲实际运行:密钥存储与钱包、挖矿的硬件和经济学、匿名性与混币,以及社区治理和政府监管。第 3 阶段是第 8–11 讲,讲延伸:替代挖矿谜题与权益证明、把比特币当作应用平台、山寨币生态,以及区块链适合去中心化哪些东西。
课程有 3 个编程作业:ScroogeCoin(实现交易验证规则)、Consensus from Trust(在信任网络上模拟共识)和 Blockchain(维护区块链并处理分叉)。每个作业预计约 3 小时。
学完以后,学生能解释一笔比特币交易从签名到被写入区块的全过程,能评估钱包和交易所的安全措施,能分析挖矿激励和常见攻击,并能对区块链项目的去中心化宣称做出技术判断。
纳拉亚南是课程的署名讲师。每段视频围绕一个具体问题展开,例如“比特币真的匿名吗”。注意课程录制于 2015 年前后,不涉及以太坊智能合约、闪电网络等后来的发展。
为什么值得学
课程已有 86 万多人注册。它由研究者讲授,不是推销者,是加密货币的标准计算机科学入门。
课程信息
- 学校
- 普林斯顿(Princeton)
- 讲师
- 阿尔温德·纳拉亚南(Arvind Narayanan)
- 学期
- self-paced
- 平台
- Coursera
- 费用
- 免费
- 难度
- 中级
- 学时
- 11 个单元,Coursera 估计约 2 周 × 每周 10 小时
- 先修
- 需要基础编程能力,懂一点密码学更好。
- 材料
- 视频、作业
- 许可证
- 未注明
课程大纲 · 共 11 节
大纲依据:Coursera 模块列表(11 讲,每讲一个模块;结构取自 api.coursera.org onDemandCourseMaterials.v2 与课程页)(查看原始页面 ↗)
- 1密码学与加密货币导论Introduction to Crypto and Cryptocurrencies
讲密码学哈希函数、哈希指针、数字签名和以公钥作为身份,并用它们搭出两种简单的加密货币。作业是 ScroogeCoin。
- 2比特币怎样实现去中心化How Bitcoin Achieves Decentralization
讲分布式共识的难点,以及区块链怎样在没有身份的情况下靠激励和工作量证明达成共识。
- 3比特币的运行机制Mechanics of Bitcoin
讲交易结构、比特币脚本及其应用、区块和点对点网络,并讨论协议的局限和改进办法。
- 4怎样存储和使用比特币How to Store and Use Bitcoins
讲热存储与冷存储、密钥分割与共享、在线钱包与交易所、支付服务、交易费和兑换市场。作业是 Consensus from Trust。
- 5比特币挖矿Bitcoin Mining
讲矿工的任务、挖矿硬件的演变、能耗与环境问题、矿池,以及挖矿的激励和策略。
- 6比特币与匿名性Bitcoin and Anonymity
讲匿名的定义、怎样对比特币用户去匿名化、混币和去中心化混币,以及 Zerocoin、Zerocash、Tor 和丝绸之路案例。
- 7社区、政治与监管Community, Politics, and Regulation
讲比特币社区怎样达成共识、核心软件由谁维护、谁有话语权,以及反洗钱和纽约 BitLicense 一类监管。作业是 Blockchain。
- 8替代挖矿谜题Alternative Mining Puzzles
讲挖矿谜题的基本要求、抗 ASIC 谜题、有用工作量证明、不可外包谜题和权益证明。
- 9比特币作为平台Bitcoin as a Platform
讲把比特币当作只追加日志、智能财产、多方彩票、随机源和预测市场的用法。
- 10山寨币与加密货币生态Altcoins and the Cryptocurrency Ecosystem
讲山寨币的历史、它和比特币的相互影响、一个山寨币的生命周期,以及侧链。
- 11比特币的未来The Future of Bitcoin?
讨论区块链作为去中心化工具的路线:能去中心化什么,什么时候去中心化才是好主意。
普林斯顿的其他经典课
- 算法(上) · Algorithms, Part I
- 算法(下) · Algorithms, Part II
- 计算机科学:有目的的编程 · Computer Science: Programming with a Purpose
- 计算机科学:算法、理论与机器 · Computer Science: Algorithms, Theory, and Machines
- 解析组合学 · Analytic Combinatorics
- 算法分析 · Analysis of Algorithms