社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  区块链

区块链技术中的智能合约究竟是怎么一回事?

CDA数据分析师 • 6 年前 • 294 次点击  

作者  Kunal Shah

编译  Mika
本文为 CDA 数据分析师原创作品,转载需授权

观看更多国外公开课,点击"阅读原文"


智能合约在最近备受追捧。但是这是什么呢 它能解决哪些问题呢?


中英双字视频如下:





比特币概述


2009年,中本聪推出了比特币,并震撼了全世界,因为它催生了价值1500亿美元的加密货币,这个网络比500台超级计算机要强1万倍,并且实现了去中心化的金融系统。


比特币是不断增长的一系列区块,每个区块都包含一些交易,这代表比特币所有权的转移以及前一个区块的哈希值,从而连接起交易的历史并创建不可变的记录。


网络中使用公共密钥或私人密钥来验证这些交易的有效性。比特币通过工作量证明来生成区块,这一过程非常昂贵且耗时,但区块链中的其他节点能够易于进行验证。最后,工作量证明俗称为挖矿



关于以太坊


比特币是用于追踪数字货币所有权的点对点电子现金系统;而以太坊是为用于跟踪去分布式数据库状态变化的点对点系统。



以太坊也是不断增长的一系列区块:每个区块都包含分布式数据库的状态变化。此外,以太坊使用类似比特币的工作量证明系统进行挖矿。


以太坊在白皮书中详尽介绍了分散式数据库。它提供了一个分布式的图灵完备的虚拟机,称为以太坊虚拟机(EVM)。与比特币的区别在于,在区块链顶端的由以太坊提供的新数据层能让功能码沿着分布式的节点分布。代码由网络中的每个节点运行、维护和更改数据库中的状态。这就是为什么以太坊经常被描述为“ 世界计算机”的原因。


但是,EVM必须由一系列独立于中央机构的规则来管理,这些规则规定允许更改哪些状态。


智能合约


智能合约是“执行合约条款的计算机化交易协议”。这并不是以太坊独有的,因为比特币允许使用智能合约来构建服务,在比特币交易中添加功能。虽然这些服务使用比特币,但它们本质上是集中式的,因为智能合约必须托管在中央服务器上。



另一方面,以太坊允许开发人员编写自己的智能合约来定义EVM指令。这些智能合约可以使用以现有语言(如Javascript何Python)为模板的编程语言编写。


智能合约在分布式数据库内部以字节码的形式存在。这是以太坊创新潜力的根源所在。


网络上使用EVM执行代码的所有节点必须得出相同的结果,并对下一个区块的状态达成一致。任何人都可以将智能合约部署到分布式数据库。


"智能合约"这个术语最初于1997年被Nick Szabo提出,远在比特币出现之前。


他是一位计算机科学家、法学学者和密码学家,他想用分布式账本来存储合同。智能合约就像现实世界中的合同一样。唯一的区别在于,智能合约完全是数字化的。实际上,智能合约是存储在区块链中的一个小型计算机程序。


让我们通过一个例子看看智能合约是怎么运行的。也许你熟知大型众筹平台Kickstarter,产品团队可以在Kickstarter 创建项目、设定资金目标,进而从那些相信这个想法的人那里筹集资金。


Kickstarter实质上是介于产品团队和支持者之间的第三方。这意味着双方都需要信任Kickstarter能够妥善地处理他们的资金。


如果项目成功获得筹资,项目团队希望从Kickstarter获得他们的资金。另一方面,支持者希望筹资后他们的资金能够给到项目,或者在没有达到目标的情况下获得退款。产品团队以及其支持者都需要信任Kickstarter。


但是有了智能合约,我们能够构建类似的系统,而不需要信任如Kickstarter这样的第三方。


那么让我们来构建智能合约。


我们能制定智能合约,那么它能持有所有收到的资金直到达到某个目标。现在项目的支持者可以把资金转到智能合约,如果项目获得足够的资金,智能合约自动将钱转交给项目的创建者;如果项目没能实现集资目标,钱会自动退还给项目支持者。


很不错吧?因为智能合约存储在区块链上,一切都是完全分布式的。有了这项技术,没人能控制当中的钱。


但是我们为什么要信任智能合约呢?


不可变和分布式


因为智能合约存储在区块链上,它们继承了一些有趣的特性。它们是不可变的、分布式的


不可变意味着一旦智能合约被创建,这永远都无法改变。因此,没有人可以背着你篡改合同的代码。


分布式意味着,你合约的输出被网络上的每个人验证。因此,个人不能强迫智能合约放出资金。


因为网络上的其他人会发现这个举动并将其标记为无效。篡改智能合约几乎是不可能的。


智能合约可以应用到许多不同的领域,而不仅仅是众筹。银行可以利用它发放贷款或提供自动支付;保险公司可以用它来处理某些索赔;邮政公司可以用它来交货付款等等。



那么现在你可能会想,你要在哪儿以及如何使用智能合约。如今有一些支持智能合约的区块链,但其中最大的是以太坊。它是专门为支持智能合约而设计的。


当中使用一种称为Solidity的特殊编程语言来编程。这种语言是专门为以太坊创建的,并使用类似于Javascript的语法。



值得注意的是比特币也支持智能合约,虽然这比以太坊更受限制。


原文链接:

https://hackernoon.com/what-on-earth-is-a-smart-contract-2c82e5d89d26




更多精彩文章

十分钟带你看懂比特币的运行原理

区块链将影响的19个行业

关于 AI 不知道这些概念你就落伍了

快速了解区块链背后的三项基本技术

五分钟带你看懂什么是区块链丨附中字视频

深度丨解读比特币背后的奥秘丨附中字视频

硅谷大佬的亲身经历丨为什么要学编程




今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/IPAct3hmct
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/9195
 
294 次点击