区块链之旅(三)智能合约与共识机制

简介: ​ 智能合约是一套以数字形式定义的约定,包括合约参与方可以在上面执行这些约定的协议。智能合约的基本思想是,各种各样的合约条款可以嵌入到我们使用的硬件和软件中,从而使得攻击者需要很大的代价去攻击。

智能合约

定义

智能合约是一套以数字形式定义的约定,包括合约参与方可以在上面执行这些约定的协议。智能合约的基本思想是,各种各样的合约条款可以嵌入到我们使用的硬件和软件中,从而使得攻击者需要很大的代价去攻击。


特点:


计算机程序的if-then语句

条约达成时自动执行

数字化的合同

计算系统自动执行条款

特征:


数据透明:区块链上的数据对参与方是公开透明的,数据处理也是公开透明的。

不可篡改:区块链本身的所有数据不可篡改,区块链上的智能合约代码以及运行产生的数据输出也是不可篡改的。

永久运行:支撑区块链网络的节点往往达到数百甚至上千,部分节点的失效并不会导致智能合约的停止,其可靠性理论上接近于永久运行。

构成

参与方:参与数字资产交易的人或是组织。

资产:具备一定价值而作为交易标得地事物,可以是具体的可以是抽象的。

交易:参与方对资产进行查询,转移等操作的过程。

账本:记录资产的归属及其交易事实的数据库。

设计流程

多方用户共同参与,制定智能合约。

合约通过P2P网络扩散并存入区块链。

区块链构建的智能合约自动执行。

编程语言

image.png


基础建构模型

image.png


运行机制


image.png

应用领域

image.png


问题挑战

image.png


共识机制

简介

拜占庭将军问题

一个关于分布式系统容错问题的故事。


背景:

在战争的时候,拜占庭军队内所有将军和副官必须达成一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定又扰乱整体军队的秩序。在进行共识时,结果并不代表大多数人的意见。这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜占庭问题就此形成。


解决方案:

每个节点给所有的其他节点发送消息


每个节点根据接受到的所有消息来决定最终的策略


缺点

每个节点先全网节点发送大量的消息。


概念

由于点对点网络下存在较高的网络时延,各个节点所观察到的事务先后顺序不可能完全一致。因此区块链系统需要设置一种机制对在差不多时间内发生的事务的先后顺序达成一致。这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为共识机制。


共识算法:节点依据共识规矩达成共识的计算算法

共识规则:每个区块链里面都有经过精心设计的规则性协议,这些协议通过共识算法来保证共识规则得以正确执行。

作用

作用相当于是生活中的法律


概览

工作量证明PoW:比特币BTC、以太坊ETH、以太坊经典ETC

权益证明PoS:ADA艾达币、Peercoin点点币

授权工作证明DPoS:EOS、Asch、Steem

拜占庭容错算BFT:实用拜占庭容错PBFT、派生BFT

RAFT算法:ETCD

PoW

特点:

解决计算困难问题所需的计算代价作为新加入块的凭证和获得奖励受益。


过程:

image.png


缺陷:

image.png


由于PoW缺乏去中心化且消耗的资源太大,于是有了另一种的共识机制PoS


PoS

特点:

以权益证明代替工作量证明,由具有最高权益的节点实现新块加入和获得激励收益。


过程:

image.png


开始竞争出块记账前,拥有权益的节点将自己的权益放入PoS机制中,同时身份变为验证者,PoS机制根据验证者下注的多少,采用随机的方式选出一个记账者进行出块记账。


缺陷:

并不是完全的随机,而是权值越大会越由概率获取,还是没有解决资源算力浪费的问题,以及存在非完全对等的问题。


DPoS

特点:

首先通过PoS选出代表,进而从代表中选出块生成者并获得收益。


过程:

image.png


DPoS共识机制的基本思路类似于“董事会决策”,即系统中每个股东节点可以将其持有的股份权益作为选票授予一个代表,获得票数最多且愿意成为代表的前101个节点将进入“董事会”,按照既定的时间表轮流对交易进行打包结算并且签署(即生产)一个新区块。


缺陷:


BFT(拜占庭容错算法)

特点:

DBFT算法中参与记账的是超级节点,普通节点可以看到共识过程,并同步帐本信息,但不参与记账。总共n个超级节点分为一个议长和n-1和议员,议长会轮流当选。每次记账时,现有议长发起区块链提案(拟记账的区块内容),一旦有至少(2n+1)/3个记账节点(议长+议员)同意这个提案,那么就这个提案就成为最终发布的区块、并且该区块是不可逆的。


过程:

PBFT过程:

image.png



image.png


RAFT

特点:

是对PAXOS算法的一种简单实现,核心思想是如果数个数据库的初始状态一致,只要之后及逆行的操作一致,就能保证之后的数据一致。


过程:

image.png



image.png

评价标准


image.png

共识机制的对比

image.png

image.png


相关文章
|
19天前
|
存储 供应链 安全
智能合约与区块链技术的融合:重塑数字信任###
本文深入探讨了智能合约与区块链技术融合的现状、挑战与未来趋势。不同于传统摘要,本文以高度概括的形式,聚焦于两大核心要点:一是智能合约作为区块链上的自执行协议,如何通过代码自动化地促进信任最小化的交易;二是这种融合如何推动数字经济向更加透明、高效、安全的方向发展。全文围绕智能合约的工作原理、区块链提供的底层支持、以及两者结合所面临的技术与非技术挑战展开讨论,旨在为读者提供一个关于这一前沿技术领域的全面而深入的视角。 ###
|
19天前
|
供应链 算法 安全
深度解析区块链技术的分布式共识机制
深度解析区块链技术的分布式共识机制
39 0
|
26天前
|
供应链 区块链
探索区块链技术的未来:从数字货币到智能合约的演变
探索区块链技术的未来:从数字货币到智能合约的演变
|
26天前
|
供应链 区块链 数据安全/隐私保护
区块链技术基础:从去中心化到智能合约
区块链技术基础:从去中心化到智能合约
31 0
|
1月前
|
存储 开发框架 安全
揭秘区块链:以太坊智能合约开发的奥秘与挑战,你准备好迎接未来了吗?
【10月更文挑战第25天】本文介绍了区块链技术的基本概念及其核心特点,重点讲解了以太坊智能合约的开发流程和实际开发中的注意事项。通过安装 Truffle、Ganache 和 Remix 等工具,读者可以快速上手编写、编译、部署和测试智能合约。文章还对比了以太坊去中心化应用与传统集中式应用的优势和挑战,帮助读者全面了解以太坊智能合约开发。
36 0
|
3月前
|
供应链 物联网 区块链
|
4月前
|
供应链 物联网 分布式数据库
探索区块链技术与智能合约开发的边界
随着信息技术的发展,区块链作为一种分布式数据库技术正深刻影响社会。本文探讨区块链基本原理及其在金融、供应链等领域的应用,并聚焦智能合约——一种自动执行且不可篡改的代码,介绍其开发流程与丰富案例。同时,文章分析了技术与法律层面面临的挑战,展望未来发展趋势。
67 4
|
4月前
|
区块链 C# 存储
链动未来:WPF与区块链的创新融合——从智能合约到去中心化应用,全方位解析开发安全可靠DApp的最佳路径
【8月更文挑战第31天】本文以问答形式详细介绍了区块链技术的特点及其在Windows Presentation Foundation(WPF)中的集成方法。通过示例代码展示了如何选择合适的区块链平台、创建智能合约,并在WPF应用中与其交互,实现安全可靠的消息存储和检索功能。希望这能为WPF开发者提供区块链技术应用的参考与灵感。
68 0
|
6月前
|
Java 区块链
使用Java实现区块链智能合约
使用Java实现区块链智能合约
|
6月前
|
存储 供应链 安全
区块链技术防止交易被篡改的能力主要依赖于其独特的架构和机制
**区块链技术通过分布式存储、去中心化网络、哈希链接、共识机制及加密算法确保交易防篡改。每个区块含前块哈希,篡改将破坏链式结构;共识机制如PoW、PoS保证交易验证;智能合约增强安全性。多层防护保障数据完整性和安全性,支撑其在多个行业中的应用。**