前言:密码学一直被冠以一层神秘的面纱,它深奥的原理一直让人望而生畏,在区块链技术中,密码学又显得尤为重要,所以,尝试翻译学习一下 “Zero Knowledge Proofs” 来加深对密码学的进一步认识。 “零知识” 这个词非常吸引人..
2018-01-31
概要迄今为止,仅有硬分叉和软分叉两种方式来升级比特币网络。两种方式各有缺点,软分叉通过矿工激活,..
2018-01-28
Bitcoin序列化功能主要实现在serialize.h文件,整个代码主要是围绕stream和参..
2018-01-26
概要迄今为止,仅有硬分叉和软分叉两种方式来升级比特币网络。两种方式各有缺点,软分叉通过矿工激活,对于普通的节点操作者,没有途径来发出他们的声音,也没有机制来反对该分叉。另一方面,硬分叉需要大家一起升级,但是在激活时会有风险。 本提案的目的是:使用已知的拓展点来升级比特币网络,在其中引入新功能。因为当前节点们知道这些拓展点,所以他们可以注意到这些功能的激活..
Bitcoin序列化功能主要实现在serialize.h文件,整个代码主要是围绕stream和参与序列化反序列化的类型T展开。 stream这个模板形参表达具有read(char**, size_t) 和write(char**, size_t)方法的对象, 类似Golang 的io.reader ,io.writer。 简单的使用例子: 123456..
《extension block proposal》—— Johnson Lau 该临时BIP允许通过软分叉来增加额外的区块空间。这对于当前的钱包是完全透明的(无论是接收还是发送),但是利用额外块空间的新钱包将有完全不同的用户体验。 我确信这个提案具有争论性,但是我认为它是一个有趣的学术话题。如果我们有任何完全一致的强制性双向锚链设计,该提案就类似于这..
2018-01-24
综述不需要改变任何现存的共识规则,来增大比特币的交易吞吐量。 动机比特币网络的吞吐量与它重新定向和拒绝服务限制的共识规则相关。 比特币的重新定向规则确保出块时间大致在10分钟,该规则不可改变。关于其它大大提高交易吞吐量的方法一直存在争议,因为这些方法没有证明它们自己是特别安全的共识层解决方案。 历史辅助块,第一次被Johnson Lau在2013年提议。..
2018-01-17
综述:该提案定义了比特币交易有规则的变化,用来限制签名字段必须为严格的DER编码。 动机:当前比特币的签名验证实现依赖于OpenSSL,这意味着OpenSSL隐式的定义了比特币的区块验证规则。不幸的是,openssl并没有定义严格的共识行为(它不保证不同版本间的bug兼容);并且openssl库的改变将会影响比特币软件的稳定。一个特别重要的地方是:签名编..
2018-01-15
综述本提案定义了一个新结构“witness”提交到区块中,与交易的merkle tree不同。该结构包含检查交易有效性所需的数据。此外,脚本和签名移动到了这个新结构。 为了确保BIP软分叉的兼容性,该结构通过coinbase交易嵌套在区块已存在的merkle root。未来的硬分叉可以给该树分配一个自己的分支。 动机整个交易的效果由引用的交易输出和新创建..
2018-01-12
综述本提案描述了改变比特币交易的验证规则,来修正与ECDSA签名编码有关的交易延展性。 动机签名延展性指的是:网络中的任何中继节点,不需要获取对应交易的私钥, 而修改该交易签名的能力。对于非SW交易,签名延展性将改变txid,将使所有未确认的子交易失效。即使SW交易(BIP141)的txid是非第三方延展的,但这种延展性的vector仍然将改变wtxid..
2018-01-11
比特币协议中最重要的部分就是交易,比特币协议其他的部分也都是为了确保交易的生成、广播、验证和打包而实现的。本文内容主要是针对交易的数据结构以及对原始交易进行解析,后期还会继续写交易的生命周期、交易脚本等文章。 原始交易比特币的交易是以字节的形式存在块中的,使用bitcoin-cli命令可以获得一个原始的交易数据。例如: bitcoin-cli getr..
2018-01-10
早上的时候看到某币圈大V的微博,他说因为Bitcoin.com把Bitcoin Cash Wallet做为默认钱包造成了用户的丢币。我赶紧更新了bitcoin.com钱包试用了下。 钱包的改动很简单,就把Bitcoin Cash Wallets作为首选,这样就造成用户丢币了……其实这事和Roger Ver真的没有啥关系,估计该大V现在还不清楚BCH是如何..