aaron67's log

花拳绣腿 & 柴米油盐


  • 首页

  • 标签24

  • 分类1

  • 归档27

  • 推荐

  • 关于

  • 搜索

[学习笔记] 比特币的挖矿和共识

发表于 2019-01-11 | 分类于 技术 | 阅读次数:

在介绍完比特币交易和区块的相关内容后,这篇文章记录网络节点是如何协同工作共同记账的。

阅读全文 »

[学习笔记] 比特币的区块和区块链

发表于 2019-01-05 | 分类于 技术 | 阅读次数:

比特币的交易,会被“整理”到区块中。

网络活动不断产生新交易,不断“整理”出新区块来记录“这一段时间内”的交易。

为了能彼此关联,每个区块都会记录它的前一个区块是什么,这相当于,区块按先来后到的顺序被“摞”在一起,形成了一条“链”。

Imgur

一个区块,可以用高度标识,也可以用哈希标识。

随着时间的推移,链不断延长,这条区块链,记录了截至目前为止所有的比特币交易,是比特币网络的总账本。

我们说一笔交易被写入账本,就是说这笔交易通过了验证,已经被“整理”进区块,并得到了全网络的认可。

这篇文章,介绍比特币的区块和区块链。

阅读全文 »

[学习笔记] 比特币的地址

发表于 2019-01-04 | 分类于 技术 | 阅读次数:

Alice 向 Bob 支付比特币:

  • 使用 P2PK 交易,需要知道 Bob 的公钥,锁定脚本为[Bob的公钥] OP_CHECKSIG
  • 使用 P2PKH 交易,需要知道 Bob 的公钥或 Bob 的公钥哈希,锁定脚本为OP_DUP OP_HASH160 [Bob的公钥哈希] OP_EQUALVERIFY OP_CHECKSIG
  • 使用 P2SH 交易,需要知道 Bob 的脚本哈希,锁定脚本为OP_HASH160 [Bob的脚本哈希] OP_EQUAL

了解了交易的细节,你可能会疑惑,这与日常收发比特币时的情况好像不太一样。

接收比特币时,通常会使用一串跟银行卡号类似的“神奇代码”,作为收款“地址”,形如1BJhat1AMGYbT9HYJxVekoCaPaqB9ZyTyF。

这篇文章介绍地址是怎么计算的。

阅读全文 »

[学习笔记] 比特币交易的时间锁

发表于 2019-01-02 | 分类于 技术 | 阅读次数:

时间锁功能让比特币交易拥有了时间维度,这篇文章介绍时间锁的详细内容。

本文也是介绍比特币交易内幕细节的最后一篇文章。

阅读全文 »

[学习笔记] OP_RETURN

发表于 2018-12-31 | 分类于 技术 | 阅读次数:

比特币交易的全球总帐本,是公开的,匿名的,不可篡改的。

账本记录了每笔交易的具体内容,以及他们被写入账本的确定的时间点(时间戳)。

如果能将现实世界的数据埋进交易,一同写到账本里,事情就变得有些微妙了,比特币系统的潜在应用将不只局限于支付,多了很多“可玩性”。

阅读全文 »

[学习笔记] “付款到多重签名” 和 “付款到脚本哈希”

发表于 2018-12-29 | 分类于 技术 | 阅读次数:

了解复杂的交易类型,能帮助你更好的理解,什么是“可编程加密货币”。

阅读全文 »

[学习笔记] “付款到公钥” 和 “付款到公钥哈希”

发表于 2018-12-28 | 分类于 技术 | 阅读次数:

这篇文章,介绍比特币网络中最常见的交易形式:Alice 付款给 Bob。

阅读全文 »

[学习笔记] 比特币交易的数据结构

发表于 2018-12-27 | 分类于 技术 | 阅读次数:

比特币的交易,由一个或多个输出和一个或多个输入(Coinbase 交易是一种特殊情况)构成。

交易的每个输出上,都会附上一个加密难题,定义将来在花费这笔 UTXO 时需要满足的条件。

交易的每个输入上,都要提供一个解锁脚本,解决或满足之前附在这笔 UTXO 上的加密难题或条件,解锁 UTXO 用于支付。

如果你从前面的文章一路看过来,理解了比特币交易的细节,你应该能设计出下面的数据结构。

对交易的每个输出 TxOut,需要有

  • 这个 UTXO 的币值
  • 锁定脚本

对交易的每个输入 TxIn,需要有

  • 这笔 UTXO 来自之前哪笔交易的第几个输出(需要表达交易链条)
  • 解锁脚本

对交易,需要有

  • 这笔交易的哈希(数据指纹),用于标识和索引这笔交易
  • TxIn 数组,表示这笔交易的所有输入
  • TxOut 数组,表示这笔交易的所有输出

这样的设计能满足需求,同时又足够精简。这篇文章,介绍比特币交易的数据结构。

阅读全文 »

[学习笔记] 比特币交易的脚本

发表于 2018-12-26 | 分类于 技术 | 阅读次数:

上篇文章讲到,比特币交易的输出,可以被“绑定”到收款方的公钥或公钥的哈希(数字指纹)上。

在之后需要消费这个 UTXO 时,除非提供了正确的证明和授权信息(签名),否则无法支付。

通过交易链条,任何人都可以验证交易的合法性。

这篇文章记录与比特币脚本有关的细节,说说验证交易的工具。

阅读全文 »

[学习笔记] 比特币的交易

发表于 2018-12-25 | 分类于 技术 | 阅读次数:

交易是比特币系统中最重要的部分。系统中的其他部分,都是为了确保交易可以

  • 被生成
  • 通过比特币网络的验证,在网络中传播
  • 最终被添加到记录全球比特币交易数据的总账簿(比特币区块链)中

比特币的交易,使用复式记账法(复式簿记,double-entry bookkeeping)的形式,输入和输出比特币总量的差值,是隐含在这笔交易中的手续费。

阅读全文 »
123
aaron67

aaron67

27 日志
1 分类
24 标签
RSS
© 2019 aaron67
由 Hexo 强力驱动
|
主题 – NexT.Gemini
| |