区块链
Heisenberg_888
互联网工程师,努力学习中
展开
-
以太坊实战
本篇博客中记录以太坊的代码规范和框架,博客中的代码是同一个程序,逐渐增加内容的,这个程序逐渐丰富的过程As you can see, we use the keyword private after the function name. And as with function parameters, it's convention to start private function name...原创 2018-12-02 09:53:02 · 452 阅读 · 0 评论 -
Linux(Ubuntu)上搭建基于以太坊go-ethereum的私有链环境
自己学习这个过程也很艰难,记录下自己犯的错,对自己和他人都有帮助。基于Windows搭建以太坊私有链可以参考这篇文章:搭建基于以太坊的Windows私有链这篇是在Linux上操作的:首先参考https://github.com/ethereum/go-ethereum/wiki/Installation-Instructions-for-Ubuntu,命令如下:sudo apt-...原创 2019-03-25 15:53:28 · 1242 阅读 · 1 评论 -
C+实现RSA加密解密
这份代码对应的公钥密钥如下:p=43,q=59,e=13。消息m,按照字典序a=00,b=01,...,z=25。n=2537,=2436e=13,私钥d=937#include<bits/stdc++.h>using namespace std;string e_to_binary(int e)//模指数转二进制数{ string str="";...原创 2019-03-25 22:24:38 · 8331 阅读 · 7 评论 -
Pedersen commitment
reference:https://crypto.stackexchange.com/questions/9704/why-is-the-pedersen-commitment-computationally-binding转载 2019-04-04 10:50:49 · 1881 阅读 · 0 评论 -
ElGamal加密体制
ElGamal加密体制的公私密钥生成过程如下。(1)随机选择一个满足安全要求的大素数p,并生成有限域。的一个生成元;(2)选一个随机数x(1<r<p-1),计算,则公钥为(y,g,p),私钥为x。1.加密过程与RSA密码体制相同,加密时首先将明文比特串分组,使得每个分组对应的十进制数小于,即分组长度小于,然后对每个明文分组分别加密。具体过程分为如下几步:(1)得到接收方的...原创 2019-03-26 19:56:30 · 10888 阅读 · 0 评论 -
ElGamal加密原理和代码实例
具体原理和证明过程参见ElGamal加密体制,看个例子:假设发送方为A,接收方为B,B选择素数p=13171,生成元g=2,私钥x=23。A欲用EIGamal算法将消息m=nupt加密为密文C后传送给B。消息m按英文字母表a=00,b=01,…,z=25编码,求加解密过程。原题是bupt,我的代码中用的是nuptlovebupt(南邮)。#include<bits/stdc...原创 2019-03-26 21:27:17 · 7193 阅读 · 1 评论 -
RZKPB
原创 2019-04-03 15:20:08 · 116 阅读 · 0 评论 -
聚合签名
原创 2019-04-09 16:36:31 · 6114 阅读 · 0 评论 -
环签名定义
原创 2019-04-15 10:30:06 · 799 阅读 · 0 评论 -
以太坊区块的数据结构解析
刚刚在Linux上部署了私有链:分析一下前3个区块block(0):block(1):block(2):介绍一下各个字段的含义:Difficulty:区块的难度。Block的Difficulty由共识算法基于parentBlock的Time和Difficulty计算得出,它会应用在区块的‘挖掘’阶段。 extradata:预留它用(例如Clique共识机制使用)...原创 2019-03-25 15:05:43 · 2612 阅读 · 1 评论 -
区块链常见命令笔记
eth.getBalance(eth.accounts[0])eth.blockNumberpersonal.newAccount("123456")eth.accountspersonal.unlockAccount(user1)eth.getBalance(eth.coinbase)miner.setEtherbase(eth.accounts[0])eth.getB...原创 2019-03-25 11:14:27 · 404 阅读 · 0 评论 -
区块链创世块文件
{"nonce":"0x0000000000000042", "mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x4000", "alloc": {}, "coinbase":"0x0000000000000000...转载 2019-03-25 10:34:56 · 1252 阅读 · 0 评论 -
数字签名
数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。通俗解释一下:发送方A向接收方B发送一段报文。发送方:A利用共有的哈希函数对这段文字产生一个摘要,然后A再用一个私钥对这段摘要加密,生成一段数字序列:数字签名接收方: B利用共有的哈希函数对发来的原始报文产生一个摘要,然后再利用A发来的公钥(B之前就知道的)对...原创 2018-11-30 14:54:18 · 197 阅读 · 0 评论 -
区块链实战-Geth,DApp开发
(本篇博客记录学习区块链所有的经历,从开始一切的信息,包含一切遇到的报错信息都记录下来,供自己以后学习)Geth(Go-ethereum)是典型的开发以太坊时使用的客户端,基于Go语言开发。 Geth提供了一个交互式命令控制台,通过命令控制台中包含了以太坊的各种功能(API)。Geth的使用我们之后会有文章介绍,这里大家先有个概念。Geth控制台和Chrome浏览器开发者工具里的面的控制...原创 2018-12-01 20:50:23 · 4101 阅读 · 1 评论 -
以太坊代码合集-总结
首先是 index.html<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title>CryptoZombies front-end</title> <script la原创 2018-12-14 16:00:52 · 1561 阅读 · 1 评论 -
非对称加密技术- RSA算法数学原理分析
声明: 本篇博客大部分内容来自于参考文献1,但也整合了参考文献2,又加上自己的代码和分析,本篇博客定义为翻译所谓非对称,就是指该算法需要一对密钥,使用其中一个(公钥)加密,则需要用另一个(私钥)才能解密。但是对于其原理大部分同学应该都是一知半解,今天就来分析下经典的非对称加密算法 - RSA算法。通过本文的分析,可以更好的理解非对称加密原理,可以让我们更好的使用非对称加密技术。RSA算...翻译 2018-12-22 14:44:29 · 718 阅读 · 0 评论 -
算术基本定理
因为毕设要求,需要对这些初等数论的知识学习,做个笔记,以便日后复习。算术基本定理可表述为:任何一个大于1的自然数N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积N=这里均为质数,其中指数是正整数。这样的分解称为N的标准分解式。最早证明是由欧几里得给出的,现代是由陈述证明。此定理可推广至更一般的交换代数和代数数论。方法一:先用现代陈述方法证明该定理待证命题:大于1的自然数必...翻译 2019-03-03 21:03:13 · 2201 阅读 · 0 评论 -
blockchain区块链的结构
blockchain的结构单个block的结构Block Version:指示遵循哪一组块验证规则Merkle tree root hash:所有交易的hash值Timestamp:自1970年1月1日起,以秒为单位的世界时nBits:有效块(valid block)哈希的目标阈值Nonce:一个4字节的字段,通常从0开始,每次哈希计算都会增加Parent ...原创 2019-03-20 13:44:31 · 981 阅读 · 0 评论 -
python简单区块链模拟
import datetimeimport hashlibclass DaDaBlockCoin: #index 索引,timestamp 时间戳,data 交易记录,self_hash交易hash,last_hash,上个hash def __init__(self,idex,timestamp,data,last_hash): self.idex = i...转载 2019-04-24 13:39:38 · 707 阅读 · 0 评论