区块链
文章平均质量分 71
yhc166188
路虽远,行则将至;事虽难,做则必成!
展开
-
VRF-可验证随机函数
VRF(Verifiable Random Function):可验证随机函数用于区块链中的意义很好理解——用以完成出块节点的随机选择。 VRF算法作为一种基于密码学的新型共识模型,最大的优势是快速共识、抗攻击能力、极低算力需求,已有的解决方案有Algorand算法和Dfinity中基于BLS的算法等。 VRF的简单理解是非常容易的,首先讲一个简单的哈希函数,比如结合了secret的哈希函...转载 2019-09-01 22:10:36 · 1249 阅读 · 0 评论 -
PBFT实用拜占庭容错算法详解
分布式架构遭遇的问题分布式架构会遭遇到以下问题:1、异构环境的分布式架构首先可能遇到网络传输问题,比如数据丢失、延迟、重复、乱序。2、欺骗攻击和重播攻击3、操纵多个失效节点,延迟通讯,制造混乱。具体到区块链世界,存在同样类似的问题:区块链是一个分布式账本系统,参与者通过点对点网络连接,所有消息都通过广播的形式来 发送。系统中存在两种角色:普通节点和记账节点。普通节点使用系统来进行转...原创 2019-08-26 10:30:40 · 2053 阅读 · 0 评论 -
一致性共识算法:raft
文章目录1. Raft 节点状态2. 选主 Leader Election2.1 正常情况下选主2.2 Leader 出故障情况下的选主3. 复制日志 Log Replication3.1 正常情况下复制日志3.2 Network Partition 情况下进行复制日志拜占庭将军问题是分布式领域最复杂、最严格的容错模型(可能有叛徒、信使可能被策反或者暗杀)。但在日常工作中使用的分布式系统面对的问...转载 2020-04-05 22:54:10 · 321 阅读 · 0 评论 -
一致性算法 Paxos
文章目录摘要1. 什么是 Paxos 算法2. Paxos算法背景及类型3. Paxos算法流程4. Multi-Paxos算法5. Paxos算法推导过程摘要在一个分布式系统中,由于节点故障、网络延迟等各种原因,根据CAP理论,我们只能保证一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)中的两个。对于一致性要求高的系...转载 2020-04-05 22:52:51 · 618 阅读 · 0 评论 -
hyperledger fabric 之 gossip 协议(共识)
gossip功能:1、管理组织内节点和通道信息,以及检测哪些节点是否在线活着离线2、广播数据使组织内相同channel的节点同步到相同的数据3、管理新加⼊入节点,并同步数据到新的节点...原创 2020-03-27 08:06:15 · 568 阅读 · 0 评论 -
超全总结Hyperledger Fabric架构原理
文章目录Hyperledger Fabric概述基本概念Fabric v0.6和v1.x架构差异这样设计的优势Hyperledger Fabric Network的共识算法各种节点客户端节点普通节点peer排序服务节点ordererCA节点交易流程1.发送交易提案2.模拟执行交易提案3.返回提案响应4.交易排序5.交易验证并提交6.通知交易结果给客户端交易有两种类型blockchain数据结构状态...原创 2020-03-26 09:04:58 · 4442 阅读 · 0 评论 -
啥叫Native Code
Native Code — 本机代码已被编译为特定于处理器的机器码的代码。这些代码可以直接被虚拟机执行。与字节码的区别:虚拟机是一个把通用字节码转换成用于特定处理器的本地代码的程序本地代码(native code)是计算机编程(代码),编译用来运行一个特殊的处理器(如英特尔x86级的处理器)和它的特殊指令集。如果同一个程序在不同的处理器上执行的话软件就必须能够模拟出旧的处理器的指令。这...原创 2020-03-11 22:22:35 · 2909 阅读 · 0 评论 -
区块链技术基础问题
文章目录什么是区块链?(定义)相比现有的数据库技术,区块链有哪些技术特征?区块链有哪些技术创新?区块链分类什么是区块链?(定义)区块链技术本质上是一个去中心化的数据库,它是比特币的核心技术与基础架构,是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改、不可...转载 2020-01-12 20:48:09 · 3017 阅读 · 0 评论 -
零知识证明
零知识证明基本定义:证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。顾名思义,零知识证明就是既能充分证明自己是某种权益的合法拥有者,又不把有关的信息泄露出去——即给外界的“知识”为“零”。例如:A是证明者,A拥有CD出打开门的钥匙。B是验证者。...原创 2019-12-25 13:33:43 · 390 阅读 · 0 评论 -
一篇了解隔离见证
每一个比特币交易,都可以分为两部分。第一部分是转账记录,第二部分是用来证明这个交易合法性(主要是签名)的。第一部分可称为“交易状态”,第二部分就是所谓的见证(witness)。如果你只关心每个账户的余额,那么转账记录就已经足够了。只有部分人(主要是矿工)才有必要取得交易见证。(交易信息就是谁给谁在什么时间转了多少钱。见证信息就是哪个节点在什么时间验证交易信息的可靠性。)中本聪在设计比特币的...原创 2019-12-25 11:28:42 · 314 阅读 · 0 评论 -
对可验证随机函数VRF的简明解释
因为可验证随机函VRF对设计区块链共识算法有很大帮助,最近就研究了一下VRF,本文随时更新,以分享我对VRF和共识算法的最新理解。要理解VRF的工作原理,首先要理解哈希函数,这是基础知识,比如SHA256,SHA3等等,不必详细讨论。先理解一下这里说的“随机”是什么意思:一个理想的哈希函数,其值域应该是离散的、均匀分布的,给定不同的输入值,其输出值应该没有规律,随机的洒落、分布在值域区间内。...原创 2019-07-03 16:18:18 · 573 阅读 · 0 评论 -
五分钟讲明白DAG(有向无环图)的优缺点
区块链是一个去中心化的数据库,但是去中心化的数据库却不仅仅指区块链,因为还有一种技术叫做DAG,它也是分布式账本技术。1:什么是DAGDAG(Directed Acyclic Graph),中文名"有向无环图"。"有向"指的是有方向,准确的说应该是同一个方向,"无环"则指够不成闭环。在DAG中,没有区块的概念,他的组成单元是一笔笔的交易,每个单元记录的是单个用户的交易,这样就省去了打包出块...转载 2019-06-25 10:31:02 · 28285 阅读 · 0 评论 -
以太坊:什么是ERC20标准?
许多人应该都听过 代码即法律(Code Is Law),因为程序写完了,无论执行多少次都会得到同样的结果,除非有外界因素的干扰。在多人协作的过程中一定是要按照一个标准来进行分工,这样才能最快的完成整体任务,不至于出错。接触过数字货币的人都应该知道,以太坊是一个分布式的智能合约平台,可以分发代币(Token)。我们可以在以太坊区块链浏览器中查看https://www.etherscan.io...转载 2018-10-09 13:28:53 · 307 阅读 · 0 评论 -
以太坊 ERC20,ERC721
0x00 前言 有一阵子,Ethereum网络突然变的特别拥堵,原因是兴起了一款以太坊养猫的Dapp游戏,超级可爱的猫形象,再加上配种,繁殖和拍卖等丰富的玩法,风靡了币圈。 一时间币圈大大小小的人都在撸猫,以太坊网络不堪负荷。 后续又出款了很多的类似的游戏,网易招财猫,百度莱茨狗和加密鱼等等,不过玩法套路都是差不多。 这款游戏的核心是以太坊的智能合约,也是第一款基于智...转载 2018-10-11 15:46:46 · 219 阅读 · 0 评论 -
以太坊智能合约 Hexagon 存在溢出漏洞
最近通过对智能合约的审计,发现了一些智能合约相关的安全问题。其中我们发现智能合约Hexagon存在溢出攻击,可产生无数的token,导致整个代币都没有意义。 Token地址:https://etherscan.io/address/0xB5335e24d0aB29C190AB8C2B459238Da1153cEBA该代币可能要上交易所,我们已第一时间向官方通知该问题。目前发现受影响合...转载 2018-09-18 08:32:37 · 234 阅读 · 0 评论 -
Solidity语言基础(1)
Solidity是一种智能合约高级语言,运行在Ethereum虚拟机(EVM)之上。Solidity与其它语言相关的特点?它的语法接近于Javascript,是一种面向对象的语言。但作为一种真正意义上运行在网络上的去中心合约,它又有很多的不同,下面列举一些:以太坊底层是基于帐户,而非UTXO的,所以有一个特殊的Address的类型。用于定位用户,定位合约,定位合约的代码(合约本身也是一个帐户)。由...原创 2018-03-22 14:57:19 · 1410 阅读 · 0 评论 -
区块链智能合约
智能合约这个术语是跨领域法律学者尼克·萨博(Nick Szabo)提出来的,他对智能合约的定义是“一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。”换成更加通俗的描述就是“智能合约是一个在计算机系统上,当一定条件被满足的情况下,可以被自动执行的合约。”1.智能合约使得区块链的扩展性更强,且实现上更简洁,从而让以太坊发展成为目前最大的一个区块链...转载 2018-03-25 23:03:45 · 1505 阅读 · 0 评论 -
搭建编译和测试智能合约流程
步骤1. node.js开发环境 https://nodejs.org/zh-cn/下载安装 2. 开发环境,remix http://remix.ethereum.org/ (暂时不用,可以先跳过)安装本地remix环境remix:Windows、Mac OS X和Linux。remixgit clone https://github.com/ethereum/...原创 2018-04-14 15:24:15 · 759 阅读 · 0 评论 -
DApp与以太坊相关名词
1.DApp与以太坊(Ethereum)DApp的概念DApp(decentralized applications):去中心化应用。优势:可容纳无限数量的参与者(节点),而且任何人都无法控制整个Dapp网络。面临的挑战检测并阻止对数据的非法修改如何应对挑战通过经济惩罚让攻击变得毫无意义PoW【Proof of Work,工作量证明】pow举例 在字符串“Hello world”后面加一个名为n...原创 2018-04-10 23:16:12 · 417 阅读 · 0 评论 -
solidity语言基础2
1.杂项映射/字典(mappings)映射或字典类型,一种键值对的映射关系存储结构。定义方式为mapping(_KeyType => _KeyValue)。键的类型允许除映射外的所有类型,如数组,合约,枚举,结构体。值的类型无限制。映射可以被视作为一个哈希表,其中所有可能的键已被虚拟化的创建,被映射到一个默认值(二进制表示的零)。但在映射表中,我们并不存储键的数据,仅仅存储它的keccak2...原创 2018-04-05 15:49:49 · 385 阅读 · 0 评论 -
solidity进阶3
1.入参和出参(Input Parameters and Output Parameters)同javascript一样,函数有输入参数,但与之不同的是,函数可能有任意数量的返回参数。入参(Input Parameters)入参(Input Parameter)与变量的定义方式一致,稍微不同的是,不会用到的参数可以省略变量名称。一种可接受两个整型参数的函数如下:pragma solidity ^0...原创 2018-04-05 16:42:55 · 494 阅读 · 0 评论 -
solidity 合约详解4
1.合约Solidity中合约有点类似面向对象语言中的类。合约中有用于数据持久化的状态变量(state variables)(即合约中的成员变量),和可以操作他们的函数。调用另一个合约实例的函数时,会执行一个EVM函数调用,这个操作会切换执行时的上下文,这样,前一个合约的状态变量(state variables)就不能访问了。创建合约合约可以通过Solidity,或不通过Solidity创建。当合...原创 2018-04-05 22:17:47 · 1097 阅读 · 0 评论 -
区块链应用前景概述
一、挖矿:旷工确认交易并产生新的区块矿工的收入:区块奖励与服务费挖矿的具体过程:计算题(根据上一个区块的hash值和本区块的交易内容,产生本区块的有效hash值)目前挖矿的情况:每十分钟左右诞生一个1M大小的区块,记录了这十分钟内的所有交易信息,每个区块的成功提交者(矿工)获得系统12.5个比特币以及用户附加的服务费二、区块链原理共识机制工作量证明pow(计算能力)只在最长链基础上添加51%攻击:...原创 2018-04-06 09:09:26 · 1666 阅读 · 0 评论 -
eos在MAC上搭建一个EOS 3.0本地节点
1)在github上克隆master一个版本,因为master更新很频繁,所以记得要经常用git pull更新一下代码git clone https://github.com/eosio/eos --recursive cd ~/eos ./eosio_build.sh2)安装编译cd ~/eos/buildsudo make install注意:以下这项可选,主要...原创 2018-08-14 17:10:03 · 561 阅读 · 0 评论 -
区块链概述
一、什么是区块链(blockchain) 一种去中心化的分布式账本数据库,没有中心,数据存储的每个节点都会同步复制整个账本,信息透明难以篡改。主要作用是储存信息 其次,任何人都可以架设服务器,加入区块链网络,成为一个节点。区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库。你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致。 区块链就是一个数据库,...原创 2018-03-16 17:27:15 · 564 阅读 · 0 评论