主流幣:
中本聰設計的比特幣大獲成功后,各種區(qū)塊鏈和其對應的加密貨幣層出不窮,其中不乏新技術(shù)的使用,不過大部分的模仿貨幣最后都銷聲匿跡了,最終存活并存有大量用戶的被稱作主流幣。
BTC比特幣 |
ETH以太坊 |
LTC萊特幣 |
XRP瑞波幣 |
USDT (代幣) |
USDC (代幣) |
BUSD (代幣) |
… |
代幣是建立在現(xiàn)有區(qū)塊鏈平臺上的,比如以太坊。你可以用以太幣(ETH)來換取這些代幣,然后在特定的區(qū)塊鏈應用程序中使用它們,就像在游樂園里使用游戲幣一樣。這些代幣沒有自己的區(qū)塊鏈,它們依賴于別的區(qū)塊鏈平臺來運行和管理。
其中BTC毫無疑問是當今老大,而**ETH(以太坊)**因為其開創(chuàng)了智能合約平臺,使區(qū)塊鏈進入2.0時代,坐穩(wěn)老二的位置。
從以太坊開始,區(qū)塊鏈技術(shù)號稱不再局限于加密貨幣領域,而是推廣到整個web行業(yè),催生出web3.0。
如何理解以太坊:
比特幣網(wǎng)絡中,每一個區(qū)塊中只有轉(zhuǎn)賬記錄,是否可以存點別的東西來提高其擴展性?
以太坊創(chuàng)始人Vitalik和其團隊,設計了一種腳本語言Solidity和以太坊虛擬機,程序員可以將用這種語言寫的代碼,打包成字節(jié)碼,一起存在區(qū)塊鏈上。
以太坊的節(jié)點客戶端都內(nèi)置了虛擬機,可以執(zhí)行這個區(qū)塊中的代碼,實現(xiàn)一些自定義操作。
所以以太坊不僅被理解為一種加密貨幣,也是一個執(zhí)行代碼的平臺,這種代碼被稱為智能合約。
智能合約有什么用:
見仁見智,關鍵是理解這種想法,無非在前面區(qū)塊中寫死了一些函數(shù)代碼,可以供后面的區(qū)塊調(diào)用。各種新概念的仍源于區(qū)塊鏈的公開性和不可篡改性。比如:
用于募捐:在5天內(nèi)募集5000個單位的貨幣。如果在截止日期前沒有達到目標金額,合約將自動將資金退還給捐款人
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
contract Fundraiser {
// 定義募捐目標和截止時間
uint public constant TARGET = 5000 ether;
uint public constant DEADLINE = block.timestamp + 5 days;
// 記錄捐款人和捐款金額
mapping(address => uint) public contributions;
address public owner;
uint public totalContributions;
// 構(gòu)造函數(shù),設置合約擁有者
constructor() {
owner = msg.sender;
}
// 接收捐款的函數(shù)
function contribute() external payable {
require(block.timestamp < DEADLINE, "募捐已結(jié)束");
contributions[msg.sender] += msg.value;
totalContributions += msg.value;
}
// 檢查是否達到目標,若未達到則退款
function checkGoalReached() external {
require(block.timestamp >= DEADLINE, "募捐尚未結(jié)束");
if (totalContributions < TARGET) {
refundAll();
}
}
// 退款給所有捐款人
function refundAll() internal {
for (uint i = 0; i < contributors.length; i++) {
address contributor = contributors[i];
uint amount = contributions[contributor];
(bool success, ) = contributor.call{value: amount}("");
require(success, "退款失敗");
contributions[contributor] = 0;
}
totalContributions = 0;
}
// 提取資金,只有在達到目標后才能調(diào)用
function withdraw() external {
require(msg.sender == owner, "只有合約擁有者才能提取資金");
require(totalContributions >= TARGET, "未達到募捐目標");
require(block.timestamp >= DEADLINE, "募捐尚未結(jié)束");
(bool success, ) = owner.call{value: address(this).balance}("");
require(success, "提款失敗");
}
// 用于接收未標記為contribute的ETH
receive() external payable {
contribute();
}
}
將這個合約存到區(qū)塊鏈中,每一個人就可以調(diào)用里面的函數(shù)來捐錢到指定地址,也不用擔心對方卷錢跑路。
由智能合約衍生的玩法還有很多,否則也不能這么火。
問了下GPT,回答如下:
智能合約是區(qū)塊鏈技術(shù)的一項重要應用,它可以自動執(zhí)行合同條款,從而提高效率并減少中介成本。以下是一些智能合約的實際應用例子:
-
金融領域:智能合約可以用于自動化的資產(chǎn)清算、保險理賠和資產(chǎn)交易。例如,它們可以在確定的條件下自動執(zhí)行支付和結(jié)算。
-
管理領域:在組織管理中,智能合約可以幫助實現(xiàn)透明和自動化的決策過程,如DAO(去中心化自治組織)使用智能合約來管理組織的規(guī)則和資金。
-
醫(yī)療領域:智能合約可以用于安全地共享醫(yī)療數(shù)據(jù),保護患者隱私的同時,提高數(shù)據(jù)訪問和處理的效率1。
-
物聯(lián)網(wǎng)與供應鏈:智能合約可以用于自動化的物流跟蹤、產(chǎn)品真?zhèn)悟炞C和庫存管理,從而提高供應鏈的透明度和效率。
-
共享經(jīng)濟:例如,智能合約可以用于自動處理共享資源的租賃和支付,如共享汽車或共享住宿的支付處理。
-
投票系統(tǒng):智能合約可以創(chuàng)建一個安全、透明且不可篡改的投票系統(tǒng),確保選舉的公正性。
代幣與如何發(fā)行代幣:
代幣(Token)是區(qū)塊鏈中的一種數(shù)字資產(chǎn),可以代表貨幣、時間、服務、公司股份、虛擬寵物等各種實物或虛擬事物。代幣通常通過智能合約來發(fā)行,任何人都可以發(fā)行自己的代幣。
通過編寫智能合約中的函數(shù),可以允許用戶將原生加密貨幣轉(zhuǎn)入合約地址,從而換取一定數(shù)量的代幣。
代幣可以是可互換的(fungible)或不可互換的(non-fungible),取決于它們所代表的實物或虛擬事物的特性。
社區(qū)制定了一些標準(如ERC20、ERC721和ERC777)來規(guī)范智能合約與其他合約的互操作性。ERC20是用于可互換資產(chǎn)的最常見的代幣標準,而ERC721則是用于不可互換代幣的標準,通常用于收藏品和游戲。
發(fā)行ERC20標準代幣:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
//發(fā)行代幣,代幣和原生幣的匯率為1比1
contract MyToken is ERC20 {
constructor() ERC20("MyToken", "MT") {
_mint(msg.sender, 1000000 * (10 ** uint256(decimals())));
}
//轉(zhuǎn)賬函數(shù)
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
require(amount <= balanceOf(msg.sender), "Insufficient balance");
_transfer(_msgSender(), recipient, amount);
return true;
}
//查詢地址內(nèi)余額
function balanceOf(address account) public view returns (uint256) {
return super.balanceOf(account);
}
}
web3分布式應用程序(Dapp):
當前,不管是C/S(客戶端-服務端)架構(gòu)還是B/S(瀏覽器服務端)架構(gòu)的應用程序,都是用戶安裝一個前端app或者從瀏覽器訪問網(wǎng)頁前端,通過api與企業(yè)的服務器進行交互,數(shù)據(jù)存放在企業(yè)自己的數(shù)據(jù)庫中。
Dapp(分布式app),每一個Dapp既是一個前端也是一個節(jié)點,用戶的數(shù)據(jù)全部存入去中心化的區(qū)塊鏈中,隱私數(shù)據(jù)可以端到端加密后再存入,沒有任何人能修改刪除你的數(shù)據(jù)??梢哉f,對于去中心化的(分布式)app,典型后端這一說法不再適用。
特征 | Web2應用程序 | Web3應用程序 |
---|---|---|
中心化 | 數(shù)據(jù)和服務由單一公司或組織控制 | 應用程序運行在區(qū)塊鏈上,沒有中心化的控制 |
數(shù)據(jù)所有權(quán) | 用戶數(shù)據(jù)歸服務提供商所有 | 用戶擁有自己的數(shù)據(jù)和身份 |
可擴展性 | 交易和操作速度較快 | 可能因為去中心化而速度較慢 |
支付集成 | 調(diào)用中心化的第三方支付接口 | 通過原生代幣內(nèi)置支付功能 |
可編程性 | 開放程度有限,自定義程度低 | 圖靈完備,可以編寫復雜程序 |
限制 | 依賴中心化服務器 | 交易速度慢,用戶體驗和成本方面有挑戰(zhàn) |
Dapp發(fā)展現(xiàn)狀:
當前大部分Dapp并不是完全體,只是傳統(tǒng)前后端+(鏈端)智能合約。
省略…文章來源:http://www.zghlxwxcb.cn/news/detail-856967.html
潛力巨大,前景廣闊,道阻且長。
只能說,祝它成功吧!文章來源地址http://www.zghlxwxcb.cn/news/detail-856967.html
到了這里,關于web3系列———2.以太坊與智能合約的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!