老k,柏链道捷CTO.清华阿尔山区块链研究中心高级工程师,超过17年的系统软件开发经验,在操作系统.编译器.虚拟机和符号执行方面都有实战经验.主持开发多个开眼项目,目前主要从事区块链底层系统开发工作. 这个系列的文章主要谈一下我对区块链中的共识机制的理解,欢迎跟大家一起交流.探讨. 前言 当今区块链的概念和产业已经遍布神州大地,创业言必区块链,在各种咖啡厅中你都可以听到周围的人谈论区块链,大部分从业者对区块链技术的一个认识是它是一个分布式账本技术,更有些人说区块链是各种计算机技术的组合,如P2P…
1. 啥是分布式系统 当我们评价一个新的事物或者介绍一个新的技术的时候,我们不能架空历史和环境,新的事物不可能脱离历史和环境凭空诞生.任何新的事物和新的技术总是或多或少的,与旧的事件以及过去的技术有所关联,或是他们的衍生品.所以我们谈到区块链共识的时候,就需要从计算机专业中的分布式系统来讲起,因为区块链说来说去,它也只是分布式系统中的一类而已. 分布式系统在计算机领域中定义为:组件分布在联网的计算机上,组件通过传递消息进行通信和动作协调的系统.这里的组件可以粗略的认为就是一个软件,或者某个软件的…
共识算法 区块链中最重要的便是共识算法,比特币使用的是POS(Proof of Work,工作量证明),以太币使用的是POS(Proof of Stake,股权证明)使得算理便的不怎么重要了,而今POS的变体DPOS(Delegated Proof of Stake,股份授权证明)进一步削减算力的浪费,同时也加强了区块链的安全性. 不过,对于不需要货币体系的许可链或者私有链而言,绝对信任的节点,以及高效的需求上述共识算法并不能够提供,因此对于这样的区块链,传统的一致性算法成为首选,PBFT(拜占…
☞ ░ 前往老猿Python博文目录 ░ 一.智能合约的定义 通俗来说,智能合约就是一种在计算机系统上,当一定条件满足的情况下可被自动执行的合约,智能合约体现为一段代码及其运行环境.例如银行信用卡的自动还款就是一种典型的智能合约. 我们来看看智能合约概念的演进历史: 智能合约概念于1994年由Nick Szabo首次提出,百度上关于智能合约的定义:智能合约(英语:Smart contract )是一种旨在以信息化方式传播.验证或执行合约的计算机协议.智能合约允许在没有第三方的情况下进行可信交易,…
概述 对初学者,首先要了解以太坊开发相关的基本概念.   学习以太坊开发的一般前序知识要求,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ruby,Java... 前端开发语言:HTML/CSS/JavaScript Linxu命令行的使用 数据库的基本概念 项目简介 我们构建一个去中心化的(Decentralized)投票应用.利用这个投票应用, 用户可以在不可信(trustless)的分布环境中对特定候选人投票,每次投票都会被记录在区块 链上:   所谓去中…
区块链是分布式存储.点对点传输.共识机制.加密算法等计算机技术的新型应用模式.所谓共识机制是区块链系统中实现不同节点之间建立信任.获取权益的数学算法. 区块链目前分为三类: 公有区块链(PublicBlockChains) 世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程.公有区块链是最早的区块链,也是目前应用最广泛的区块链,各大bitcoins系列的虚拟数字货币均基于公有区块链,世界上有且仅有一条该币种对应的区块链. 联合(行业)区块链(Con…
https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653549389&idx=1&sn=158f9feb10d76a2e6ca7e15f8ec8a3e8&chksm=813a62d5b64debc304bfc722b7c373c6bb6f2f9c138fb699cddeb147062817674714c9742519&scene=21#wechat_redirect 1.什么是DID?(Decentrali…
区块链技术指使用点对点传输.共识机制.加密算法等技术,保证分布式数据库区块写入链中数据的一致性,达到去中心化和不可篡改的目的.       区块链就是一种特殊的分布式数据库,使用现有的各种成熟的技术,把各种技术集成在一起,实现多方共识.去中心化.分布式和不可篡改等技术特点:区块链技术有点对点传输.加密算法.共识机制.1) 点对点传输:       点对点传输指使用P2P网络协议,实现端对端的数据传输:在区块链中进行交换,如转账和交易,不需要经过第三方的担保机构的确认和授权.2) 加密算法:   …
概述 对初学者,首先要了解以太坊开发相关的基本概念.   学习以太坊开发的一般前序知识要求,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ruby,Java... 前端开发语言:HTML/CSS/JavaScript Linxu命令行的使用 数据库的基本概念 项目简介 我们构建一个去中心化的(Decentralized)投票应用.利用这个投票应用, 用户可以在不可信(trustless)的分布环境中对特定候选人投票,每次投票都会被记录在区块 链上:   所谓去中…
区块链技术 人们可以用许多不同的方式解释区块链技术,其中通过加密货币来看区块链一直是主流.大多数人接触区块链技术都是从比特币谈起,但比特币仅仅是众多加密货币的一种. 到底什么是区块链技术? 从金融学相关角度来看,区块链是一种存储数据的方式,去中心化的数据库,应用到比特币也就是去中心化账本: 从密码学角度来看,区块链是一种传递价值的协议: 从计算机科学的角度来看,区块链只是一种数据结构: 不同于我们平时接触的手机电脑,先有系统,然后才会在系统里开发各种APP应用.09年第一枚比特币诞生,15年也就…