区块链
文章平均质量分 63
zyj0813
golang、Linux、区块链
展开
-
造币机制四
---本节内容--- 这节还是讨论一开始提出的一百人经济模型。就是说,每个人每天只需要一份食物,一份衣服,就可以生活。而当时的生产力只要五十个人就可以生产出来这些食物和衣服。其中二十五个人生产食物,每个人每天能够生产四份食物,将其中的三份出售给其它人,换回三份黄金,再用一份黄金购买一份衣服,这样有二份黄金的利润作为储蓄。另二十五个人生产衣服,也是一样,每天能够生产四份衣服,用...原创 2019-11-16 15:13:19 · 185 阅读 · 0 评论 -
造币机制三
---内容如下--- 造币机制一给出了一个基础的经济模型,造币机制二给出了避免金融危机的基本方法。本章继续讨论造币机制一种的简化的经济模型。因此,如果读者没有阅读造币机制一的经济模型的话,最好是去阅读之后再来看这篇内容,下面先对这个模型进行简单的回顾。 在我们构造的最简单的那个经济模型中,一百个人构成的社会,每个人只需要两种商品,食物和衣服,每天每人正常消耗一份...原创 2019-11-16 15:06:56 · 219 阅读 · 0 评论 -
造币机制二
如果没有看第一节的同学,建议先把第一节内容看了再看第二节。---内容如下--- 在第一节的时候,已经讲到了一个经济系统,在生产过剩的时候,就有人需要闲待着不干活。但是,如果这样的话,生产的人就会不高兴,正因为如此,就需要有一个生产黄金的公司。在第一节的经济模型中讲的是黄金,其实只是需要有类似黄金这种属性的商品就可以了。第一,它可以作为一个人的劳动证明,或者说,构成了一个人...原创 2019-11-16 15:01:49 · 220 阅读 · 0 评论 -
造币机制 一
首先声明一下本文并不是原创文章,本文整理了当年“强国论坛”里面一位网名叫做“数学”的网友所发表的观点言论。我个人认为他很有可能就是发明比特币的中本聪,在他的观点里面有太多是比特币核心思想,注意强国论坛是人民网在2005-2007年开放的一个论坛网站,比特币论文是2008年11月份发布,比特币网络2009年正式上线。下面分享的只是其中的第一节,一共有九节。后面我会按照顺序陆续发送到本公众号上分享...原创 2019-11-16 14:47:58 · 287 阅读 · 0 评论 -
golang重写区块链——0.4 链上交易(无地址版本)
区块链的作用就是要实现交易,一种无法篡改永久保存的交易。比特币区块链还没有像以太坊一样已经实现了账户的概念,比特币区块链上的交易双方是地址,地址背后才是人,人和地址不是一一对应的关系,一个人可以拥有很多比特币的地址。 ——注:底端有完整的代码,代码里面有详细的注解,可以直接看完整的代码,github端我随后会上传 在一笔交易中,是由输入和输出来形成的,首先我们重新创...原创 2018-08-26 15:24:23 · 1322 阅读 · 0 评论 -
golang重写区块链——0.5 区块链中钱包、地址和签名的实现
在上一章节中,我们把简单的用户定义的字节当做地址来使用,比如在上一 章我测试用到的zyj和dxn。在这一章节中我们要正真的去实现区块链中的地址。 大家应该还记得上一章中提到过区块链中的交易是地址与地址之间的,地址的背后才是我们人来操作,因此我们会发现一个问题,就是在上一章中的这些我们自定义的地址并没有什么意义,因为随便谁都可以使用,转移该地址中的getbalnace,但是现实中我们并不想...原创 2018-08-27 20:15:44 · 3114 阅读 · 2 评论 -
golang重写区块链——0.6 UTXO集和Merkle树的实现(优化链上交易)
到目前为止,我们已经基本实现了区块链中的所有元素。在第一章节就讲到区块链是一个分布式数据库,这也是去中心化的核心所在,但是在前面的章节我们在实现区块链中的各种功能的过程中我们并没有去考虑‘分布式’的问题,只是关注了数据库这部分的实现。在这一章节中我们来讨论区块链的分布式的实现。 本章之后的全部代码已经上传到github上面了,可以点击 这里 查看。在开始之前我们先总结一下我们...原创 2018-08-28 23:16:45 · 2127 阅读 · 2 评论 -
golang重写区块链——0.2 加入工作量证明pow
比特币使用的共识机制为工作量证明机制,此机制已经经历了数十年的验证了,虽然原理简单粗暴,但是不得不承认它的安全性与可靠性。下面将实现的是区块链中的pow机制:pow包package powimport ( "fmt" "crypto/sha256" "strconv" "bytes" "math/big" "go_code/A_golang_blockchain/...原创 2018-08-25 17:02:22 · 753 阅读 · 0 评论 -
golang重写区块链——0.1 实现简单的链
众所周知go语言的天生的高并发性具有适合区块链技术的天然优势。起初的以太坊的底层代码所用的语言C++,java,ruby等有很多种,最终官方还是考虑使用go 语言的版本作为官方版本。可见go语言在区块链底层开发中是具有很大的优势的,也是从事区块链行业的人员必须掌握的一门编程语言。下面我通过go语言编写了一个简单的BlockChain,让大家能简单理解区块链的构成原理。1、区块包...原创 2018-07-23 20:27:28 · 1695 阅读 · 0 评论 -
漫谈区块链技术
在比特币诞生之初,还没有“区块链”这个词,在中本聪发布的比特币白皮书上只有“区块”和“链”的概念。在比特币问世七年之后,大家才开始意识到作为比特币底层技术的“链”其价值远大于比特币本身。区块链可以让人们在没有中央集权的情况下,对彼此的互相协作建立起信心。简单的来讲,区块链是一个创造信任的机器。 在人们刚接触区块链这种陌生的技术之初,会对区块链有各种各样的理解。其中...原创 2018-07-03 20:36:27 · 654 阅读 · 0 评论 -
区块链技术基础(笔记)
一、区块链本质上是一个对等网络(peer-to-peer)的分布式账本数据库。二、区块链本身其实是一串链接的数据区块,其链接指针是采用密码学哈希算法对区块头进行处理所产生的区块头哈希值。三、基本概念1、 数据区块: 比特币的交易会保存在数据区块中,大约每10分钟会产生一个区块,每个数据区块一般包括区块头(Header)和区块体(Body)两部分。 区块...原创 2018-07-03 01:01:02 · 13449 阅读 · 0 评论 -
以太坊智能合约 之 授权投票选举合约
设置一个投票主持人,为每一个账户赋予投票权,账户可以把投票权让给其他账户进行代替投票。每一个提案都有一个短名称,提案通过提案数组的形式存在,在投票中,投票者只需输入提案的提案号就可以进行投票。pragma solidity ^0.4.0;//授权投票合约contract Ballot{ //声明一个结构类型,用于代表一个独立的投票人 struct Voter{...原创 2018-06-29 21:46:27 · 1356 阅读 · 0 评论 -
区块链中的网络设计
自从考了计算机三级网络技术之后就对点对点网络产生了浓厚的兴趣,在对p2p网络进行更深一步的研究之后,就接触了比特币,从而了解到了区块链这门技术,从此无法自拔。 区块链网络是去中心化的网络,是一个P2P的网络。在区块链的网络体系中是不存在中心化的服务器和各种层次结构,每一个节点都是对等的,各个节点共同提供网络服务。同时是客服端和服务器。一、节点的角色分工区块链P...转载 2018-06-27 11:48:16 · 6364 阅读 · 0 评论 -
Truffle 框架安装与使用
Truffle 最受欢迎的以太坊开发框架。 http://truffleframework.com Truffle是以太坊的开发环境,测试框架和资产管道,旨在让以太坊开发者的生活更轻松。 用Truffle,你会得到: ...翻译 2018-07-02 21:53:46 · 1646 阅读 · 0 评论 -
Ganache CLI - 用于测试和开发的快速以太坊RPC客户端。
Ganache CLI 用于测试和开发的快速以太坊RPC客户端。 http://truffleframework.com/ganache注意:testrpc是现在的ganache-cli。 像使用testrpc一样去使用它。Welcome to Ganache CLI Ganache CLI是以太坊开发工具Truffle套件的一部分,是以太坊开发私有区块...翻译 2018-07-02 23:48:20 · 9624 阅读 · 0 评论 -
区块链中的女巫攻击问题
解释一: 大规模的p2p系统面临着有问题的和敌对的节点的威胁,为了应付这种威胁,很多系统采用了冗余。然而,如果一个有恶意的实体模仿了多个身份,他就可以控制系统的很大一部分,破坏了系统的冗余策略。我们把这种模仿多个身份的攻击定义为女巫攻击(Sybil Attack)。解释二: 女巫攻击是在P2P网络中,因为节点随时加入退出等原因,为了维持网络稳定,同一份数据通常需要备份到多个分布式节点上,这就是...原创 2018-07-03 00:35:20 · 4227 阅读 · 0 评论