前端小白入門區塊鏈系列04

2021-09-24 06:41:41 字數 3345 閱讀 1092

先解釋下《前端小白入門區塊鏈系列03的**》

pragma solidity ^0.4.22;   // 宣告solidity語言以及版本是0.4.22

contract ballot

// 傳送幣 (ads: 傳送的位址,coin:傳送幣的數量)

function sendcoin(address ads,uint coin) public returns (bool)

// 獲取位址金額

function getadsamount(address ads) public view returns (uint)

// 獲取餘額

function getbalance()public view returns (uint)

// 獲取傳送者位址

function getmsgsender()public view returns (address)

// 獲取傳送者的值

function getms**alue()public view returns (uint)

}複製**

紙上得來終覺淺,絕知此事要躬行.做傻事都不容易,不限理解概念就開幹,很容易產生很多的誤區,上面解釋了一番只是為了讓大家興奮下.這期說下智慧型合約

什麼是智慧型合約? 智慧型合約(smart contract)是一種旨在以資訊化方式傳播、驗證或執行合同的計算機協議。智慧型合約允許在沒有第三方的情況下進行可信交易,這些交易可追蹤且不可逆轉。

我們這裡講的智慧型合約指的是區塊鏈領域的智慧型合約。

區塊鏈領域的智慧型合約有以下特點:

之前社會中的合同或者約定的行為,都是由人來制定規則,然後由人去執行,遇到邊界問題或者異常,再由人去做界定。

但是智慧型合約不同,開發者通過智慧型合約去制定一套規則,然後發布到線上,當人們去做事情與智慧型合約互動的,由機器去完成業務的部分,這樣就避免了由人來執行時造成的作弊行為。

這樣就引入了去中心化自治組織(dao,decentralized autonomous organization)的概念,從理論上對智慧型合約的意義進行了昇華。

1 以太坊 solidity

solidity 是以太坊的智慧型合約實現的程式語言,執行在以太坊的虛擬機器 ethereum virtual machine(evm)上。

solidity 是靜態型別的,支援繼承、庫和其他功能中複雜的使用者定義型別。

solidity 是本系列課程的主要內容,將在接下來的課程中詳細介紹。

hyperledger fabric hyperledger fabric™ 是 the linux foundation® 主辦的 hyperledger® 專案之一。

hyperledger fabric 旨在作為開發模組化體系結構的區塊鏈應用程式的基礎,以便諸如共識和會員服務等元件可以即插即用。

它使用容器技術來託管構成系統應用邏輯的智慧型合約(也稱為鏈**),簡而言之,hyperledger fabric 是為企業構建的領先的開源、通用區塊鏈結構。

和以太坊不同的是 hyperledger 主要面對的是企業級的專案開發,hyperledger 專案的主要推動者是 ibm。

我們在 ibm 的 bluemix 上看到的區塊鏈的服務,就是基於 hyperledger 的。

下圖為 hyperledger fabric v1.0 中的交易生命週期,由於不是本文重點,這裡不重點描述。

2 以太坊 ethereum 的 solidity

solidity 是太坊 ethereum 的智慧型合約使用的的程式語言。

solidity 是一種靜態型別的程式語言,用於開發在 evm 上執行的智慧型合約,被編譯為可在 evm 上執行的位元組碼。

藉由 solidity,開發人員能夠編寫出可自我執行其欲實現之商業邏輯的應用程式,該程式可被視為乙份具權威性且永不可悔改的交易合約,對已具備程式編輯能力的人而言,編寫 solidity 的難易度就如同編寫一般的程式語言。

提起智慧型合約,很多人可能不是很清楚,但是一說 ico,大部分人都是很感興趣的。

ico 的本質就是,用智慧型合約建立規則,並儲存資料。使用者給智慧型合約傳送一定數量的 eth,智慧型合約就在自己的賬戶內建立對應位址的代幣資料。

1. erc20

以太坊一直在維護乙個專案,被成為eip(ethereum improvement proposals)。

ethereum improvement proposals (eips) describe standards for the ethereum platform, including core protocol specifications, client apis, and contract standards.

在這些標準中,就包含了關於智慧型合約的部分。

官方專案位址詳見這裡,我們在 finalized eips 中可以找到 erc20 的描述。

erc20 定義了 erc-20 token 的通用標準,所有符合 erc20 的智慧型合約建立出來的代幣,都被稱為 erc20 代幣,都能夠被以太坊錢包(幾乎所有支援以太幣的錢包,包括 imtoken、幣兜錢包等,也支援 erc-20 的代幣)識別使用。

2 erc223

由於之前出現過智慧型合約的問題,導致至少有價值四十萬美元的以太幣的損失,所以後來出現了 erc20 的改良版本——erc223。erc223 標準是向下相容 erc20 的。

目前市面上絕大部分代幣都是基於 erc20 標準的,基於 erc223 的並不多,比如 atn。

3 他們的關係舉個簡單的例子,智慧型合約就像是一張白紙,代幣就像是用白紙疊成的紙飛機,我們還可以用這張白紙來做紙青蛙。

從現在這個時間點來看,智慧型合約首先的應用是創造代幣,也就是大家提到的 ico。

ico 創造一種新的商業模式,它將社群的力量發揮出來。在技術圈內,社群一直是很重要的力量,很多知名的開源專案比如 linux,都是集合了社群開發者的智慧型變得越來越完善。

而 ico 的意義在於,真正有價值的專案可以不用通過傳統的風投而是通過社群人員眾籌來獲得專案的啟動資金,並且隨著專案的發展,社群人員也能通過它來收到回報。這從一定程度上解決了技術人員有能力做專案,卻沒能力籌錢的問題。

但是 ico 也暴露了人性的惡,2017 年開始,大量沒有技術背景的 ico 出現在全球市場上,各種負面新聞也出現,到 2018 年年初,已經有大部分 ico 以失敗告終。

智慧型合約的中心思想是用機器去實現既定的規則,讓規則內的人們不會去作弊,並提高了業務的效率。

除了發代幣之外,智慧型合約的應用場景非常多,比如投票、結合物聯網做智慧型家居等等。

在不久的將來,智慧型合約的應用注定會爆發。

區塊鏈入門

0x00 區塊鏈 base 區塊鏈概念 選自長亭科技 區塊鏈安全生存指南 1.1 始於位元幣 區塊鏈 blockchain 最早由 中本聰 satoshi nakamoto 於2008年 在其 位元幣 一種點對點電子現金系統 中提出,位元幣也成為了目前最廣為人知的區塊鏈應用案例。廣義上講,區塊鏈技術...

區塊鏈入門

1.參考部落格 位元幣 一種點對點的電子現金系統 從一到n,掘金區塊 區塊鏈行業研究報告 2.引入 sha256 非對稱加密 加密 hash值 私鑰 加密後的hash值 解密 加密後的hash值 公鑰 解密後的hash值1 shaa256 接收到的值 hash值2 hash值2 vs hash值1 ...

區塊鏈入門

從字面上看 區塊鏈是由乙個個記錄著各種資訊的小區塊鏈結起來組成的乙個鏈條,類似於我們將一塊塊磚頭疊起來,而且疊起來後是沒辦法拆掉的,每個磚頭上面還寫著各種資訊,包括 誰疊的,什麼時候疊的,磚頭用了什麼材質等等,這些資訊你也沒辦法修改。從計算機上看 區塊鏈是一種比較特殊的分布式資料庫。分布式資料庫就是...