课程链接 https://www.coursera.org/learn/smarter-contracts/home/week/1
这是区块链专项课程的第二门课 智能合约 Smart Contracts
为自己学习记的笔记,翻译可能存在问题,望谅解。
智能合约 Smart Contracts
智能合约基础 Smart Contract Basics
目录
智能合约定义(第1部分)(Remix IDE和Greeter演示)
智能合约定义(第2部分)(Simple Storage Demo)
处理智能合约(compilation artifacts 演示)
部署智能合约 Deploying Smart Contracts
REQUIRED Quiz Resources and Directions: Smart Contract
Why Smart Contracts?
智能合约的概念早在比特币问世之前就已经存在。 计算机科学家尼克·萨博(Nick Szabo)详细介绍了他的加密货币比特金的概念,他还在1996年的出版物中概述了智能合约的概念。 实际上,Szabo在20多年前就创造了“智能合约”一词。 智能合约是以太坊区块链的核心和主要推动力。
智能合约的设计和编码不当会导致重大故障,例如DAO hack和Parity钱包锁定。正如我们在课程一中讨论的那样,比特币具有包含规则和策略的脚本功能。 Linux Foundation的Hyperledger区块链具有称为Chaincode的智能合约功能。Chaincode用Go语言编写,并在docker环境中执行。 Docker是用于执行程序的轻量级容器技术。 您可以在参考资料部分中找到更多关于这些的信息。
学习目标:
1)能够解释智能合约的元素
2)讨论智能合约编程语言Solidity的语法和语义
3)解决问题并设计智能合约解决方案
4)使用remix开发环境进行构建测试智能合约,并使用remix部署智能合约,并从简单的Web界面调用合约。
在本课程中,必须在测试环境中尝试各种与智能合约有关的概念,以便理解和应用这些概念。我们将使用remix集成开发环境IDE,它是用于动手探索的Web界面。目前,请确保您能够在remix.ethereum.org上访问此界面。请注意,remix只是一个开发环境,并且随着添加新功能(甚至每周一次)而不断变化。本课程是您尝试智能合约的课程。下一课程中,我们将使用智能合约开发完整的端到端应用程序。完成本模块后,您将能够解释智能合约的元素,并解释智能合约可以解决的问题的类型,定义智能合约的结构,运用这些知识来理解真正的智能合约写的内容在Solidity语言中,使用Web开发环境remix来调用智能合约并与之交互。
比特币区块链主要用于传输数字货币。 比特币通过嵌入式脚本添加了简单的条件式价值转移。这是一个有条件的功能,被引导为比特币的软分叉。 该脚本的功能受到限制。 它启用了简单的条件转移。
比特币之后,发展了以太坊。 以太坊的创始人开发了智能合约,牢记了20年前尼克·萨博(Nick Szabo)关于智能合约的想法。
以太坊的一项重要贡献是可工作的智能合约层,该合约层支持在区块链上执行任意代码。 智能合约允许用户定义任意复杂的操作。 该功能增强了以太坊区块链成为强大的分散式计算系统的能力。
为什么要转移货币?
诸如比特币之类的加密货币无需任何中间人就能从点对点进行货币或货币等价值的转移。 为了什么? 为了赠送礼物,购买产品,甚至可能续签驾照,或送花给某人。
例如,我们可能希望在特定日期送达礼物。 购买具有特定颜色和质量的产品。 我们可能需要验证某些凭证才能续订许可证。
这引入了条件,规则和策略,而简单的汇款加密货币协议无法处理这些条件,规则和策略。 智能合约可满足针对区块链应用程序的特定于应用程序验证的需求。
智能合约具有一些优势:
1)智能合约可促进交易以转移价值或加密货币以外的资产。
2)智能合约允许规范区块链上的操作规则。
3)它促进了分散网络中资产转移政策的实施。
4)它还为区块链增加了可编程性和智能性。
5)智能合约代表业务逻辑层,实际逻辑以特殊的高级语言编码。
6)智能合约嵌入了可以由类似于函数调用之类的消息调用的函数。 这些消息和单个消息的输入参数在事务中指定。
比较比特币交易和智能合约交易
比特币中,所有交易都与发送价值有关。
在支持智能合约的区块链的情况下,交易可以嵌入由智能合约实现的功能。
在这里,我们有一个投票智能合约。 这些功能是 Validate Voter,Vote,Count,Delare Winner。 智能合约提供了可以在区块链上执行的计算逻辑层,从而利用了区块链框架启用的功能。 回想一下我们在课程一,模块二中讨论过的去中心化应用程序的各层。 观察该智能合约为域应用程序提供了应用程序框架。 例如,考虑住房抵押贷款申请。 智能合约可以嵌入规则和法规的所有业务逻辑和智能,以实现自动计算和启动操作。
这与现有系统有何不同?
在这里,所有操作都是透明的,并记录在区块链上。 客户无需银行等中介就可以直接访问这些工具。 就像自动柜员机启动抵押贷款一样。
智能合约可以解决哪些问题?
通常,货币转移用于从个人或企业购买服务,产品或实用程序。 在执行交易时,除了资金可用性外,可能还有其他条件。例如,业务交易可能涉及规则,政策,法律,法规和管理环境。智能合约允许在区块链上实现这些其他现实世界的约束,因此,智能合约可以在区块链上实现各种任意复杂度的分散应用。这可以涵盖从供应链到灾难恢复的整个范围。可能尚未构思出区块链技术的许多应用程序。智能合约正在引领下一代区块链,超越了将价值转移到有远见的领域。智能合约允许实施规则,政策,并借助区块链,支持治理和出处的方法。