chehw 浏览量 108.1万 获赞数 9 粉丝数 8
作者简介:该作者未设置相关简介。
  • 文章16
  • 收到的评论
  • 最新
  • 热门
椭圆曲线密码学简介

椭圆曲线密码学简介

知道什么是公钥密码学的人可能已经听说过ECC、ECDH或是ECDSA。第一个术语是椭圆曲线密码学(Elliptic Curve Cryptography) 的缩写,后两个是基于它的算法名称。 如今,我们可以在TLS、PGP和SSH中见到椭圆曲线加密系统,这是现代网络和IT世界所依赖的三种主要技术。比特币和其他加密货币就更不用说了。 在ECC流行起来之前,几乎所有的公钥算法都是基于RSA、DSA和DH ———— 基于模运算的可选加密系统。RSA及其友类算法在当前仍非常...
chehw 2015-07-21 比特币 椭圆曲线
111078
比特币系统的脚本(Script)——交易生成和验证的原理(第一部分)(初稿)

比特币系统的脚本(Script)——交易生成和验证的原理(第一部分)(初稿)

前言 在谈及脚本系统之前,先问一个似乎很简单的问题:比特币的“地址”是什么? 估计大多数人对此不屑一顾——这个问题太简单(弱智)了。比特币地址是一个日常使用非常频繁的东西。几乎在绝大多数交易都会用到比特币地址。对比特币稍有一点儿了解的人都可能会把Base58encode编码和RIPEMD160哈希算法挂在嘴边,懂一点技术的人更是能把比特币地址的计算的每一环节都细说无遗。 实际上,这样的认识只停留在表面上。以这样的理解,恐怕无法真正明白什么是比特币系统,从而严重低估这一创造性发明的价值,甚至有些人会认为"真正有价值的不是比特币,而是区块链"。   ...
chehw 2015-05-12 比特币脚本
103530
块代扣攻击理论上成立,但实际应用时往往得不偿失

块代扣攻击理论上成立,但实际应用时往往得不偿失

本文是针对《比特币和博弈论:块代扣攻击理论上是成立的?》一文的补充,原文只考虑了两个矿池的情况。此时扣块攻击必定成立,只要发起攻击则必有收益。但实际应用场景下,多个矿池并存,本文补充上在多矿池和任意算力比例下的扣块攻击收益公式,根据该公式可知,多矿池存在下,所有未被攻击到的矿池均可坐收渔翁之利。而攻击者稍有计算失误,扣块攻击就会得不偿失。 结论是:只要全网的矿池足够分散,对于扣块攻击没有必要太在意。 原理: 当攻击发生时,必存在三种矿池A、B、C。其中A代表攻击者矿池;B代表被攻击的矿池(可以是多个);C代表未被攻击的矿池。假设各类矿池所占的算力比...
chehw 2015-04-10 比特币 块代扣攻击
27657
SPV、SPV节点和SPV钱包

SPV、SPV节点和SPV钱包

一、什么是SPV SPV是“Simplified Payment Verification”(简单支付验证)的缩写。中本聪论文简要地提及了这一概念,指出:不运行完全节点也可验证支付,用户只需要保存所有的block header就可以了。用户虽然不能自己验证交易,但如果能够从区块链的某处找到相符的交易,他就可以知道网络已经认可了这笔交易,而且得到了网络的多少个确认。 按照中本聪的原文,这里有个细节需要注意,SPV指的是“支付验证“,而不是“交易验证”。这两种验证有很大区别。 "交易验证”非常复杂,涉及到验证...
chehw 2015-03-23 比特币 SPV
140167
比特币背后的数学

比特币背后的数学

比特币系统会让新人迷惑不解的原因之一是其背后的技术重塑了“所有者”这一概念。 传统意义上,“拥有”某物——诸如房产或金钱——意味着该物要么是个人保管,要么是委托一个可信实体(如银行)来保管。 比特币系统的情况则不然。比特币本身既不集中存储也不本地存储,因此没有任何一个实体是其保管人。 比特币是以记录的形式存储于一个被称为“区块链”的帐薄之中,该帐薄的副本在互联计算机所组成的志愿者网络中共享。 “拥有”比特币仅仅意味着拥有移交控制权给他人的能力——通过在区块链中创建一条转帐记录来实现。但这种能力是如何保证的呢?通过一个ECDSA私钥、公钥密...
chehw 2014-11-27 比特币 数学
89374
连载|侧链白皮书终篇:用楔入式侧链实现区块链的创新— 附录B 高效SPV证明、附录C 元互换(原子交换)、参考文献

连载|侧链白皮书终篇:用楔入式侧链实现区块链的创新— 附录B 高效SPV证明、附录C 元互换(原子交换)、参考文献

 我们提出一种新技术,“楔入式侧链”,使用户能用已有资产使用新的和创新的加密货币系统。本文阐述楔入式侧链及实施要求,及为能从将来区块链间的互联中充分受益所需的工作。全文见附。 ----   附录B 高效SPV证明   为了将币从一个侧链转移回比特币系统,我们需要嵌入侧链币已锁定于比特币区块链的证明。这些证明应包含(a)一个输出已经在侧链中被创建的记录,以及(b)一个证明足够的工作量已加于该输出之上的DMMS。因为比特币系统的区块链是共享的,并被所有的参与者验证,这些证明必须不能给网络强加大...
chehw 2014-11-05 比特币 侧链 SPV
39461
连载|侧链白皮书:用楔入式侧链实现区块链的创新— 附录A 联合楔入

连载|侧链白皮书:用楔入式侧链实现区块链的创新— 附录A 联合楔入

任何对比特币系统脚本的增强,都可由一个相互间不信任的工作人员组成可信联盟来评估脚本,通过签发一个普通的多重签名脚本来接受。也就是说,这些工作人员充当了协议的适配器,评估那些我们想让比特币系统来做,但因缺乏脚本支持而做不了的相同规则。借助这种方法,我们能够实现一种联合的楔入。 ----   附录A 联合楔入   部署楔入式侧链的挑战之一是,目前比特币系统的脚本在编码SPV证明的验证规则上,还不能完全表达。需要用一种安全、兼容、并且泾渭分明的方式加入所需的表达(例如,通过用软分叉,将一个“无操作”(n...
chehw 2014-11-04 比特币 侧链
32971
连载|侧链白皮书:用楔入式侧链实现区块链的创新— 6 发展方向、7 致谢

连载|侧链白皮书:用楔入式侧链实现区块链的创新— 6 发展方向、7 致谢

 侧链中值得探讨的其他一些想法有:保证合同,时移交易费,滞期费,补贴,合签SPV证明,SNARKs,关于低价值或实验性侧链的一个未来想法是,起用一个可信机构…… ----   6 发展方向   6.1 哈希算力攻击抗性 本文的主旨围绕使用SPV证明的双向楔入,它可被一个51%的多数方所伪造,不过也可以区块化,需要大量的哈希算力以便在传输的竞赛期构建一个足够长的证明(后面这一点上要有所权衡——比如,假设33%的哈希算力能使区块出一个证明,那么,要想成功使用...
chehw 2014-11-03 比特币 侧链
28533
连载|侧链白皮书:用楔入式侧链实现区块链的创新— 4 缺陷、5 应用

连载|侧链白皮书:用楔入式侧链实现区块链的创新— 4 缺陷、5 应用

本文为侧链白皮书连载四,介绍侧链本身的缺陷(复杂度,欺骗性转账,挖矿中心化的风险,软分叉风险),并附解决或变通方案。以及探讨侧链面向用户的应用(竞争币实验和资产发行) ,以有效地扩展比特币系统做它目前还不能做到的事。 ----     4.缺陷   侧链给加密货币领域中的很多问题提供了解决方案,为比特币系统的革新带来数不清的机会,但同时,侧链本身也并非没有缺陷。本节我们将审查一些潜在问题,并附以解决方案或变通方案。 4.1 复杂度 侧链在以下几个层面引入了额外的...
chehw 2014-10-31 比特币 侧链
36729
连载|侧链白皮书:用楔入式侧链实现区块链的创新—2 设计原理、3 双向楔入

连载|侧链白皮书:用楔入式侧链实现区块链的创新—2 设计原理、3 双向楔入

 前文为摘要与前言,本文为侧链白皮书连载三,介绍 “楔入式侧链”的设计原理及其技术基础 “双向楔入”(相关定义,对称式双向楔入及整个转移过程,非对称式双向楔入)。 ----   2 设计原理   “无需信任”指的不依赖外部的可信方也可完成正确的操作的特性,一般是能够让所有参与方自己验证信息是否正确。例如,密码学签名系统中,“无需信任”是一个隐式的必要条件(如果攻击者能伪造签名,那么这个签名系统将被视为被完全破解)。虽然分布式系统中一般不需如此,但比特币在系统的大部分中提供了“无信任”操作。 “楔入式侧链...
chehw 2014-10-30 比特币 侧链
44784
连载|侧链白皮书:用楔入式侧链实现区块链的创新—前言续

连载|侧链白皮书:用楔入式侧链实现区块链的创新—前言续

前文提到: “比特币系统的目标相对简单:它是一个支持单一原生数字资产传输的区块链,不能与其他任何资产相兑换。这可以简化很多具体实现,不过这样的简化正面临着现实世界需求的挑战”,以及目前比特币系统所进行的一些创新和取舍。以下为续: ---- 实际上,由于功能必须被广泛认可后才能采纳,这限制了参与者的个人自由和对其钱币的自主性。小的团体无法实现诸如专用脚本扩展这样的功能,因为他们缺少广泛的共识。 早期针对比特币系统中这些问题的解决方案是可替代的区块链的开发,又称竞争链(altchains),除针对上述关注点有所修改外,共用了比特币系统的代码库。然而,靠创...
chehw 2014-10-29 比特币 侧链
58904
侧链白皮书:用楔入式侧链实现区块链的创新—摘要、前言

侧链白皮书:用楔入式侧链实现区块链的创新—摘要、前言

摘要 自2009年比特币系统的推出以来,它带来了众多计算机科学和电子现金方面的创新,人们对去中心化加密货币的潜力有了极大的兴趣。但与此同时,对已达成共识的比特币系统关键部分实施变更,则必须非常保守地来处理。这导致与其他互联网协议相比,比特币系统更难于适应新需求和采纳新创新。 我们提出了一种新技术——“楔入式侧链”——实现比特币和其他帐簿资产在多个区块链间的转移。这使用户能用他们已有的资产来使用新的和创新的加密货币系统。通过复用比特币系统的货币,这些系统相互之间的交互操作,以及与比特币之间的交互操作,可以更容易地进行,避免出现与新货币相关的流动性短缺和市场波动。由于侧链是独立的...
chehw 2014-10-28 比特币 侧链
115320
比特币系统采用的公钥密码学方案和ECDSA签名算法介绍——第二部分:代码实现(C语言)

比特币系统采用的公钥密码学方案和ECDSA签名算法介绍——第二部分:代码实现(C语言)

(原理部分请参考:《比特币系统采用的公钥密码学方案和ECDSA签名算法介绍——第一部分:原理》) 依赖库:openssl-1.01h ,参考文档:http://openssl.sourcearchive.com/ 为降低代码复杂度,本文借助了openssl库来实现大整数(BIGNUM)的运算、伪随机数的生成、HASH算法、密钥生成以及数字签名。 比特币系统中的整数字节顺序:(首先要搞清楚字节次序,看bitcoin-qt源码时会有一定帮助) 大整数(超过...
chehw 2014-06-11 比特币
58900
比特币系统采用的公钥密码学方案和ECDSA签名算法介绍——第一部分:原理

比特币系统采用的公钥密码学方案和ECDSA签名算法介绍——第一部分:原理

ECC算法是基于有限域的椭圆曲线上的数学算法。关于ECC算法基本原理的介绍,请参考《ECC加密算法入门介绍》(http://www.8btc.com/eccmath),本文重点介绍Bitcoin系统中采用的公钥密码学方案和签名算法的实现细节。 一、 公钥(pubkey)、私钥(privkey)是什么 公开密钥加密(public-key cryptography,也称为非对称(密钥)加密),是指存在一对数学算法相关的密钥,使用其中一个密钥加密后所得的信息,只能用另一个密钥才能解密。如果...
chehw 2014-06-08 私钥
115226
比特币系统发行的密码学货币是通缩性的货币吗?

比特币系统发行的密码学货币是通缩性的货币吗?

“货币的本质是数字,这在几千年前妇孺皆知!什么使得地球人如此愚蠢,竟然不知道这个基本常识?” ------ chehw,记于公元2014年5月18日 0:58分 引言 顿悟出“货币的本质是数字”,得益于那只“薛定谔的猫”。 前几天“知乎”上看到一个问题:“谁能用一个高中数学考了9分的人能懂的语言给我解释一下薛定谔的猫”。回答众说纷纭,看了下,都不满意,于是给出下面这个答复: ““薛定谔的猫”就是为了让高中数学考了9分的人看不懂而提出的。这是因为该实验是用反证法来质疑哥本哈根诠释,而哥本哈根诠释则是试图化解小尺度上的量子力学与直观感觉上的矛盾,好让一个高...
chehw 2014-05-23 货币 黄金 经济学
29412
去中心化与Bitcoin系统技术实现

去中心化与Bitcoin系统技术实现

作者:Chehw 引言 一提起比特币,“去中心化”往往成为一个炒作的热点,倡导者们把“去中心化”宣扬成救世的良药,具有革命性的意义;反对者们则声称这只是不切实际的幻想,或是一个骗局。 当针对同一事物的认识产生出两种截然相反的立场时,且假设双方的看法均是出于善意(不是恶意宣扬或诋毁),那么,至少有一方(也可能是双方)的认识出现了偏差。这个偏差是怎样产生的呢? 通常来说,如果一个概念过于抽象,那么在认识过程中不可避免地会掺杂有个人的理解,人与人的学识、经历、认识水平差异很大,看问题的角度各不相同,分歧也就产生了。 当我第一次从媒体报道知道有比特币时,听说这...
chehw 2014-05-19 挖矿 比特币 去中心化
48525