在很多技术人员的眼中,区块链并不是一种新的技术,而是过去很多年计算机技术的组合运用.而在这个方方面面技术的运用上,基于密码学的加密算法可以说是区块链各种特点得以表现的根本,一旦目前使用的加密算法被证实可以破解,那么现有的区块链技术很有可能土崩瓦解.本文所要讲述的就是目前区块链中运用最广的加密算法:SHA256. SHA是一个密码散列函数家族,是英文Secure Hash Algorithm的缩写.由美国国家安全局(NSA)所设计,并由美国国家标准与技术研究院(NIST)发布.本文的主角SHA25…
什么是Merkle Tree? Merkle Tree 的命名来自于美国密码学家Ralph C. Merkle ,关于他的个人资料:传送门https://en.wikipedia.org/wiki/Ralph_Merkle.与前面讲的几种算法不同,Merkle Tree是一种树结构,而并非具体的某种算法. 在具体讲之前,简单说一下哈希算法: 哈希算法是密码学中一种基础的算法,通常的特点: 1.任意的输入值经过哈希算法都能产生固定长度的输出. 2.输入值的微小变化都能导致输出值的巨大变化. 优秀的…
密码学领域中,加密算法主要分为对称加密和非对称加密,随着信息时代安全性要求越来越高,对称加密因为其易被破解的原因逐渐被舍弃.而RSA算法是目前密码学世界中比较流行的非对称加密算法,命名是根据其发明者Rives,Shamir,Adleman三人的名字缩写而来.讲到RSA就不得不提到最近"黎曼猜想被正面后RSA算法不在安全"的传言.带着这个问题,讲述完RSA的原理以后会顺带讲一下即便"黎曼猜想"被证实是否对目前一些基于RSA算法的区块链项目有影响.本文的读者默认对于素数…
最近区块链领域流行了一种"怪病",许多区块链项目或者设计方案都加入了一个叫做VRFs的算法.那么, (1) 什么是VRFs? (2) VRFs在区块链中解决了什么问题? 本文旨在介绍VRFs的原理以及在区块链中的用途,不涉及复杂的VRFs的详细设计实现以及安全性证明. VRFs介绍 VRFs全称Verifiable Random Functions,也就是可验证随机函数.从名字上可以看出VRFs有三个重要的特点: 可验证 随机性 函数组 实际上,VRFs是hash函数构造的公钥密码方案…
最近几年比特币的火爆带动了人们对区块链技术的研究.当然我们在这里并不讨论区块链技术本身,而是讨论一下区块链中的SHA算法的应用.对于SHA系列算法我们已经在前面作了说明,在这里也不再重复. 1.区块链中的SHA 区块链中用到了SHA,可是究竟什么地方使用到了SHA算法呢?为了解决这个问题,我们必须先来了解下区块链的组成结构.每个区块都包括了一个被称为魔法数的常数.区块的大小.区块头.区块所包含的交易数量及部分或所有的近期新交易.区块的具体结构如下所示: 数据项 描述 长度 Magic no(魔法…
上篇博文我们转载了一篇<Merkle Tree(默克尔树)算法解析>,那么大家是不是会有疑问,学习这个算法之后,我们改怎么去应用,区块链中又是如何应用的?今天这篇博客就以Merkle tree在区块链中的具体用法为例简单说明一下. 要了解Merkle tree的使用,先要了解一下区块链中每个区块的数据结构,下面以比特币的数据结构为例说明. 如下图,数据区块由区块头和区块体两部分组成: 从图中我们可以看出Merkle树被应用在了交易的存储上.每笔交易都会生成一个hash值,然后不同的hash值向…
智能合约的作用很多,但是很多数据还是要基于互联网,那么如何在合约中获取互联网中的数据?Oraclize就是为了这个目的而诞生的. 工作原理: 智能合约通过对Oraclize发布一个合约之间的调用请求来获取数据,指定数据源和参数.Oraclize根据收到的请求获取数据,利用callBack函数返回结果. Oraclize的数据源列表如下: URL:互联网中的连接. WolframAlpha:WolframAlpha是开发计算数学应用软件的沃尔夫勒姆研究公司开发出的新一代的搜索引擎,能根据问题直接给…
这里总结了开发中一些常见报错和解决方案 1. 提示:createRawtx_change "Amount is not a number" 解决:参数中 tx 的 amout 需要改为 value. 2. 提示:mandatory-script-verify-flag-failed: 解决: return omniHelper.signRawtransaction(data, _tx, [temp_privatekey]); 此处需要私钥 3. 提示:{ Error: JSON val…
☞ ░ 前往老猿Python博文目录 ░ 在Hyperledger Fabric区块链中,有背书节点进行背书,Hyperledger Fabric 使用背书策略来定义哪些节点需要执行交易. Hyperledger Fabric在区块链交易方面采取了一个新颖的思路,将智能 合约的执行与账本的更新分开使它可以提高交易吞吐量,支持更细粒度 的隐私控制,实现更灵活强大的智能合约.而这些特性得以实现的一个 关键因素就是在交易加入账本之前进行显式地交易背书. 1.背书 背书"这个词源来自银行票据业务,传统意…
这篇文章将去介绍如何使用区块链进行交易. [本文禁止任何形式的全文粘贴式转载,本文来自 zacky31 的随笔] 目标: 在上一篇文章中,我们已经创建了一个可信任的区块链.但是目前所创建的链中包含的有用信息还是比较少的.今天,我将会用交易信息来替换之前的 data 内容,我将会创建一个简单的加密货币,叫作 "noobcoin". 前提: 已经了解了区块链基本知识 用到 GSON 和 bounceycastle  开始吧 在加密货币中,货币的所有权将会以交易的方式被传递,参与交易的人将会…
在计算机领域,Merkle树大多用来进行完整性验证处理.在处理完整性验证的应用场景中,特别是在分布式环境下进行这样的验证时,Merkle树会大大减少数据的传输量以及计算的复杂度. Merkle哈希树是一类基于哈希值的二叉树或多叉树,其叶子节点上的值通常为数据块的哈希值,而非叶子节点上的值是将该节点的所有子节点的组合结果的哈希值. 如下图所示为一个Merkle哈希树,节点A的值必须通过节点C.D上的值计算而得到.叶子节点C.D分别存储数据块001和002的哈希值,而非叶子节点A存储的是其子节点C.…
自MoreToken钱包跑路之后,2019年3月以来陆续多个钱包.交易所跑路,造成了大量用户账户被盗,仅MoreToken钱包用户损失总价值就达12.2亿人民币,用户损失惨重.为什么这么多钱包.交易所都钟爱跑路呢?人们普遍认为:钱包不就只是一种交易工具而已吗,用户账户的Token并没有存储在钱包中,钱包跑路与用户的Token有什么关系? 咱们先来分析一下个其中的技术原理.推广模式以及跑路套路,我们以钱包为例进行分析. iFace安全专家揭秘:区块链钱包技术原理 市面上的钱包几乎千篇一律地使用用户…
不知道大家喜不喜欢音乐! 朋克音乐:诞生于七十年代中期,一种源于六十年代车库摇滚和前朋克摇滚的简单摇滚乐.它由一个简单悦耳的主旋律和三个和弦组成,经过演变,朋克已经逐渐脱离摇滚,成为一种独立的音乐,朋克音乐不太讲究音乐技巧,更加倾向于思想解放和反主流的尖锐立场,这种初衷在二十世纪七十年代特定的历史背景下在英美两国都得到了积极效仿,最终形成了朋克运动.同时,朋克音乐在年轻人中十分流行,为世界多地青年所喜爱. 无论是摇滚还是朋克,你看它的历史都会发现:她们刚兴起的时候,是小众的甚至是地下的,是反主流…
/* 作 者: itdef 欢迎转帖 请保持文本完整并注明出处 技术博客 http://www.cnblogs.com/itdef/ 技术交流群 群号码:432336863欢迎c c++ windows驱动爱好者 服务器程序员沟通交流部分老代码存放地点http://www.oschina.net/code/list_by_user?id=614253 */ 书接上文 我们先来看区块的结构 class Block { public: string sPrevHash; //记录上个块的哈希值 Bl…
Factom这个Solution在2014年的时候就已经推出了,现在已经2018年了,我才来写这一篇分析文章可能有些迟了,但是它是十分具有参考价值的.因为现阶段来开区块链虽然炒得火热--养猫.养狗.草泥马之类的,但是真正成熟的应用比较少,有很多连基本的链平台都没有开发完全.而bitcoin作为区块链的1.0时代的代表,也是区块链行业的标杆存在,它的生态是最完整的--矿池.钱包.交易所.但是相对于区块链2.0Ethereum来讲功能就比较单一了,它的智能合约--公钥脚本功能单一,不是图灵完备的.基…
一.比特币历史 2008 年 10 月 31 日,一个网名叫中本聪(英文翻译过来滴)的家伙发布比特币唯一的白皮书:<Bitcoin:A Peer-to-PeerElectronic Cash System/比特币:一种点对点的电子现金系统>,拉开了比特币的序幕. 2009 年 1 月 3 日,中本聪在位于芬兰赫尔辛基的一个小型服务器上挖出了第一批 50 个比特币,并记录下当天泰晤士报的头版标题:“ The Times 03/Jan/2009 Chancellor on brink ofseco…
一.比特币历史 2008 年 10 月 31 日,一个网名叫中本聪(英文翻译过来滴)的家伙发布比特币唯一的白皮书:<Bitcoin:A Peer-to-PeerElectronic Cash System/比特币:一种点对点的电子现金系统>,拉开了比特币的序幕. 2009 年 1 月 3 日,中本聪在位于芬兰赫尔辛基的一个小型服务器上挖出了第一批 50 个比特币,并记录下当天泰晤士报的头版标题:“ The Times 03/Jan/2009 Chancellor on brink ofseco…
一 .什么是区块链? 区块链(Blockchain)是由节点参与的分布式数据库系统[1],它的特点是不可更改,不可伪造,也可以将其理解为账簿系统(ledger).它是比特币的一个重要概念,完整比特币区块链的副本,记录了其代币(token)的每一笔交易.通过这些信息,我们可以找到每一个地址,在历史上任何一点所拥有的价值. 区块链是由一串使用密码学方法产生的数据块组成的,每一个区块都包含了上一个区块的哈希值(hash),从创始区块(genesis block)开始连接到当前区块,形成块链.每一个区块…
为了为保证存储于区块链中的信息的安全与完整,区块链中使用了包含密码哈希函数和椭圆曲线公钥密码技术在内的大量的现代密码学技术,同时,这些密码学技术也被用于设计基于工作量证明的共识算法并识别用户. 在前边的文章中已经系统的讲述了密码学中的哈希算法,在本节,将会给大家介绍Hash算法在区块链中的应用! 概念回顾: 哈希函数:是一类数学函数,可以在有限合理的时间内,将任意长度的消息压缩为固定长度的二进制串,其输出值称为哈希值,也称为散列值. 以哈希函数为基础构造的哈希算法,在现代密码学中扮演着重要的角色…
问题导读1.哈希算法在区块链的作用是什么?2.什么是哈希算法?3.哈希算法是否可逆?4.比特币采用的是什么哈希算法? 作用在学习哈希算法前,我们需要知道哈希在区块链的作用哈希算法的作用如下:区块链通过哈希算法对一个交易区块中的交易信息进行加密,并把信息压缩成由一串数字和字母组成的散列字符串. 区块链的哈希值能够唯一而精准地标识一个区块,区块链中任意节点通过简单的哈希计算都接获得这个区块的哈希值,计算出的哈希值没有变化也就意味着区块链中的信息没有被篡改. 定义 hash (哈希或散列)算法是信息技…
区块链这么火,咱也跟个风.   一.前言 最近,银行总行关于数字货币即将推出的消息频传,把BTC也带得来了一波反弹. 借着这个风,我们也研究一下区块链.   通常大家说到区块链,实际包括两部分概念: 第一个概念,就是狭义上的区块链.听起来很高大上又很复杂,但追根到底,它就是一种加密应用. 提起加密,我们脑袋里会显现出:DES.3DES.AES.RSA.DSA.SHA-1.MD5……很多很多. 狭义的区块链,其实就是使用这些加密技术而形成的一种应用. 这个应用又分为两个部分: 区块 区块就是存放数…
散列 Hasing 前言 如果数据项之间是按照大小排好序的话,就可以利用二分查找来降低算法复杂度. 现在我们进一步来构造一个新的数据结构, 能使得查找算法的复杂度降到O(1), 这种概念称为"散列Hashing" 能够使得查找的次数降低到常数级别, 我们对数据项所处的位置就必须有更多的先验知识. 如果我们事先能知道要找的数据项应该出现在数据集中的什么位置, 就可以直接到那个位置看看数据项是否存在即可 由数据项的值来确定其存放位置 基本概念 散列表(hash table, 又称哈希表)…
一.背景 近期用 Rust 实现了 Jeiwan/blockchain_go,与原项目相比没有加入新的功能,只是换了一个编程语言实现了一遍,源码放在 Github 上. 开发这个项目,花费了好几个周末,比较低效,需要反思.中途差点烂尾,被情绪影响,不知道做这件事的意义在哪里,有什么收益,还好坚持了下来.我很佩服原项目的作者,能够持之以恒将一个项目做得那么好,还有完整的文档讲解.循序渐进,代码配合文档,非常清晰易懂.换句话说,作者为了写一篇技术科普文章介绍区块链,捎带用代码写了一个演示案例 ---…
这些力量并非命运,而是轨迹.他们提供的并不是我们将去向何方的预测,而是告诉我们,在不远的将来,我们会向那个方向前行,必然而然. ---凯文•凯利 文字与货币 人类在演化过程中,凭借智慧创造了无数事物,这些创造推动了人类文明的加速发展.特别是进入到信息时代以后,每天甚至每时每刻,创造都在不同领域发生着. 然而在人类文明的历史长海中,有两样东西的诞生具有极为特殊的地位,甚至其他任何创造都无法与之相提并论.他们就是文字与货币,文字的发明,则让人类在在精神层面做到可靠的交流与传承,而货币的发明,则让人类…
正本清源区块链 说明:以下内容整理自Caoz的<正本清源区块链>,如有不妥,请联系我修改或删除. 简介 不讨论炒币!不讨论炒币!不讨论炒币! 本课程内容分为两部分: 第一部分,烧脑篇,介绍区块链的技术概念,目标本源和技术演进,以及信息安全相关的风险. 第二部分,诱惑篇,介绍区块链的产业链,相关产业的收益模式和未来的潜在商业空间.谁在赚钱,赚什么钱. 前言 大家好,我是曹政,很高兴今天可以跟大家分享关于区块链的一些学习心得. 区块链现在已经成为市场的超级热点,开设区块链分享的课程也有很多,比如4…
很多人迷惑于区块链和以太坊,不知如何学习,本文简单说了一下学习的一些方法和资源. 一. 以太坊和区块链的关系 从区块链历史上来说,先诞生了比特币,当时并没有区块链这个技术和名词,然后业界从比特币中提取了技术架构和体系,称之为区块链技术.从比特币提取的区块链技术称之为区块链1.0时代,那个时候的应用主要以电子货币和去中心化交易为主,比如各种山寨币.而以太坊将区块链带入了2.0的时代,区块链2.0不是推翻了1.0,而是在1.0的基础上实现了区块知晓.价值知晓.图灵完备,并进行了细节优化,从而形成了以…
本文目的是通过java实战开发教程理解区块链是什么.将通过实战入门学习,用Java自学开发一个很基本的区块链,并在此基础上能扩展如web框架应用等.这个基本的java区块链也实现简单的工作量证明系统.本文用一个java例子,演示了开发一个区块链应用的过程,涉及到所有区块链的概念和基本实现方法.本文阅读对象,主要是希望和即将从事区块链开发的项目架构师.需要指出的是,我们用150行java代码构建的区块链达不到生产级别的,它只是为了帮助你更好的理解区块链的概念. Java源代码保存在Github 创…
近几天对区块链中几种常见的共识机制(PBFT,Raft,PoW,PoS,DPoS,Ripple)进行了总结.尽量使用简单易懂语言,篇幅较大,想了解的可以只读每个算法介绍中前边的原理.本篇文章主要参考<区块链技术指南>,首先表示感谢! ---Begin--- 区块链架构是一种分布式的架构.其部署模式有公共链.联盟链.私有链三种,对应的是去中心化分布式系统.部分去中心化分布式系统和弱中心分布式系统. 在分布式系统中,多个主机通过异步通信方式组成网络集群.在这样的一个异步系统中,需要主机之间进行状态…
转自:https://mp.weixin.qq.com/s/2daFH9Ej5fVlWmpsN5HZzw 外文链接: https://medium.com/coinmonks/code-a-simple-p2p-blockchain-in-go-46662601f417 在之前的文章中,我们已经知道了怎么编写PoW也知道了IPFS怎么工作, 但是有一个致命的缺点,我们的服务都是中心化的,这篇文章会教你怎么实现一个简单的完全去中心化的P2P网络. 背景知识 什么是P2P网络 在真正的P2P架构中,…
1.什么是区块链 a.定义: 从本质上来说区块链就是一种通过将用户的某种特定信息(比如交易信息),通过很多台计算机记录保存并同步的过程,每个区块都记录了对应的交易信息,将这些交易信息串联起来就形成了所谓的区块链,区块链也就是存储在很多计算机节点中的数据库一样的文件db. 从技术上来说,区块链是分布式数据存储.点对点传输.共识机制.加密算法等计算机技术的新型应用模式,区块链技术设计了当今世界上基本所有的计算机相关问题.区块链技术推动着计算机计算速度的发展,不断更新迭代优化计算机的软硬件性能. 从用…