主頁 > 區塊鏈 > Bitcoin重大升級(Tapscript [BIP342],Taproot [BIP341],Schnorr簽名 [BIP340])

Bitcoin重大升級(Tapscript [BIP342],Taproot [BIP341],Schnorr簽名 [BIP340])

2021-08-11 08:01:52 區塊鏈

今天給大家介紹一下關于Bitcoin提出的改進方案(BIP),位元幣改進提案(BIP)是改變位元幣的正式提案,位元幣作為一個軟體,一直在升級,需要修復漏洞、提高演算法效率、簡化代碼、而且必須保持與其他軟體的兼容性,因此會添加新功能,本篇文章針對BIP340-341引入了一些新功能進行介紹,

文章目錄

  • 位元幣如何進行交易的
  • 01 Schnorr簽名 [BIP340]
    • 1.什么是Schnorr簽名?
    • 2.密鑰聚合
    • 3.Schnorr簽名和ECDSA簽名對比
  • 02 Taproot [BIP341]
    • 1.什么是Taproot?
    • 2.Merkelized抽象語法樹(MAST)
    • 3.Taproot改進MAST
    • 4.Taproot亮點:擴容
  • 03 Tapscript [BIP342]
    • 1.什么是Tapscript?
  • 總結
  • 參考


位元幣如何進行交易的

例如我們生活常見的像是銀行卡、支付寶或者微信等平臺都是存在個人賬戶的,我們所有的交易的輸入輸出都是圍繞在這個賬戶,當然在加密貨幣領域也有許多,比如基于Account模型的以太坊等,
對于位元幣來說,中本聰在設計時考慮到隱私性的問題,使用了基于未花費輸出(UTXO)模型,每一筆交易由輸入和輸出交易組成,當你進行位元幣轉賬時,你花費的是UTXO,這時需要通過加密簽名證明你對UTXO的所有權,當你針對UTXO交易的輸出包含兩個元素:位元幣數量和鎖定腳本(或scriptPubKey),該腳本通過限定花費某些輸出的條件來鎖定位元幣數量,鎖定腳本會將輸出鎖定在特定的位元幣地址,該地址將位元幣的所有權轉讓給新的所有者,
而新的所有者通過提供解鎖腳本(或scriptSig)以及與其私鑰相關聯的簽名來解鎖輸出,然后花費這些位元幣,解鎖腳本是下一筆交易輸入的一部分,為了確保你不會花費你不擁有的UTXO,位元幣客戶端通過執行腳本來確認交易,每個輸入中的解鎖腳本與相應的鎖定腳本一起執行,以查看是否滿足花費條件,全節點跟蹤并驗證全部UTXO集,從而確保每個人只能花費他們自己擁有的位元幣,

舉例說明:
下圖是Alice想付給Bob 1個BTC,為此,她使用Bob的公共地址創建了一筆交易,為了轉移位元幣,Alice提供了她的數字簽名(由私鑰和交易資料歷史產生),以證明她在UTXO集中擁有至少1個BTC,同時沒有泄露她的私鑰,
在這里插入圖片描述
作為交易的一部分,只有Bob可以解鎖鎖定腳本,交易轉賬后,UTXO便被轉移,并將其添加到位元幣區塊鏈中,通過提供簽名,Bob可以解鎖鎖定腳本scriptPubKey,并且可以將UTXO用作下一筆交易的輸入,
位元幣常見交易形式

1.P2PKH
Pay-to-Public-Key-Hash (P2PKH) 是一種ScriptPubKey,它將位元幣鎖定到公鑰的哈希值,P2PKH 交易是使用 P2PKH ScriptPubKey 鎖定輸入的交易,公鑰哈希也稱為地址,P2PKH 是目前最常見的腳本型別,P2PKH 類似于 P2PK 交易,除了位元幣鎖定到公鑰的哈希值而不是公鑰本身,
在這里插入圖片描述
2.P2SH
Pay-to-Script-Hash (P2SH) 是一種ScriptPubKey,它允許根據在交易中指定哈希的腳本來支出位元幣,P2SH 交易是使用 P2SH ScriptPubKey 鎖定輸入的交易,


01 Schnorr簽名 [BIP340]

1.什么是Schnorr簽名?

正如前面關于位元幣交易如何作業的部分所述,腳本語言控制著位元幣的花費,并使用數字簽名來轉移位元幣的所有權,位元幣使用橢圓曲線數字簽名演算法(ECDSA)來驗證加密簽名(該演算法不原生支持多簽交易的,導致了2012年P2SH交易的標準化),簡而言之,Schnorr簽名方案是一種更有效的簽名方案,該簽名方案是由Claus-Peter Schnorr在1989年開發的,
Schnorr建立在“ 隔離見證”之上,該見證于2017年8月在位元幣上激活,以解決可延展性( malleability)問題,SegWit將所有腳本和簽名資料移至“見證”部分,見證是交易的一部分,作為一個單獨結構,不再包含在輸入串列中,

2.密鑰聚合

在這里插入圖片描述
上圖可以反應密鑰如何聚合,原始的ECDSA需要對每一筆交易分別簽名,而對于Schnorr簽名是線性的,意味可以對對公鑰進行加法(或減法),等同于對應的簽名的加法或減法,而ECDSA并不具有這個特性,加或減ECDSA的數字簽名是沒有意義的,
下面的方程式通過Schnorr的線性特性說明了如何聚合,除了參與者之外,沒有人知道在公共密鑰/簽名后面有三個人,
在這里插入圖片描述

簡單來說,就是一筆交易中多個簽名可以組合成一個,它通過將公鑰和簽名組成成“閥值公鑰”和“閥值簽名”,讓其交易看上去跟普通交易沒有區別,“閥值公鑰”可以讓參與者的公鑰疊加在一起,而“閥值簽名”可以讓參與者的簽名組合起來,根據約定條件進行支付,Schnorr簽名演算法可以使得多重簽名更高效,同時由于其看上去跟普通交易一樣,因此,也提升了隱私性,

3.Schnorr簽名和ECDSA簽名對比

Schnorr簽名資料比現有的ECDSA簽名資料小11%,現有簽名每個交易占用70-72個位元組,由于Schnorr簽名在交易中/在區塊鏈上占據的空間較小(它們固定為64個位元組),因此可以實作較小的交易資料和較低的費用,
Schnorr簽名,所有輸入僅需要一個組合簽名,因為不同的簽名是聚合在一起的,把交易包含在一個簽名,可以使交易具有更大容量,多簽交易的較小交易資料可降低費用,使用密鑰聚合,我們不必檢查每個單獨的輸入,驗證速度更快,使用ECDSA的緊湊型多重簽名也比較難以生成,因為它們使用DER(專有編碼規則)進行編碼,而Schnorr簽名以更節省空間的方式進行編碼,

ECDSA和Schnorr數字簽名方案都依賴于離散對數問題,但Schnorr的好處是,與ECDSA相比,它使用的假設更少,并且有形式化的證明其是安全的,ECDSA缺乏正式的安全證明,并且依靠額外的假設來保證這一目標,因此,Schnorr是供密碼學家使用的更清晰的框架,Schnorr至少比ECDSA安全,如果不是更安全的話,

02 Taproot [BIP341]

1.什么是Taproot?

Taproot提出擴展了Schnorr的功能,以實作更大的擴展性、效率和支付隱私性,正如我們在上面所解釋的那樣,Schnorr使位元幣多簽名交易看起來像是區塊鏈上的標準交易,當與Schnorr結合使用時,Taproot(BIP 341)將進一步擴大交易的隱私性,在徹底了解Taproot之前我們要先了解什么是Merkelized抽象語法樹(MAST),

2.Merkelized抽象語法樹(MAST)

MAST是默克爾化抽象語法樹(Merkelised Abstract Syntax Trees)的簡稱,最初由位元幣開發者Johnson Lau博士于2016年提出,MAST使用新的見證程式,并使用Merkle樹編碼腳本中獨立的分支,Merkle樹是一種資料結構,樹這一術語用于描述分支結構,它通常把圖表頂部稱為根,而圖表底部稱為葉,如下圖所示,

在這里插入圖片描述
Merkle樹是通過分別哈希每個腳本以獲得簡短的唯一識別符號而創建的,然后,將這些識別符號中的每一個與另一個識別符號配對并再次進行哈希處理,從而生成另一個簡短的唯一識別符號,這是一個互動程序,一直持續到只有一個識別符號,在上圖中稱為Merkle根 ,可以在僅幾個位元組的資料中唯一標識整個集合,我們可以將Merkle根視為位元幣的密碼箱,與支付到腳本哈希(P2SH)相比,MAST允許在Merkle樹中構造多個支出條件,僅顯示滿足的條件,其中使用Merkle根和路徑來驗證條件是否位于Merkle樹中,同時將其余樹隱藏起來,

MAST的獨特優勢在于,如果揭示了Merkle樹中的任何資料,則可以使用Merkle根和一些其他資料(稱為Merkle路徑)來驗證該特定資料是否包含在Merkle樹中,樹的其余部分(以及其他條件)仍保持散列和隱藏狀態,這意味著,如果所有參與者都同意,則僅需要透露所滿足的條件,有復雜交易任務的用戶可以創建較小的交易,而帶有大量亞腳本(sub-script)的更復雜的合約的效率收益則更大,與使用任何其他當前機制相比,MAST使得更多的條件分支成為可能,這打開了對更高級的智能合約的支持,而不必向位元幣節點沒有額外費用,

3.Taproot改進MAST

Taproot是最初由Greg Maxwell,Peter Wuille和Andrew Poelstra提出的位元幣提案,后來,IRC和bitcoin-dev郵件串列上的十個主要貢獻者都接受了它,Schnorr增加了一個新的簽名型別,Taproot在此基礎上又推出了一個新的交易輸出型別以及確定支付條件的新方法,
在這里插入圖片描述

Taproot具有自己的Merkle樹版本,稱為腳本樹(script tree),參與者可以選擇以下使用:1)作為常規簽名的公鑰,2)與腳本一起使用,首先,是默認的支出路徑,在此路徑上無法區分單方或多方公鑰,對于替代的支出途徑,除非我們支出,否則不會顯示隱藏的腳本,可以將不同的腳本組織到Merkle樹中,也可以通過顯示其中一個子句來使用輸出,如果我們使用主支出腳本花費交易,則只需提供Merkle證明,該證明由主支出腳本和替代支出腳本的哈希組成,足以證明主支出腳本在腳本樹中,

Taproot使用MAST結構將條件隱藏在Merkle根下面,Merkle根本身會被密鑰承諾(key commitment)隱藏起來,并可以通過密鑰直接花費,只有一個密鑰進入區塊鏈,沒有人能看到存在的其他條件,與Schnorr結合使用時,Tastroot輸出隱藏了MAST結構,在Merkle樹的頂部,有一個用于發布單個公鑰和簽名的選項,實際上,這使P2PKH和P2SH交易看起來相同,

通過MAST,可以對腳本中的操作進行編碼,提升可編程性,當BTC交易發生時,只需要提供其分支運算并將分支哈希連接到固定大小的默克爾根上,從而減少交易資料,提升區塊空間,而且MAST可以根據交易不同設定不同的條件,也就是實作智能合約功能,而且MAST結構可以使交易資料顯著降低,但是隨著腳步數量的增加,MAST結構的交易資料是對數增長不是線性增長,大大降低了資料大小,

4.Taproot亮點:擴容

擴容兩個字,總能在最近的公鏈競爭中聽到,擴容的好處是,交易速度更快,GAS費用更低,這對位元幣來說當然非常的重要,最初開發的時候,專案方的夢想是讓位元幣成為全球貨幣,不過,一個交易確認那么慢的東西,根本吸引不了大批的人去使用,所以,為了讓位元幣有支付屬性,擴容升級是必須的,

在Taproot新方案中,Schnorr簽名為位元幣減少容量帶來了技術支持,具體來看,Schnorr簽名通過把多個公鑰設計成一個簽名,從而減少空間,資料來看,在位元組占比上,Schnorr上的公鑰占了32個位元組,比原方法節約了1個位元組,在簽名長度上,Schnorr的長度是65個位元組,比原方法節約了6-7個位元組,Taproot就是通過這些小空間的節約給位元幣的使用者節約了確認交易所需的時間和費用,

進一步來說,這次升級是Layer2擴展解決方案的進步,因為Taproot允許改進Layer2網路,例如位于位元幣之上的閃電網路,Taproot將通過用點時間鎖定合約(PLTC)替換哈希時間鎖定合約(HTLC)來升級閃電網路功能,閃電網路是一種面向商業的服務,允許各方更快速、更便宜地進行位元幣交易,使用PTLC意味著支付將使用常規公鑰進行路由,提供類似于為多重簽名錢包設計的隱私功能,PTLC還可以啟用區塊鏈托管條件,并改進預言機的使用,以促進支付的便利性,

03 Tapscript [BIP342]

1.什么是Tapscript?

Tapscript是Schnorr和Taproot的補充升級,作為位元幣編程語言(腳本)的升級版,Tapscript更容易添加新功能,且提供基于Schnorr簽名的批量驗證(batch verifiability),

Tapscript還補充了BIP 341(Taproot)中提出的對位元幣腳本結構的改進,該結構需要更改某些操作碼,而BIP 342則涉及需要進行的更改,理解Tapscript的另一種方法是考慮Taproot的Merkle樹,其中每個葉子(leaf)都是一個腳本,可稱之為葉子版本,類似于SegWit的腳本版本控制,但是不同之處在于,腳本不會在付款時顯示,而只會在花費時顯示,不同的葉子可以具有不同的版本,其中僅顯示實際使用的葉子,Tapscript是Taproot下版本0的葉版本,

Tapscript與傳統和SegWit的位元幣腳本共享大多數操作,但有一些區別:
簽名操作碼驗證Schnorr簽名(而不是ECDSA簽名)

多簽操作碼OP_CHECKMULTISIG和OP_CHECKMULTISIGVERIFY被操作碼OP_CHECKSIGADD代替,允許使用Schnorr進行簽名批量驗證,
當前,用于2-of-3的多重簽名交易的腳本如下所示:

2 <公鑰A> <公鑰B> <公鑰C> 3 CHECKMULTISIG

使用Taproot/Tapscript,可以以批量驗證的方式創建相同的多重簽名策略,其腳本是:

<A pubkey> OP_CHECKSIG <B pubkey> OP_CSADD <C pubkey> OP_CHECKSIGADD OP_2 OP_EQUAL

許多操作碼被重新定義為OP_SUCCESS操作碼,它無條件使整個腳本有效,以簡化軟分叉升級,

與現在正使用的機制OP_NOP相比,新操作碼OP_SUCCESS的引入更容易驗證,以前無法使用的操作碼通常回傳“FALSE”狀態,Tapscript會將它們回傳“TRUE”狀態,只要腳本中存在這些操作碼,你就可以無條件地使用它,而實際的好處是可以將操作碼重新定義為任意值,并且不需要向后兼容,這種用新的操作碼擴展腳本的新機制,比現有的見證版本控制機制更易于協調和使用,后果是,它有望為將來位元幣腳本添加更多有用的操作碼開辟道路,

在這里插入圖片描述
由于還在學習當中,這里提供給大家官方介紹鏈接(https://bitcoinops.org/en/topics/tapscript/),希望共同學習交流!


總結

簡而言之,Schnorr對可擴展性和交易隱私(而不是交易鏈接隱私)具有多個意義,效率的提高開放了更復雜的多重簽名交易的使用,從而允許非常大的M-of-n方案和更高級的合同,與Taproot和Tapscript結合使用,Schnorr大大拓展了位元幣的隱私性和可擴展性,

Taproot(BIP 341)提高了位元幣腳本功能的隱私性、效率以及靈活性,使開發人員可以撰寫復雜的腳本,同時最大程度地減少對鏈上的影響,

在擴容方面,可節省復雜交易大量的交易費用,因為資料密集型腳本不再需要支付比標準的“支付到公鑰哈希”交易更高的費用,網路上的交易越復雜,效率上的收益就越大,
在隱私方面,BIP 341旨在最大程度地減少鏈上交易透露出的關于交易輸出花費條件的資訊,大多數使用Taproot的應用程式都可以使用基于密鑰的支出路徑,該路徑是私有的,并且可以推廣到m-of-n多重簽名策略,

Tapscript主要是位元幣腳本的升級!

參考

  1. 位元幣opcode:https://en.bitcoin.it/wiki/Script
  2. Tapscript [BIP342]:https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki
  3. Taproot [BIP341]:https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki
  4. Schnorr簽名[BIP340]:https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/293017.html

標籤:區塊鏈

上一篇:區塊鏈 Zilliqa是什么

下一篇:ADAMoracle去中心化預言機|ADAM參與者獎勵|維持生態供應

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • JAVA使用 web3j 進行token轉賬

    最近新學習了下區塊鏈這方面的知識,所學不多,給大家分享下。 # 1. 關于web3j web3j是一個高度模塊化,反應性,型別安全的Java和Android庫,用于與智能合約配合并與以太坊網路上的客戶端(節點)集成。 # 2. 準備作業 jdk版本1.8 引入maven <dependency> < ......

    uj5u.com 2020-09-10 03:03:06 more
  • 以太坊智能合約開發框架Truffle

    前言 部署智能合約有多種方式,命令列的瀏覽器的渠道都有,但往往跟我們程式員的風格不太相符,因為我們習慣了在IDE里寫了代碼然后打包運行看效果。 雖然現在IDE中已經存在了Solidity插件,可以撰寫智能合約,但是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測驗。 如果團隊管理的區塊節點多、 ......

    uj5u.com 2020-09-10 03:03:12 more
  • 谷歌二次驗證碼成為區塊鏈專用安全碼,你怎么看?

    前言 谷歌身份驗證器,前些年大家都比較陌生,但隨著國內互聯網安全的加強,它越來越多地出現在大家的視野中。 比較廣泛接觸的人群是國際3A游戲愛好者,游戲盜號現象嚴重+國外賬號安全應用廣泛,這類游戲一般都會要求用戶系結名為“兩步驗證”、“雙重驗證”等,平臺一般都推薦用谷歌身份驗證器。 后來區塊鏈業務風靡 ......

    uj5u.com 2020-09-10 03:03:17 more
  • 密碼學DAY1

    目錄 ##1.1 密碼學基本概念 密碼在我們的生活中有著重要的作用,那么密碼究竟來自何方,為何會產生呢? 密碼學是網路安全、資訊安全、區塊鏈等產品的基礎,常見的非對稱加密、對稱加密、散列函式等,都屬于密碼學范疇。 密碼學有數千年的歷史,從最開始的替換法到如今的非對稱加密演算法,經歷了古典密碼學,近代密 ......

    uj5u.com 2020-09-10 03:03:50 more
  • 密碼學DAY1_02

    目錄 ##1.1 ASCII編碼 ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,并等同于國際標準ISO/IE ......

    uj5u.com 2020-09-10 03:04:50 more
  • 密碼學DAY2

    ##1.1 加密模式 加密模式:https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html ECB ECB : Electronic codebook, 電子密碼本. 需要加密的訊息按照塊密碼的塊大小被分為數個塊,并對每個塊進 ......

    uj5u.com 2020-09-10 03:05:42 more
  • NTP時鐘服務器的特點(京準電子)

    NTP時鐘服務器的特點(京準電子) NTP時鐘服務器的特點(京準電子) 京準電子官V——ahjzsz 首先對時間同步進行了背景介紹,然后討論了不同的時間同步網路技術,最后指出了建立全球或區域時間同步網存在的問題。 一、概 述 在通信領域,“同步”概念是指頻率的同步,即網路各個節點的時鐘頻率和相位同步 ......

    uj5u.com 2020-09-10 03:05:47 more
  • 標準化考場時鐘同步系統推進智能化校園建設

    標準化考場時鐘同步系統推進智能化校園建設 標準化考場時鐘同步系統推進智能化校園建設 安徽京準電子科技官微——ahjzsz 一、背景概述隨著教育事業的快速發展,學校建設如雨后春筍,隨之而來的學校教育、管理、安全方面的問題成了學校管理人員面臨的最大的挑戰,這些問題同時也是學生家長所擔心的。為了讓學生有更 ......

    uj5u.com 2020-09-10 03:05:51 more
  • 位元幣入門

    引言 位元幣基本結構 位元幣基礎知識 1)哈希演算法 2)非對稱加密技術 3)數字簽名 4)MerkleTree 5)哪有位元幣,有的是UTXO 6)位元幣挖礦與共識 7)區塊驗證(共識) 總結 引言 上一篇我們已經知道了什么是區塊鏈,此篇說一下區塊鏈的第一個應用——位元幣。其實先有位元幣,后有的區塊 ......

    uj5u.com 2020-09-10 03:06:15 more
  • 北斗對時服務器(北斗對時設備)電力系統應用

    北斗對時服務器(北斗對時設備)電力系統應用 北斗對時服務器(北斗對時設備)電力系統應用 京準電子科技官微(ahjzsz) 中國北斗衛星導航系統(英文名稱:BeiDou Navigation Satellite System,簡稱BDS),因為是目前世界范圍內唯一可以大面積提供免費定位服務的系統,所以 ......

    uj5u.com 2020-09-10 03:06:20 more
最新发布
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:46:47 more
  • Hyperledger Fabric 使用 CouchDB 和復雜智能合約開發

    在上個實驗中,我們已經實作了簡單智能合約實作及客戶端開發,但該實驗中智能合約只有基礎的增刪改查功能,且其中的資料管理功能與傳統 MySQL 比相差甚遠。本文將在前面實驗的基礎上,將 Hyperledger Fabric 的默認資料庫支持 LevelDB 改為 CouchDB 模式,以實作更復雜的資料... ......

    uj5u.com 2023-04-16 07:28:31 more
  • .NET Core 波場鏈離線簽名、廣播交易(發送 TRX和USDT)筆記

    Get Started NuGet You can run the following command to install the Tron.Wallet.Net in your project. PM> Install-Package Tron.Wallet.Net 配置 public reco ......

    uj5u.com 2023-04-14 08:08:00 more
  • DKP 黑客分析——不正確的代幣對比率計算

    概述: 2023 年 2 月 8 日,針對 DKP 協議的閃電貸攻擊導致該協議的用戶損失了 8 萬美元,因為 execute() 函式取決于 USDT-DKP 對中兩種代幣的余額比率。 智能合約黑客概述: 攻擊者的交易:0x0c850f,0x2d31 攻擊者地址:0xF38 利用合同:0xf34ad ......

    uj5u.com 2023-04-07 07:46:09 more
  • Defi開發簡介

    Defi開發簡介 介紹 Defi是去中心化金融的縮寫, 是一項旨在利用區塊鏈技術和智能合約創建更加開放,可訪問和透明的金融體系的運動. 這與傳統金融形成鮮明對比,傳統金融通常由少數大型銀行和金融機構控制 在Defi的世界里,用戶可以直接從他們的電腦或移動設備上訪問廣泛的金融服務,而不需要像銀行或者信 ......

    uj5u.com 2023-04-05 08:01:34 more
  • solidity簡單的ERC20代幣實作

    // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; import "hardhat/console.sol"; //ERC20 同質化代幣,每個代幣的本質或性質都是相同 //ETH 是原生代幣,它不是ERC20代幣, ......

    uj5u.com 2023-03-21 07:56:29 more
  • solidity 參考型別修飾符memory、calldata與storage 常量修飾符C

    在solidity語言中 參考型別修飾符(參考型別為存盤空間不固定的數值型別) memory、calldata與storage,它們只能修飾參考型別變數,比如字串、陣列、位元組等... memory 適用于方法傳參、返參或在方法體內使用,使用完就會清除掉,釋放記憶體 calldata 僅適用于方法傳參 ......

    uj5u.com 2023-03-08 07:57:54 more
  • solidity注解標簽

    在solidity語言中 注釋符為// 注解符為/* 內容*/ 或者 是 ///內容 注解中含有這幾個標簽給予我們使用 @title 一個應該描述合約/介面的標題 contract, library, interface @author 作者的名字 contract, library, interf ......

    uj5u.com 2023-03-08 07:57:49 more
  • 評價指標:相似度、GAS消耗

    【代碼注釋自動生成方法綜述】 這些評測指標主要來自機器翻譯和文本總結等研究領域,可以評估候選文本(即基于代碼注釋自動方法而生成)和參考文本(即基于手工方式而生成)的相似度. BLEU指標^[^?88^^?^]^:其全稱是bilingual evaluation understudy.該指標是最早用于 ......

    uj5u.com 2023-02-23 07:27:39 more
  • 基于NOSTR協議的“公有制”版本的Twitter,去中心化社交軟體Damus

    最近,一個幽靈,Web3的幽靈,在網路游蕩,它叫Damus,這玩意詮釋了什么叫做病毒式營銷,滑稽的是,一個Web3產品卻在Web2的產品鏈上瘋狂傳銷,各方大佬紛紛為其背書,到底發生了什么?Damus的葫蘆里,賣的是什么藥? 注冊和簡單實用 很少有什么產品在用戶注冊環節會有什么噱頭,但Damus確實出 ......

    uj5u.com 2023-02-05 06:48:39 more