区块链
ReignsDu
搞风控的
展开
-
grin中pow算法-cuckoo cycle的lean算法简单分析
最近实习,接触了一个比较新颖的工作量证明算法:cuckoo-cycle,基本原理是在一个极大二分图中找到一个长度为proofsize的回路。算法介绍在网上都有,就不赘述了:https://www.zuocoin.com/a/news/experience/2019/0401/32897.html讲讲具体的算法细节吧:1.二分图的生成这是一个基于图的pow算法,当然需要生成一个初始化...原创 2020-05-06 20:50:37 · 950 阅读 · 0 评论 -
这可能是全网最简单的POS共识机制算法
共识算法是区块链非常重要的一种算法,简单来说,共识算法就是为了使网络中的节点得到一致的认可。就比如说合作双方达成一致,共同遵守某个合约。传统的分布式系统中,由于有着中心服务器进行统一管理,各个子服务器只需要跟着中心服务器进行操作即可。而区块链作为一种去中心化分布式系统,并没有传统意义上的中心服务器,因此传统的分布一致性算法并不适用于区块链网络。每个服务器都可以是中心服务器,那么这样就需要一种新...原创 2019-11-13 21:59:20 · 2859 阅读 · 0 评论 -
100行代码实现MerkleTree!
Merkle树作为区块链中重要的数据结构,有着很广泛的应用。基本就是每个叶节点作为数据存储点,对它进行哈希之后,得到最初的叶子节点,再两两相加哈希,一直类推,到只剩一个节点,即根节点即可。说到哈希啊,就不得不提到祖师爷Leslie Lamport:就当你发现Hash、LaTex,拜占庭将军问题、Paxos都是一个人搞出来的之后,那种五体投地的感觉....orzLeslie ...原创 2019-11-13 21:59:11 · 2044 阅读 · 1 评论 -
100行代码实现一个区块链!
废话不多说,开始跟我用golang搭建个迷你区块链:首先,引入包:package mainimport ( "bytes" "crypto/sha256" "encoding/binary" "fmt" "math" "math/big" "time")设置一些常量,工作量证明难度系数dif,搜索上界INT64_MAX:const ( di...原创 2019-11-13 21:51:38 · 922 阅读 · 0 评论 -
golang-生成csv文件
最近需要使用一组加密数据作为实验数据,方便日后使用就存储到csv文件中写了个小demopackage mainimport ( "conlock" "crypto/ecdsa" "crypto/sha256" "encoding/csv" "encoding/hex" "encoding/json" "io/ioutil" "os")type KeyPool s...原创 2019-03-22 11:18:51 · 2609 阅读 · 0 评论 -
sero-cash环境搭建及运行
在研究零知识证明时候,发现了18年底一个叫超零币(SERO)的新兴电子币,据说使用的super-ZK速度比Zcash的zk-SNARKs快20倍,对此非常感兴趣,找到官方博客,进行环境搭建。官方博客:https://blog.csdn.net/SERO_OFFICIAL/article/details/84332849最初使用macOS搭建,基本完成时,发现动态链接库报错:发...原创 2019-02-26 10:47:47 · 1502 阅读 · 0 评论 -
golang实现ecc密钥对与[]byte类型转换
以太坊的接口真香~之前一直无法实现原因是getKey()方法的生成密钥用的curve参数为ellipitic.P256()。func getKey() (*ecdsa.PrivateKey, error) { prk, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) if err != nil { return prk...原创 2018-10-17 15:23:54 · 3265 阅读 · 2 评论 -
golang共识锁实现用户地址分配
参考:https://github.com/liuchengxu/blockchain-tutorial/blob/master/content/part-5/address.md类似于比特币实现一个用户一个地址,并分配10对ecc公私钥。package mainimport ( "bytes" "crypto/ecdsa" "crypto/elliptic" "crypto...原创 2018-10-16 14:36:47 · 297 阅读 · 0 评论 -
golang实现ecc加密解密
调包侠就是本人= =package mainimport ( "crypto/ecdsa" "crypto/elliptic" "crypto/rand" "crypto/sha256" "encoding/hex" "fmt" "github.com/ethereum/go-ethereum/crypto/ecies" "strco原创 2018-10-16 10:27:40 · 6891 阅读 · 9 评论 -
ecc加密共识锁demo
之前版本的改进,增加了ecc加密,PoW机制等,并对一个用户生成10对秘钥实现匿名。package mainimport ( "crypto/ecdsa" "crypto/elliptic" "crypto/rand" "crypto/sha256" "encoding/hex" "fmt" "math/big" "strconv&q原创 2018-10-12 20:28:57 · 1024 阅读 · 0 评论 -
简易区块链demo
由于在跟着做实验室的区块链项目,大概是共识锁相关,需要学习区块链相关的开发,自己学习go语言,并实现了一个非常简单的区块链demo。golang的语法有点意思。大概是将用户个人信息和会议信息,上一个链节点的hash码等结合并用sha256加密形成一个hash码,用以确认身份/加密。并有相关信息的安全性验证。还有很多功能没有实现,比如工作量证明(PoW),放到web等等。慢慢来吧。...原创 2018-09-17 19:32:00 · 2766 阅读 · 1 评论