工程师视角:什幺是区块链的SmartContract-_M管生活_申博私网出租
首页 Y生活君 品味慢生活 M管生活 权威资讯
 主页 > M管生活 >工程师视角:什幺是区块链的SmartContract- >

工程师视角:什幺是区块链的SmartContract-

2020-07-08  |  来源:http://www.252suncity.com  
 
工程师视角:什幺是区块链的SmartContract?

投入区块链社群以及产业一小段时间了,跟工程师朋友们聊到区块链的去中心化架构时,朋友们多半是一头雾水。今天想试着透过工程师们比较容易理解的角度来解释一下区块链领域经常被提到的一个名词:Smart Contract 。希望有助于工程师朋友们了解区块链技术。

先提醒一下以下的内容解释的都是针对 Ethereum区块链,其他的区块链不见得有 Smart Contract 的概念。

一般的程式如何被执行?

开始解释 Smart Contract 前想来聊聊更基本的事情:一段程式是怎幺被执行的。当你写了一段 Java、Python 或是 JavaScript 的程式,它会怎幺被执行呢? 假设我们在写一个卖票程式,可能会需要一个 MeetupEvent 的类别 ,内容如下:

工程师视角:什幺是区块链的SmartContract?
https://gist.github.com/yurenju/284cfb127a8ba9de07eb8e007acca317

这段 Java 程式的执行方式,一般来说源码会经过 Java 编译器转译成 Bytecode 之后,透过 JVM在电脑中执行。当这个程式在执行时 main 将会建立一个类别的 instance event,此时这个 instance 将会储存在记忆体里面,并且可以透过我们定义的方法如 register  操作这个 instance,直到整个程式结束。

工程师视角:什幺是区块链的SmartContract?

不管是写 Java, Python, JavaScript 或其他较为高阶的语言,实作上的细节根据不同程式语言会有差异,但是大致上的情形都会是这样,相信工程师们对这样的运作架构也耳熟能详。

Smart Contract

让我们再回到我们的主题:什幺是 Smart Contract 呢?Smart Contract 名字上听起来很玄,如果你是第一次接触区块链的工程师,其实:

更精确地来说,在 Ethereum Blockchain 上面 Smart Contract 运作在 Ethereum Virtual Machine上面。同样的 MeetupEvent,我们改用 Smart Contract 的程式语言 solidity 重写一次:

工程师视角:什幺是区块链的SmartContract?
https://gist.github.com/yurenju/8598564c516facd734834a51df3fc191

这段就是被称作是「Smart Contract」的程式,你可以把它当作是一个类别 。要使用这段程式的时候,它必须被部署到区块链上,上面这段程式会被创造出一个 instance,而这个 instance 将会被放在区块链上。下图这个 Ethereum VM 则会运行在每一个 Ethereum 节点上面。一旦合约部署成功时会得到一个地址,它就像记忆体位置一样,取得这个位置后搭配正确的 interface 资讯就可以执行这个合约。

工程师视角:什幺是区块链的SmartContract?

在区块链上所有人都可以呼叫这个 smart contract 所开出来的函式 。当然因为它就是一段程式,你也可以写些逻辑来做权限控管。以我们这个程式的例子,可以执行的函式就是 register。这样说起来,除了 Smart Contract 是跑在区块链上以外,其实他就是一个 instance,跟使用其他程式语言上的 class instance 没有太大的差别。

而区块链 VM 上跑的程式跟一般 VM 上跑的程式,最不一样的地方就在于去中心化架构。

工程师视角:什幺是区块链的SmartContract?

在一般程式的架构中,不管那个服务用了分散式运算、load balance 加上多台伺服器或是只在一台机器上面跑,本质上这些伺服器全部都是由单一组织掌管,这样的架构行之有年,也运作得很好。但这样的架构下,如果你需要做任何「价值交换」的应用,免不了都要中间人的介入。

在以前只能当面交易的年代,所有东西都是一手交钱一手交货。需要更方便与有效率的交易时,出现了掮客帮你转交物品跟金钱的行业,当然这位中间人需要取得双方的信任。

最终银行、信用卡公司、金流公司类似的概念逐渐兴起,使用者也需要信任银行或信用卡公司时,这样的模式才行得通,而搭建在上面的「信任」是国家透过合约、法律约束各式各样的公司,一层一层的信任关係就这样搭建起来。

回到最根本之上,就是「信任」问题。而区块链与 Smart Contract 则是试图透过去中心化的架构来解决这问题。 不同于一般程式的中心化架构,在 Ethereum 区块链中,如果你想要透过协助别人执行他们的 Smart Contract 获得奖励,你可以安装 ethereum node 的软体如 go-ethereum 或是 parity,并且开启矿工模式即可。要成为一个矿工并不需要经过谁的同意,而当矿工在 Ethereum 区块链会有挖矿奖励回馈以及使用者给矿工的交易费。

如此一来 Ethereum 的去中心化节点网路就这样建构起来了。当你部署一个 Smart Contract,或是发起一笔交易来改变区块链内的状态时,会需要付出交易费,这笔交易费最终则会由矿工收走作为奖励之一。

更棒的是 Ethereum 区块链是一个内建数位货币金流的平台,开发者可以非常容易的利用在区块链上内建的数位货币金流系统来搭建各式各样的去中心化应用 。 你跟网路上的某人交易时,如果透过 Smart Contract 双方先押了一笔保证金在合约里面,是不是就可以在没有中间人担保的状况下让确认交易可以执行呢?内建数位货币金流系统,搭配上公开的 Smart Contract 内容,以前透过现实生活的「合约」来解决的信任问题,就可以重新思考是否可以透过 Smart Contract 解决。

话说回来,区块链跟 Smart Contract 都还在非常早期的发展,说不定现在发现的问题比解决的问题还要多。我不觉得区块链是银弹,突然之间就可以解决以往庞大複杂的问题。不过我真的很期待去中心化的思维可以回头来思考我们已经做过的服务,有哪些可以再透过去中心化架构,提出新的解决方案。

如果你对 Ethereum 区块链有兴趣,不妨来参加 Taipei Ethereum Meetup,这是一个讨论 Ethereum 区块链的技术社群。我们每个月会有一次到两次的技术分享,欢迎大家一起来研究去中心化的世界!

上一篇:
下一篇:
栏目最新
推荐资讯
【PCM1142】在家畅游博物馆 夏日亲子新玩意【PCM11
【PCM1142】在家畅游博物馆 夏日亲子新玩意【PCM11
【PCM1143】music on the go!! 蓝牙运
【PCM1143】music on the go!! 蓝牙运
罗布泊诡异事件 最让人觉得不可思议的九大事件
罗布泊诡异事件 最让人觉得不可思议的九大事件
罗干家族接踵而来的危机(上)
罗干家族接踵而来的危机(上)
【食记】台北中正。捷运善导寺站:喜来登(苏可泰)SUKHOT
【食记】台北中正。捷运善导寺站:喜来登(苏可泰)SUKHOT
【食记】台北亚都丽緻饭店:天香楼(6-8
【食记】台北亚都丽緻饭店:天香楼(6-8
栏目热门
 
申博私网出租|时尚生活消费|全面的资讯网站|网站地图 申博988smc 申博sunbet70多玩网