关闭

[置顶] 谈谈自己对比特币脚本的理解

谈谈自己对比特币脚本的理解锁定脚本和解锁脚本比特币脚本存在的意义是让每笔交易合法化,这个合法化不是人工审核而是有脚本自动执行校验的。脚本分为锁定脚本和解锁脚本。锁定脚本和UTXO是对应的,一个UTXO中包含一个锁定脚本。当这个UTXO要被使用时,比如alice转账给bob需要引用这个UTXO,这就产生了一笔交易。这笔交易只有被验证了才可能在比特币的网络中传播(传播后就可以被矿工加入区块链,这部分就不...
阅读(926) 评论(0)

[置顶] 关于hashcash

来源这个概念最早来自Adam Back的一篇论文Hashcash - A Denial of Service Counter-Measurehashcash是一个基于hash算法的系统用途邮件过滤邮件过滤是hashcash最广泛的应用。比特币比特币的上的应用是为了防止双重支付(double-spending),这个是比特币得以运行的根本,可以防止伪造交易。这部分的细节会单独写一篇文章技术原理原理概述...
阅读(2934) 评论(0)

[置顶] https原理及相关知识点

最近项目一个项目处于安全考虑,要对原来的http服务改造成https,所以就研究了一下https的原理。https原理下图是网上用的比较多的一个图,但说的明白的不多。(图片来自网络)首先几个点做提前说明: https简单说就是安全的http,因为http访问都是明文的,https相当于给http做了一层加密。 用的协议是SSL,这是一种加密传输协议,它有很多版本,里面支持一系列的算法。在客户端与服务...
阅读(618) 评论(0)

[置顶] 谈谈PBOC3.0中使用的国密SM2算法

完全理解ECC算法需要一定的数学功底,因为涉及到射影平面坐标系,齐次方程求解, 曲线的运算规则等概念。这里不做过多的数学分析(主要是我自己也没有完全整明白)。想要深入了解ECC的我推荐网名为ZMWorm 的大牛在多年前写的<>。此人是早年看雪论坛中的一个版主,对算法和密码学很有研究。 本篇的主旨还是希望能以简单通俗的语言,讲清楚PBOC3.0认证过程中,所用到的SM2的相关概念,包括它的实现,使用等。...
阅读(29276) 评论(8)

[置顶] 非对称算法,散列(Hash)以及证书的那些事

这几个概念在金融电子支付领域用得比较多,我忽然觉得把它们串起来一起讲,层层引入,可能更好理解一些。希望能以最简单朴实的方式讲明白他们之间的关系...
阅读(3603) 评论(2)

[置顶] IOS蓝牙4.0与读卡器通讯

蓝牙协议本身经历了从1.0到4.0的升级演变, 最新的4.0以其低功耗著称,所以一般也叫BLE(Bluetoothlow energy)。 iOS 有两个框架支持蓝牙与外设连接。一个是 ExternalAccessory。从ios3.0就开始支持,也是在iphone4s出来之前用的比较多的一种模式,但是它有个不好的地方,External Accessory需要拿到苹果公司的MFI认证。...
阅读(113020) 评论(73)

pybitcointools源码分析之比特币交易数据结构

需要了解的背景知识首先要了解比特币的两种脚本类型:P2PKH(pay-to-public key-hash)和P2SH(pay-to-scrip-hash)...
阅读(453) 评论(0)

pybitcointools源码分析之BIP32实现

在看本篇之前,需要了解一个很重要的背景知识。那就是 HD钱包和 比特币协议 BIP32。关于HD钱包的概念,建议大家去看看<>...
阅读(109) 评论(0)

pybitcointools源码分析之进制转换

decode函数是把字符串形式表示的数字转换成整型,比如这个例子中的'65535'转换成整数65535...
阅读(100) 评论(0)

pybitcointools源码分析之RFC6979

在分析源码之前,一定要先讲讲什么是RFC6979。比特币的签名机制是基于椭圆曲线算法。在椭圆曲线里面k值(用于签名)是要严格保密的,暴露k值就相当于暴露私钥。k值要保证两点: 保密 唯一 有人提出一种方式来产生k值,类似下面这样的公式:k = SHA256(d + HASH(m));其中,d是私钥,m是消息,我们一般会对消息的HASH进行签名,因此这里是HASH(m)。有私钥d,就保证了“保密”,再...
阅读(108) 评论(0)

pybitcointools源码分析之由私钥获取公钥

私钥其实就是一串随机的数字而已。有了私钥,我们可以使用椭圆曲线乘法产生一个公钥。本篇使用的私钥示例是:e9873d79c6d87dc0fb6a5778633389f4453213303da61f20bd67fc233aa33262这其实是一个32字节的16进制表示的数字,这里是为了方便写成字符串的形式。使用的函数是,#由私钥获取公钥 def privkey_to_pubkey(privkey):...
阅读(360) 评论(0)

比特币改进协议BIP16(翻译)

P2SH 在2012 年被作为一种新型、强大、且能大大简化复杂交易脚本的交易类型而引入摘要此BIP描述了Bitcoin脚本系统的新“标准”交易类型,并定义了仅适用于新交易的...
阅读(289) 评论(0)

比特币核心源码环境搭建

比特币核心源码环境搭建...
阅读(474) 评论(0)

go语言安装第三方程序包

这里拿我最近正在看的一个源码举例。环境: win10+jetBrains Gogland+git bash客户端安装第三方go-cache程序包源码的地址https://github.com/patrickmn/go-cacheGo 语言实现的一个内存中的缓存框架,实现 Key-Value 的序列存储,适用于单台机器应用程序。安装前需要两个前提条件: 具备GOPATH环境变量,这个一般只要你安装好了...
阅读(287) 评论(0)

比特币改进协议BIP32(翻译)

题目: 分层确定性钱包(Hierarchical Deterministic Wallets)摘要本文件描述了层级确定性钱包(或“HD钱包”):可以部分或全部与不同系统共享的钱包,每个钱包可以有或没花费的...
阅读(649) 评论(0)

比特币改进协议BIP14(翻译)

比特币改进协议BIP14(翻译)英文原文地址:https://github.com/bitcoin/bips/blob/master/bip-0014.mediawiki背景Bitcoin作为协议与中本聪客户端一起诞生。现在社区正在多样化,一些使用各种语言(Java,Python,Javascript,C ++)编写的代码库的替代客户端正在快速开发自己的功能集。本协议要阐述的是一个版本号。这个版本号...
阅读(178) 评论(0)

比特币改进协议BIP11(翻译)

该BIP提出交易需要用M中的N个私钥来签名(多重签名),并把它作为新的“标准”交易类型。动机启用安全的钱包,托管交易和其他使用情况等涉及资金的交易需要多于一个签名。...
阅读(297) 评论(0)

比特币改进协议BIP13(翻译)

此BIP描述了一种新型的比特币地址,以支持任意复杂的交易。 这里所说的复杂性被定义为接收者需要什么信息来花费所接收的比特币,而不像现有的比特币实现中那样需要单个ECDSA私钥。...
阅读(301) 评论(0)

比特币客户端Electrum使用介绍

简介比特币的客户端很多,为什么选择Electrum。首先Electrum真的很轻量,安装马上可以用,不用下载几百G的区块链账本。我之前安装bitcoin核心客户端,这是个完整节点。下载账本都要好多天。后来果断弃用了。其次,Electrum钱包每次交易后使用新的地址,使得窥探你的余额和支付历史变得困难,安全性不错。轻量化的概念是什么,请看下图:一个全节点的客户端需要具备该图的四个功能。而像Electr...
阅读(1321) 评论(0)

Merkle Tree与区块链

什么是merkle tree假设你已经知道了什么是哈希算法以及哈希是用来干啥的。网络传输数据的时候,A收到B的传过来的文件,需要确认收到的文件有没有损坏。如何解决?有一种方法是B在传文件之前先把文件的hash结果给A,A收到文件再计算一次哈希然后和收到的哈希比较就知道文件有无损坏。但是当文件很大的时候,往往需要把文件拆分很多的数据块各自传输,这个时候就需要知道每个数据块的哈希值。怎么办呢?这种情况,...
阅读(853) 评论(0)

比特币甘道夫

1976年,著名经济学家哈耶克提出天才之构想:货币非国家化的理论。即为打破国家对发行货币的垄断,赋予个人或机构发行的权力。即使现在,对于绝大部分人来说,这也是骇人惊俗的构想。...
阅读(283) 评论(0)

java web应用上传图片详解

本文涉及如下技术: 前端:extJS 后端:struts2, tomcat等 前端实现前端用的是ExtJS框架,实现了一个简单的图片上传功能。由于我本身对前端技术也不是很熟悉,这部分只是班门弄斧随便讲下。基本思路是这样的:点击 “上传” 按钮时,调用一个js的函数,这个函数通过调用后端action来完成文件上传的操作。js函数实现如下:function uploadImg(){ var fi...
阅读(147) 评论(0)

struts2 拦截器实现登陆验证示例

首先我们需要写一个登陆页面, login.jsp...
阅读(494) 评论(0)

比特币客户端使用的数据库levelDB介绍

比特币客户端使用的数据库levelDB介绍简介比特币核心客户端使用 Google 的 LevelDB 数据库存储区块链元数据。Leveldb是一个google实现的非常高效的kv数据库,并且是开源的。它的一个主要特点就是写的性能非常好,适用于比特币客户端这种应用场景...
阅读(580) 评论(0)

获取自己的第一枚比特币

找一个适合自己的工具工欲善其事,必先利器。玩比特币有一个好用的比特币钱包是必须的。比特币钱包有很多种类,比如由不同的运行平台(windows, 安卓等)分类,或者按照轻量级和全节点的分类等。首先个人用户真的不建议下载全节点的客户端,因为真的真的要下载很久(区块链账本目前应该有上百G了)。我之前安装bitcoin核心客户端,这是个完整节点。下载账本要好多天。我选择的是Electrum这个客户端。首先E...
阅读(861) 评论(0)

安全框架shiro入门示例

最近做了一个简单的线上支付网关。就是接收客户端发起的支付请求,然后转发给第三方的支付通道处理。这个网关是公司内部使用的,接口都是自定义的。为了防止外部攻击,我用shiro做了一个简易的授权机制。基本原理原理也很简单,客户端的请求报文如下(考虑到保密性,做了部分删减):http://localhost:8080/paygateway/core/pay?amount=2&seq=12345678&use...
阅读(376) 评论(0)
326条 共17页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1449693次
    • 积分:12465
    • 等级:
    • 排名:第1200名
    • 原创:256篇
    • 转载:60篇
    • 译文:10篇
    • 评论:359条
    博客公告
    交流可在文章评论或发邮件至:pony_maggie@163.com微信号:pony_maggie
    打赏 微信支付
    微信
    打赏 比特币支付
    微信
    博客专栏
    最新评论