区块链与智能合约

什么是区块链

要想理解什么区块链,我们先来从本质上认识一下它

区块链:本质上是一个去中心化的分布式账本数据库,是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方法。

没有基础的人可能理解起来有点困难,我们来解释一下里边的名词

分布式账本数据库:了解过后端的人应该知道什么是数据库,我们简单的来讲述一下,数据库,顾名思义就是存放数据的仓库,只不过这个仓库是虚拟的,传统数据库一般在部署在后台服务器上,人们可以在里边储存信息。而分布式账本数据库就是没有一个中心服务器,数据存在每个用户的节点上,是分布的。

去中心化:在传统数据库中,往往是由一个公司或团队运营一个服务器,我们的数据都存在那里,他就相当于一个中心,这样的缺点就是我们无法左右和得知数据的非法篡改。因为权力都掌握在“中心”上,而去中心化便是我们每个人都有平等的权力,都可以看到彼此的数据。

比特币和以太坊

接下来我们介绍一下前几年特别火的比特币,和随后诞生的以太坊

比特币是最早使用区块链技术的协议之一(在去中心化的网络下进行p2p交易,这个网络以密码学算法为基础,能够让人们以去中心化的方式,发生非许可的金融行为)

Buterin在了解了区块链技术以后,进行了进一步的发展,与其他联合人发布了一个名叫以太坊的新协议(其使用区块链的基础设施,但是多了一些新的功能,人们不仅可以进行去中心化交易,还可以签署去中心化的合同,构建去中心化的组织,以及在不需要中心化中介的情况下,以去中心化的方式进行协作)

简单来说他们的想法是使用比特币中的技术,再加上去中心化的合同,或者叫做智能合约

这就引出了我们下一个要介绍的新名词

智能合约

那我们对智能合约下一个定义:智能合约是通过去中心化的方式来执行一些列的指令,在这些指令执行中,并不需要中心化或者第三方的中介。

简单来说就是部署在去中心化区块链上的一个合约或者一组指令

一旦这个指令被部署,他就不可被更改,他会自动执行,每个人都可以看到合约中的条款

深层次的理解是,这些代码会被去中心化地执行

与传统合同相比,智能合约也是约定多个参与方的一些列指令,以代码的形式嵌入到一个去中心化的区块链平台

从技术上讲,比特币有智能合约,他能完成p2p交易这个功能,但他不能执行一个编程语言的所有指令

比特币开发者将比特币作为价值存储,而以太防的开发者在此之外,还讲将它当成一个运行去中心化合约的平台

我们可以粗略的理解,区块链是去中心化的数据库,而智能合约就是能实现具体功能的去中心化协议

但这存在一个问题

要想像传统合同一样,实现其功能,必须要有外部信息的输入,但是区块链本身无法获取真实世界的信息,这是因为区块链网络都是确定性系统他们会根据预设的规则去验证。

智能合约能获得发生在区块链上的所有信息但他们想要作为日常合同使用的话,他们需要外部的数据和外部的计算。

要做到这一点,我们就需要下面介绍的东西

预言机

预言机定义:是任何可以向区块链输入数据或者进行链下计算的设备

这就产生了另一个问题,如果预言机只有一个的话,那和有一个服务器一样都是中心化的,然而我们想要应用的是真正去中心化的我们不能只通过单个预言机或单个数据提供商获得数据,或者单个资源去进行外部运算,我们需要一个像去中心化区块链网络(在链上的逻辑是去中心化的)一样的去中心化预言机(在链上的数据和计算也是去中心化的)网络

Chainlink 就是一个组件化去中心化的预言机网络,它不仅可以给智能合约提供外部数据,还可以提供链下计算。这就使其链上和链下部分都是去中心化的,它提供了丰富的功能,可以让智能合约可以向日常合同一样使用

智能合约部署在去中心化的区块链上,同时结合另一个去中心化的预言机网络,获取真实世界的资产和信息便形成了混合型智能合约(将链上去中心化逻辑和链下去中心化数据和计算相结合)

区块链的优点

1.完全去中心化(没有中心化的中介)一个区块链上由不同的参与者运行,这些参与者被称为节点运营者成千上万的结点运营者运同一个软件,运行这些算法

2.透明性和灵活性,由于所有节点运营者都运行这个软件,每个人都可以看到链上发生的任何事情,每个人获得的信息是一致的并且在统一规则下协作,

3有速度和效率,在区块链上所有交易都会即时发生,

4安全和不可更改性:一旦智能合约被部署,他就不能被改变了,要攻击区块链必须控制一半的节点

5可信任

6.不可打破

智能合约的优点

智能合约创建了信任最小化协议,提供了更好的性能

智能合约是不可更改的,去中心化的,透明的

能够解决当今合同不履行问题的技术

区块链的运行机制

block,nounce,data ,prev三方面结合运算出哈希值

区块链会在进行哈希计算时加上前面的哈希值,再创造出一个区块,第一个区块被称为创世区块,他的prev全是0

当我们试图在区块上篡改数据的时候,该区块后边的区块都会出现错误,整个区块链就会发生错误,这就是区块链无法篡改的原因

但是如果我们掌握了整个区块链,还是可以将整条链修改,这时去中心化作用就出现了

修改后的整个区块链虽然是正确的,但最后的哈希值会不同

最后的

不同的用户都在运行这个区块链,它们的权重是相同的,最后一个区块的哈希值包含了前面所有区块的信息

那如何确认是我们进行了操作呢

私钥验证用户身份

我们可以使用私钥创建信息签名,但是别人不能从信息签名中得到我的私钥

公钥是公开的,每个人通过这个公钥都可以验证用户的身份

区块链的防御机制

粗略分为:选择算法和抗女巫攻击机制

抗女巫攻击机制:来防止用户使用大量的假身份,防止其在整个系统中获取超出应有比例的权益和影响力

通过共识这个原则防御

补充知识:

共识:工作量证明和权益证明

共识的定义是一个机制,通过这个机制,区块链可以在状态和数值上达成一致(中本聪共识:去中心化网络规定,哪条链最长,有最多的区块,就用哪条链,工作量证明,最长链规则)

工作量证明:节点必须完成需要很大计算量的过程

每个区块链都会有意让难题更难或者更简单,从而调整出块时间

出块时间是每个区块被发布之前的时间,它和这些算法的难度相关

权益证明:工作量证明往往要消耗大量的电力,许多人就开发了另一种验证方式,

需要放置一些抵押物以保证不作恶(质押)

可以验证谁挖出了区块

两个可能的攻击:

女巫攻击:在攻击中用户会创建很多匿名账户来影响区块链

51%attack:由于上述共识的缘故,你有最长的链和51%的网络就可以分叉区块链,让整个网络使用你的链

区别:女巫攻击是指单一用户,通过创建大量的假帐户来影响这个网络

  • 32
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
智能合约测试流程通常包括以下几个步骤: 1. 需求分析:在测试开始之前,先对智能合约的需求进行详细分析和理解。了解智能合约的功能、交互和预期的结果。 2. 设计测试用例:基于需求分析,设计测试用例来覆盖不同的功能和场景。测试用例应包括正常情况下的功能测试,边界条件测试,异常情况测试等。 3. 准备测试环境:设置一个合适的测试环境来执行测试用例。这包括安装和配置智能合约平台,创建测试账户等。 4. 执行测试用例:按照设计的测试用例,逐一执行测试,确保智能合约在不同情况下的正常运行和预期结果。 5. 记录和分析测试结果:记录每个测试用例的执行结果,包括成功和失败的情况。对于失败的测试用例,进行分析和排查问题的原因。 6. 缺陷跟踪和修复:将测试过程发现的缺陷记录并跟踪,与开发团队合作修复问题。确保问题得到妥善解决并进行验证。 7. 性能和安全测试:对智能合约进行性能和安全测试,以确保其在高负载和恶意攻击等情况下的稳定性和安全性。 8. 验收测试:在测试过程的最后阶段,进行验收测试,确保智能合约满足预期的功能和性能要求。 需要注意的是,智能合约的测试流程可能因不同的区块链平台和应用场景而有所差异。因此,在实际测试,还需要根据具体情况进行相应的调整和扩展。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [区块链 智能合约应用](https://blog.csdn.net/kwame211/article/details/118225736)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [【论文笔记02】区块链智能合约的分层设计与执行](https://blog.csdn.net/weixin_40889839/article/details/124398726)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值