
区块链
文章平均质量分 85
MY CUP OF TEA
所谓的念念不忘,在自己眼中是爱,在对方眼中是烦,在旁人眼中是贱。
展开
-
基于区块链的档案共享 项目启动
windows修改hosthost存储路径C:\Windows\System32\drivers\etc Windows系统如何修改Hosts文件_达文西不辅助的博客-优快云博客_如何修改hosts原创 2022-04-19 21:47:23 · 500 阅读 · 0 评论 -
火狐浏览器添加MetaMask钱包和本地开启私有链开发
火狐浏览器添加MetaMask钱包因为对其配置了代理工具,所以直接使用谷歌引擎搜索MetaMask钱包即可第一次使用,立即开始设置点击我同意,进行密码的创建牢记助记词,助记词及其关键,将其存储在安全的地方区块链-开发 Metamask 连接私有节点,且导入节点账号第一步,Metamask设置节点连接。 (前提:需要自己手动搭建以太坊私有节点,我用的是geth,且搭建在ubtuntu上,关于ubtuntu搭建geth,请参考我的其余文章) 点击设置开启相...原创 2021-12-11 11:06:40 · 13852 阅读 · 0 评论 -
Ubuntu搭建联盟链,实现节点之间数据同步
安装go环境从参考链接选择Linux版本的go的安装包使用命令 mv go(Tab补全)/usr/local 移动go安装包到/usr/local目录下 使用命令解压 sudo tar -xvzf go(Tab补全) 配置环境 sudo gedit ~/.profile export PATH=$PATH:/usr/local/go/bin 激活生效source ~/.profile 验证go version 如果输出结果类似go version go1...原创 2021-12-11 10:56:34 · 11994 阅读 · 0 评论 -
Ubuntu配置IPFS的环境
参考链接Ubuntu上IPFS环境搭建 - 简书相关图片原创 2021-12-11 10:37:43 · 11789 阅读 · 0 评论 -
使用MetaMask实现转账交易时附带Input Data数据
进入如下页面,点击View Assert in Explorer进入Etherscan网站,就可以看到本账户先前所有的交易信息。字段分析Txn Hash 是交易的Hash Method:交易的类型,一般是两种,如果是Transfer指定的是合约部署;如果是Transfer则代表账户转账 Block:表示当前交易存储在的区块 From:交易的发起方 To:交易的接收方 Value:转账的价格 Txn Fee:手续费点击第一个交易,查询一笔交易的详细数据,点击Click to ..原创 2021-12-08 14:35:08 · 9405 阅读 · 1 评论 -
目前基于区块链的档案防篡改系统的设计如何实现防篡改
架构设计图分析为了保障档案数据的安全性和隐私性,存储档案附件和档案属性存储加密存储在私有IPFS集群,档案的IPFS地址和数字指纹存储在私有区块链上。公有区块链定期存储和检查私有区块链最新不可逆区块的高度和哈希值,以保障私有区块链上数据的真实性。(私有链上的数据准确无误之后,才会将区块的哈希信息定期存储到公有链上,虽然引入了公有链保障了数据的安全性和可靠性,但是往公有链上记录数据需要花费手续费,因此可改用联盟链,但是联盟链的安全性相对于公有链很差,是一个半中心化的平台,需要进一步优化) Mon原创 2020-10-19 18:58:38 · 3146 阅读 · 2 评论 -
面向区块链的高效物化视图维护和可信查询论文学习
物化视图介绍如何维护物化视图仍旧是一个开放问题.在关系数据库中,增量刷新的物化视图维护策略可划分为立即维护和延迟维护两大类. 立即维护策略的优点是实现较为简单,在单数据源下不 存在一致性问题;然而该策略将物化视图维护过程嵌入到更新事务之中,延长了更新事务的提交时间,这在高并发的情况下易发生死锁. 延迟维护策略解耦合视图维护和更新事务,在 OLTP 场景下,可以通过合并无关更新的方法缩短视图维护时间;但是此策略存在一致性问题,若视图未更新完毕则不可使用.在延迟维护策略的诸多实现方法中,按需维护较为常见原创 2020-10-15 14:44:10 · 370 阅读 · 1 评论 -
密码学在区块链隐私保护中的应用学习
身份隐私保护技术混淆服务混淆服务的目的在于混淆消息双方的联系(如 图 2 所示)。当发送方需要告知接收方消息 M 时, 它会首先用接收方的公钥 KB 加密 M,并在密文后 附带真实接收地址 R。为了借助第三方(图 2 中的 混淆服务器)的能力隐藏交易双方的关联性,发送 方会继续用第三方的公钥 KI 做第二重加密,并将结果(见下方公式的箭头左侧)提交给第三方。当第三方接收到若干密文后,分别进行解密以获取原始密文,并根据解密出来的地址进行转发 ; 接收方收到消息后可自行解密获知消息 M。整个过程用原创 2020-10-15 14:43:41 · 4445 阅读 · 8 评论 -
演示IPFS的一个完整的流程以及针对部分概念的详解
整体的流程1,创建ipfs节点通过ipfs init在本地计算机建立一个IPFS节点 本文有些命令已经执行过了,就没有重新初始化。部分图片拷贝自先前文档,具体信息应以实物为准$ ipfs initinitializing IPFS node at /Users/CHY/.ipfsgenerating 2048-bit RSA keypair...donepeer identity: QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MPto get原创 2020-10-07 16:50:38 · 2838 阅读 · 0 评论 -
对于Algorand的介绍
介绍Algorand具有能耗低、效率高、民主化、分叉概率极低、可拓展性好等优点,旨在解决现有区块链项目存在的“不可能三角”(高度可扩展的、安全的、去中心化)问题。Algorand由MIT教授、图灵奖得主Silvio Micali发起,拥有MIT区块链大牛为主的开发团队和全明星阵容的顾问团队。是第一个提出随机共识机制的区块链项目,该项目旨在成为一个高度可扩展的、安全的、去中心化的区块链。它具有抗分叉的弹性,并能在一分钟内实现区块的最终确认。项目亮点Algorand是由图灵奖获得者Silvio Mic原创 2020-10-02 20:03:48 · 708 阅读 · 1 评论 -
针对Algorand所使用的密码相关技术细节进行介绍
总体概括Algorand 采用可验证随机函数、POS (账户余额权重)以及新的拜占庭协议议定书(Byzantine Agreement Protocol,BA*)整合方式的共识机制来实现提高TPS的同时,没有牺牲去中心化和隐私性,并且拥有良好的扩展性。可验证的随机函数:Micali是可验证的随机函数(verifiable random functions:VRF)的发明人之一,VRF是一种随机数产生方式,每一个用户,都能够通过计算他们的私钥和区块链上公共信息的函数(VRF),独立地判断他是否当选委原创 2020-10-02 20:01:59 · 1380 阅读 · 1 评论 -
Algorand的共识协议及其核心的优势
Algorand 设计的初衷Algorand 想解决的核心问题是:去中心化网络中低延时(Latency)和高置信度(Confidence)之间的矛盾。其中,延时指从发起交易到确认交易所需要的时间;置信度指的是发出的交易不会再被更改的概率。 在比特币网络中,为了提高交易的置信度,用户必须等待 6 个区块确认(约 1 个小时)的确认延时;而如果选择低延时,比如少于 6 个确认,甚至是 0 确认,则必然导致低置信度,增加“双花”攻击的可能。双花问题是绝大多数加密数字货币的核心问题。比特币中采用 PoW 共识原创 2020-10-02 19:56:42 · 889 阅读 · 3 评论 -
web3 0.2.x 和 1.x.x版本之间的差异
版本差异单位转换0.2.xweb3.fromWei(13144321,'ether')1.x.xweb3.utils.fromWei(13144321,'ether')原创 2020-10-02 19:52:23 · 228 阅读 · 1 评论 -
区块链技术指南 序章理解感悟
序二误区一:区块链是一种颠覆性的新技术。 区块链不是一个新的技术,而是一个新的技术的组合。其关键的技术,包括P2P动态组网、基于密码学的共享账本、共识机制(拜占庭将军问题,分布式场景下的一致性问题)、智能合约等技术,都是在历史上已经存在十几年的老技术了。中本聪将上述的技术巧妙的结合在一起,并在此基础上引入了完善的激励政策,用经济学原理来解决传统技术无法解决的问题。误区二:区块链就是去中心化(Decentralized)的。 作为软件系统的网络架构一般是三种模式:单中心、多中心和分布式。单词原创 2020-09-08 16:26:52 · 441 阅读 · 0 评论 -
AIgorand的相关学习参考链接
相关具体的开发者与SDK链接如下:GoSDK JavaScript SDK网页链接测试网申请链接 Github存储库链接 开发者网址 AIgorand官网 Telegram电报群 综合白皮书 Medium Naver Blog 领英Linkedin 区块链浏览器 INC公示钱包地址 基金会公示钱包地址 Telegram电报群...原创 2020-09-08 10:02:41 · 225 阅读 · 0 评论 -
AIgorand区块链中VRF随机函数的应用
VRF(Verifiable Random Function)可验证随机函数可以看作是一个随机预言机,即可以通过任意的一个输入,获得一个随机数输出: 输出的结果(Output)是一个随机数,其数值会均匀分布在值域范围内 对于相同的Input,输出的结果Output必须是一致的 可验证随机函数比随机预言机多了一个非交互的零知识证明,可以用零知识证明来验证该随机数输出的正确性,表明这个随机数的确是由特定的某个人生成的,而不是伪造的。可验证随机函数组成VRF GEN:生成秘钥,生成一个公私原创 2020-09-07 15:57:02 · 485 阅读 · 0 评论 -
基于属性加密的ABE算法的应用场景思考展望
ABE算法先前使用在云计算场景中,和区块链存在交叉应用场景,具体问题体现在数据的异地存储、云服务器提供商的不可信、管理员能否对自身数据拥有足够的控制能力以及如何保证数据的安全有效共享都是亟需解决的问题。云计算的解决办法设计基于属性的访问控制方案,通过属性描述用户的身份,允许加密数据的主体指定其解密客体,具有较高的效率和更好的安全性。系统采用当今热门的Hadoop开源架构,实现了云环境下的存储、上传、下载等功能,该架构环境更利于进行部署与系统的实现。 系统结合HDFS(Hadoop Distrib原创 2020-08-30 19:22:41 · 2892 阅读 · 2 评论 -
属性加密技术及基于属性的ABE算法的访问控制技术介绍
属性加密技术基于身份的加密体制简介基于身份的加密体制可以看作一种特殊的公钥加密,它有如下特点:系统中用户的公钥可以由任意的字符串组成。这些字符串可以是用户在现实中的身份信息,如:身份证号码、用户姓名、电话号码、Email地址等,因为用户的公钥是通过用户现实中的相关信息计算得到的,公钥本质上就是用户在系统中的身份信息,所以公钥真实性问题和证书管理问题在基于身份加密的系统中就不再需要。基于身份加密体制的优势在于用户的公钥可以是描述用户身份信息的字符串,也可以是通过这些字符串计算得到的相关信息。原创 2020-08-30 19:11:18 · 8344 阅读 · 4 评论 -
如何用区块链保障数据安全和承载数据确权
区块链可以确保数据安全,体现在那些方面呢?主要是两个维度,一是数据的不可篡改性;另外一个就是数据的隐私安全性。 区块链技术本身并不解决任何的安全问题,因此需要搭配安全技术一起使用,比如非对称加密、安全随机数等。 在隐私保护技术上,可以使用隐藏地址(Stealth Addresses)和 zk-SNARKs (简洁的,非交互的零知识证明)。想法TEE+区块链的方式。TEE 可以解决可信运行环境,区块链可以解决数据真实性不会被非法篡改,正好是非常好的互补组合。 TEE 的一个独特之处是可以将任务原创 2020-08-29 16:49:38 · 1334 阅读 · 1 评论 -
区块链中密码学与安全技术
区块链的定义区块链的定义,应当是:区块链是一种按照时间顺序将数据进行分布式存储的块链式数据结构,它利用共识机制进行数据验证,利用密码学进行数据保护和用户安全访问,利用智能合约来操作数据,从而成为不可篡改和不可伪造的分布式账本。所以,分布式存储、共识机制、密码学原理和智能合约构成区块链的核心技术内容。区块链和密码学之间的关系区块链和密码学是相互促进发展的一个过程,区块链中大量使用了密码学的知识;同样的,为了满足区块链的不同场景,也反向促进了密码学的进一步发展。引言本篇会讲述密码学在区块链中的具原创 2020-08-29 09:08:52 · 2562 阅读 · 1 评论 -
区块链中的密码学,使用ABE结合区块链
ABE 密码学,以及与区块链结合的价值背景区块链技术具备篡改难度高、使用成本低、分布式的优点,本应成为各行各业的重要助力。但是由于链上参与方担心自己的核心数据外泄,不愿将自己的核心数据上链,这个原因成为阻止区块链落地的主要难题。 使用 ABE密码学,就可以使得区块链中数据所有权得到有效保护,链上数据归属权为参与者本人所有,外人无法访问。ABE 密码学是什么ABE 是基于属性的加密,即(Attribute-Based Encryption)。与 RSA、IBE (基于身份加密)等加密方式相比,原创 2020-08-28 22:45:40 · 3573 阅读 · 1 评论 -
区块链中涉及到密码学的场景
区块链中涉及到密码学的场景共识算法(Consensus algorithm) 交易签名(Signing transaction) 第二层网络如何在第一层网络中验证(Layer2’s verification on Layer1) 验证跨链交易(Verifying the cross chain tx) 通过多种数字签名进行 Rollup 扩容(Rollup with different digital signature)(什么是 Rolllup?) 跨分片(Cross-shard) 区块链原创 2020-08-28 22:44:57 · 710 阅读 · 0 评论 -
区块链的完整流程 自动化执行代码
通过npm script机制, 在package.json文件中,输入对应的代码,就可以自动化执行相关的函数使用npm run test执行package.json中的内容,因为package.json包含test,所以可行,但是使用npm run compile会报错原创 2020-08-11 20:37:09 · 645 阅读 · 0 评论 -
使用mocha进行测试 区块链
mocha安装npm install mocha --save-devmocha简介mocha是一个JavaScript的单元测试的框架,既可以运行在浏览器环境中,也可以运行在node.js环境中,只需要编写测试用例,mocha就会将测试自动的运行,并且给出测试的结果主要特点既可以测试简单的JavaScript函数,也可以测试异步代码 既可以自动运行所有的测试,也可以只运行特定的测试 可以支持before、after、beforeEach和aftereach来编写初始化代码测试用例.原创 2020-08-07 22:36:39 · 242 阅读 · 0 评论 -
web3@0.20.1 在依据abi创建智能合约的时候报错 TypeError: web3.eth.contract is not a function
前面的代码不变var web3 = new Web3(new Web3.providers.HttpProvider("Http://localhost:8545"));var abi = JSON.parse('[{"constant":true,"inputs":[{"name":"candidate","type":"bytes32"}],"name":"totalVotesFor","outputs":[{"name":"","type":"uint8"}],"payable":false,原创 2020-08-07 11:23:45 · 2390 阅读 · 4 评论 -
通过node 完成简单的web3 API调用测试
使用命令查看当前web3的版本npm list web3输入命令 node,进入终端引入web3,使用命令 var web3 = require('web3')查看引入web3的版本web3.version原创 2020-08-04 09:02:10 · 397 阅读 · 0 评论 -
最新,使用truffle框架之后,安装ipfs的api包文件的命令变化
原因项目文件路径变化了,不是先前直接在项目文件夹里面直接执行安装ipfs的命令了,需要切换到client文件夹下面执行路径不对,会出现错误,错误提示如下切换到正确的路径之后,使用命令npm install --save ipfs-http-client,进行安装,效果如下图所示...原创 2020-08-02 14:09:24 · 311 阅读 · 0 评论 -
使用MAC 编译合约的时候报错:
编译报错的显示内容如下:Error: EACCES: permission denied, mkdir '/Users/chy/Documents/ipfslearn/ipfs_eth_img/client/src/contracts'最简单的解决方法 原因分析:执行的权限不够 解决办法:升级权限 使用命令 chmod 777 项目的文件夹 使用命令 chmod 777 * 给项目的文件夹里面所有内容升级权限编译成功...原创 2020-08-02 13:22:00 · 302 阅读 · 0 评论 -
区块链的相关知识点
1,密码学原理密码学原理1,collision resistance哈希函数 ,目前还是很安全的,没有找到任何不同的内容其哈希是一致的情形。哈希碰撞(这个在数学上面是没法证明的,都是日常的实践表明,无法找到对于不同事物的对其进行哈希运算之后,得到的哈希值是一致的。MD5 被人为制造的哈希碰撞攻破,表明其机制的不安全)2,hiding(输入空间要足够大,分布要均匀)单向的 x -> H(x),输入到输出,单向3,puzzle friendly事先不知道结果,没有捷径,只能不断原创 2020-08-02 11:06:01 · 1920 阅读 · 1 评论 -
区块链相关问题 理解
本博客针对区块链的部分问题进行详解,希望帮助大家对于区块链有一个更好的理解1,如果散布虚假交易,怎么整?(谁欠我XXX比特币)1,可以发起虚假交易,但是很难被全网的节点接收并写入区块链中。因为发起交易是需要进行身份验证,区块链一般发起的交易内容入下,从我的账户转多少比特币给谁。比如我转给张三10个比特币,这个过程需要使用交易发起者的私钥加密,加密过后会形成秘文,然后将交易消息、秘文、公钥一起广播,其余节点收到消息之后会对于消息的合法性进行验证,别人通过我的公钥解密秘文,如果解密得到的明文和发布的消息原创 2020-08-02 10:10:01 · 459 阅读 · 0 评论 -
执行truffle unbox react报错,出现Error: connect ECONNREFUSED 0.0.0.0:443问题的解决办法
前提:我是用的是MAC系统,不知道使用windows系统是否也可以react-box 项目构建localhost:ReactDapp liyuechun$ truffle unbox react-boxStarting unbox...=================✔ Preparing to download box✖ DownloadingUnbox failed!RequestError: Error: connect ECONNREFUSED 0.0.0.0:443原创 2020-08-01 21:03:35 · 15986 阅读 · 2 评论 -
Web3.js 学习
web3.jsWeb3 JavaScript app API web3.js是一个JavaScript API库,一般使得DApp在以太坊上运行 web3.js通过RPC调用与本节点通信,用于任何暴露了RPC层的以太坊节点之间通信 web3包含了eth对象,即web3.eth(专门和以太坊区块链交互)和shh对象,即web3.shh(用于和Whisper交互)web3模块加载首先需要将web3模块安装在项目中,使用命令如下cnpm install web3@0.20.1 --save-d原创 2020-08-04 18:13:01 · 1249 阅读 · 1 评论 -
安装solc模块4.25版本
使用国产阿里云的cnpm如果不知道cnpm参考链接安装solc模块4.25版本npm i solc@0.4.25 --save -g查看安装是否成功可以配置软连接使用solc,我的没有配置solcjs --version原创 2020-06-30 16:22:18 · 1210 阅读 · 0 评论 -
深入理解Solidity 三
Solidity函数声明和类型函数的值类型有两类:内部(internal)类型和外部(external)类型 内部函数只可以在当前合约内部被调用(即在当前代码块内,包括内部库函数和继承函数),因为他们不能在当前合约的上下文中的外部被执行。调用一个内部函数是通过跳转到它的入口标签来实现的,就像在当前合约的内部调用一个函数 外部函数是由一个地址和一个函数的签名组成,可以通过外部函数调用传递或者返回 调用内部函数,直接使用名字f 调用外部函数:this.f(当前合约),a.f(外部合约) 除了.原创 2020-06-30 11:39:42 · 659 阅读 · 0 评论 -
深入理解Solidity 二
Solidity数据位置所有复杂的数据类型,即数组、结构和映射类型,都会有一个额外属性“数据位置”,用来指定数据的存储位置,即数据是存储在memory还是存储在storage里面 根据上下文环境,IDE会自动指定数据的默认存储位置,但是也可以通过在类型名字之后添加关键字stirage或者memory进行修改 函数参数(包括返回的参数)的数据位置默认是memory,局部变量的数据存储位置默认是storage,状态变量的数据位置强制是storage 另外还有第三种数据存储位置,calldata,这个是原创 2020-06-29 12:08:27 · 380 阅读 · 0 评论 -
深入理解Solidity
Solidity源文件布局pragma(版本杂注)用于指定源文件的版本,表明编译器的版本,例如 pragma solidity ^0.4.0 ^用于指代版本号需要大于0.4.0但是不可以超过大的层级,必须小于0.5.0 也可以使用大于等于小于来指定版本import(导入其它源文件)Solidity所支持的导入语句import,语法和JavaScript非常类似 import “filename”; 从“filenmae”中导入所有的全局富豪到当前的全局作用域中 import * as.原创 2020-06-26 15:44:32 · 433 阅读 · 1 评论 -
使用Remix编写Solidity语言的小例子
设置数值/取数值/加法运算讲解uint默认使用256位数的整型 view表示这个函数仅仅对于数据仅仅是读取,没有修改操作 returns(uint ),如果单纯指定uint,返回的是函数体内的return值,如果包含uint sum,uint SAD_a,那么返回就会包含sum和SAD_a字段代码pragma solidity ^0.4.17;contract SimpleStorage{ uint myData; function setData(uint newD原创 2020-06-25 16:45:21 · 610 阅读 · 0 评论 -
对于以太坊的Solidity语言介绍
Solidity是什么Solidity是一门面向合约的、为实现智能合约而创建的高级编程语言,主要目的是为了在以太坊虚拟机(EVM)上运行 Solidity是静态语言,支持继承、库和复杂的用户定义等特性 内含的类型除了常见的编程语言中的标准类型,还包括address等以太坊独有的类型,solidity源码文件通常以sol作为扩展名 目前对于solidity语言编程最好的是Remix。remix是一个基于Web浏览器的IDE,它可以编写、部署智能合约Solidity的语言特性Solidity语法原创 2020-06-25 11:53:57 · 756 阅读 · 0 评论 -
对于以太坊虚拟机 (EVM)及其相关知识的讲解
以太坊虚拟机(EVM)EVM是智能合约的运行环境 作为区块验证协议的一部分,参与网络的每个节点都会运行EVM,审查节点会检查验证正在验证的区块中列出的交易,并运行EVM中交易触发的代码 EVM是沙盒封装的,并且是完全隔离的,即EVM中运行的代码是无法访问网络、文件系统和其他的进程,甚至合约之间的访问也是相互受到限制 合约以字节码格式存在于区块链上 合约通常以高级语言(solidity)编写,通过EVM编译器编译为字节码,最终通过客户端部署到区块链网络中EVM和账户以太坊中有两类账户:外部账原创 2020-06-25 10:35:25 · 1359 阅读 · 1 评论 -
以太坊区块链 JSON-RPC
RPC定义以太坊客户端提供了API和一组远程调用的(RPC)命令,这些命令被编码成json的格式,被叫做JSON-RPC-API。本质上,JSON-RPC API就是一个接口,允许我们编写的程序使用以太坊客户端作为网关,访问以太坊网络和区块链上的数据 RPC作为一个HTTP服务,端口设定为8545.出于安全考虑,默认情况下,只接收来自localhost的连接 要访问JSON-RPC-API,可以使用编程语言编写的专用库函数,例如javascript的web3.js 或者可以自己手动构建请求并发送/原创 2020-06-24 08:52:18 · 1548 阅读 · 0 评论