編者按:本文來自PlatON,Odaily星球日報經授權轉載。前言
目前的主流公鏈項目不管是基于賬戶模型還是UTXO模型,交易轉賬地址與金額都是公開信息,易于追蹤。Zcash,Monero等實現了隱私Token,在主鏈實現隱私Token有幾個痛點:算法升級:密碼學算法發展較為迅速,新的算法應用到主鏈并且與現有系統適配需要很漫長的過程漏洞修復:主鏈的漏洞升級需要協調礦工或驗證人來配合升級,影響范圍較廣,周期較長基于智能合約的隱私Token則能做到靈活的算法方案,快速的漏洞修復,影響面較小,只影響到該隱私Token的用戶,是實現隱私Token的良好的平臺。簡介
隱私交易基于Alaya的WASM智能合約平臺PIP-13提案構建的隱私Token項目。該項目意在解決日益劇增的交易匿名化需求。通過零知識證明算法達到隱匿身份,算法插件化來滿足多種隱私的需求;支持隱私Token的獨立發行以及ARC20資產的隱私化;利用插件機制,做到算法的在線升級,做到對用戶的無感升級。合約架構
合約架構的主要滿足以下幾個目標:可擴展,整個框架能夠適配更多的算法,擴展隱私交易的生態。可升級,對于合約漏洞,如算法漏洞等,能夠進行快速升級,及時避免漏洞導致經濟損失。易于發行,Token的發行方不需要具備對算法原理的了解,僅需要判斷算法是否滿足需求,就能發行隱私Token。架構圖
上述架構圖中由如下模塊組成ConfidentialToken隱私Token合約,由Token發行方進行部署。Registry注冊表合約,ACL合約地址會注冊在Registry,ConfidentialToken每次交易都是通過Registry獲取ACL最新地址,這樣ACL可以進行動態升級。ACL訪問控制合約,負責管理隱私Token的注冊信息,驗證算法合約與存儲合約版本。TokenManagerToken管理合約,ACL關于ARC20合約存取操作都是通過TokenManager與ARC20合約進行交互。Validator驗證合約,實現對各種算法的驗證功能,每種驗證合約可以根據算法自定義賬戶地址。Storage存儲合約負責存儲每筆轉賬的必要信息,用于驗證是否存在雙花操作。ARC20標準Token合約從可擴展角度,開發者可以實現多種驗證算法,注冊到ACL合約中,就能供隱私Token發行方使用。從可升級的角度,ACL,Validator,Storage都可以進行動態升級,滿足了功能擴展、漏洞修復等不同升級的需求。從易于發行角度,項目方僅需要部署ConfidentialToken,即可實現隱私Token。算法原理
某地址將超19萬枚BNB轉入幣安,價值約5900萬美元:5月11日消息,Whale Alert數據監測顯示,bnb1fn開頭的匿名地址剛剛將191,698枚BNB轉入幣安,價值約5947萬美元。[2023/5/11 14:57:04]
算法概念和定義
票據note:借鑒Bitcoin的UTXO模型,一個票據"note"即是一個UTXO,其是對金額的加密后的表示,邏輯上包括金額"value"、屬主"owner"。金額就是該票據的密文形式;屬主信息是由該票據的spendingkey決定,在后續章節會進一步描述;JoinSplit交易:在本方案中,定義一個交易為多個票據和其他信息的集合。其他信息是指為驗證交易邏輯包含的必要的數據,包括零知識證明等。付款人payer,收款人payee:在一個交易里,指花費了票據的人,和擁有花費新創建的票據的權利的人。這里付款人,需要與發送者sender進行區分,后者是發送了交易給區塊鏈網絡的人;因此,sender可以與payer是同一個實體,也可以是被實際payee授權的一個第三方。方案介紹
密鑰和票據借鑒DKSAP協議,用戶的錢包需要包括兩個密鑰對,spendingkey-pair和viewingkey-pair:aspendingkey-pair:,;用于授權一個交易。用戶公開。aviewingkey-pair:,;用于審計/查看一個或者多個票據。用戶公開。當payer需要創建一個新的票據(outputnote)時,首先生成一個臨時密鑰ephemeralkeypair,,用payee的publicviewingkey一起生成一個sharedsecret。隨后,用sharedsecret和payee的一起生成一個該新票據的spendingkey-pair,記為。注:每個票據都有一個獨立的spendingkey-pair,該spendingkey-pair定義了該票據的ownership,誰知道該spendingkey-pair的私鑰部分,誰就具有花費該票據的權利。DKSAP的具體協議流程假設Bob(payee)的密鑰為:spendingkey-pair:,viewingkey-pair:;為橢圓曲線群的生成元。Alice(payer)先生成一個臨時密鑰對,然后將公鑰部分與放入Note數據中進行公開。Alice計算一個sharedsecret:,是一個滿足密碼安全的哈希函數。這里由于采用了ECDH原理,另一方Bob也可以計算。Alice計算本次交易中Bob的交易地址為:。Bob動態地檢查鏈上交易,試圖找到發送給他的Note。他可以根據每個Note中的,計算出相應的sharedsecret,然后計算對應的Note接收地址,與每個Note的接收地址進行比對,如果比對成功,則用背后的私鑰部分進行花費,這里。Transfer交易流程假設Alice需要轉賬給Bob7XATP,且Alice總共擁有票據包括:5XATP,:3XATP。在一個明文的JoinSplit交易里,,作為inputnotes,Alice會創建:7XATP,:1XATP,且指定、屬主信息分別為Bob和Alice。一、payerAlice創建一個交易臨時密鑰對,JoinSplitkey-pair:{,}。二、Alice計算inputnotecommitments如下:,,其中是指票據的notespendingkey的公鑰部分。Alice計算每個inputnote的簽名,以表示確實有權利花費。,。其中是票據的notespendingkey的私鑰部分。//這里把也扔到單個票據的簽名里,表示每個票據的屬主都認可當前的JoinSplitkey-pair的擁有者。這樣,不會造成攻擊者偽造一個新的JoinSplitkey-pair,在不改變交易數據的情況下,重新簽名交易進行重放攻擊。三、Alice計算outputnotecommitments如下:其中和是Alice通過DKSAP協議以及Bob的公鑰生成的notespendingkey的公鑰部分。Alice會將和的臨時密鑰的公鑰部分也公開,方便payee從鏈上找到屬于自己的票據。即公開,.四、Alice計算publicvalue。該變量是一個公開的數值,表示與外部賬戶系統(ARC20資產)的轉入轉出關系,即該值為正數時,表示有數量的Token轉出到外部賬戶(sender'saddress),如果該值為負數時,表示有數量的Token從外部賬戶(sender'saddress)轉入到隱私Token系統。例如一個典型的充值交易中的金額配平關系可能是形如:inputNotes=,outputNotes=,publicValue=-3ATP,表示sender的ATP賬戶中會凍結3個Token,同時會創建2個outputNotes,其金額總和為3,如果有任一項校驗失敗,則拒絕執行交易:驗簽;驗簽,;檢查,是否存在Noteregistry上;檢查,是否不存在Noteregistry上;驗證,如果驗證失敗,則拒絕執行交易;//這里我們省略了ZKproof相關的publicinputs,取決于具體的算法細節;九、如果上述驗證均通過,則合約更新Noteregistry狀態,即將銷毀,并創建。每個票據要包括:票據承諾,該票據的notespendingkey的公鑰部分,以及該票據的臨時密鑰的公鑰部分。十、如果上述驗證均通過,還需要處理對應數量的Token情況。如果為正數,則合約將向sender的外部地址中解凍數量的ATPToken;否則合約將從sender的外部地址凍結數量的ATPToken。模型定義
以太坊證明服務EAS現已支持證明與驗證任何類型的文件:金色財經報道,以太坊證明服務EAS(Ethereum Attestation Service)發推稱,已上線新功能,支持證明與驗證任何類型的文件。創作者可以生成其內容的哈希值,證明它,并允許其他人根據哈希值進行驗證。[2023/5/7 14:48:14]
在UTXO模型的基礎上,隱私Token支持5種主要的操作,鑄幣,銷毀,轉賬,充值,提幣。鑄幣:由Token的發行方發起的增發交易。
銷毀:由Token發行方發起的銷毀一定數量的Token的交易。
轉賬:由普通用戶發起的input總和與output總和相等的交易。
充值:充值,由普通用戶發起的input總和小于output總和的特殊轉賬交易。差值經Token縮放因子處理后為實際從ARC20轉入到隱私賬戶的Token數量,充值交易內部會從交易指定公開賬戶轉賬ARC20token到TokenManager合約賬戶。
提款:由普通用戶發起的input總和大于output總和的特殊轉賬交易。差值經Token縮放因子處理后為實際從隱私賬戶轉出到ARC20Token數量,提款交易內部會從TokenManager合約賬戶轉賬ARC20token到交易指定的公開賬戶。
合約交易交易結構
交易分為Proof,ExtraData,Signature三部分,Proof中保護有對UTXO證明與本次授權交易地址,ExtraData為明文數據,Signature為授權地址私鑰進行簽名,保證交易信息的完整性。
Reddit用戶發現7zip文件可能與隱藏在比特幣區塊鏈中的安阿桑奇有關:金色財經報道,根據Reddit社區 r/bitcoin 上的一篇帖子,發現了一個舊文件,該文件可能與維基解密的告密者和創始人阿桑奇有關。加密的7zip文件位于2017年1月5日發生的交易的輸出腳本中,并在區塊高度446,713處被開采。
作者還指出,該文件可以通過拼接特定交易的所有輸出腳本的pubkhash seg來獲得。[2023/2/13 12:02:32]
合約交易證明構造過程
一、構造證明數據,證明數據交給零知識證明處理。數據結構如下:
根據證明入參,生成如下證明結果作為交易證明入參:
二、不同類型的交易對應不同的附加數據,增加相應的附加數據,附加數據經過RLP編碼后得到附加數據字節流。TransferExtra對應轉賬、充值、提款三種類型交易。著重說下depositSignature,其是防止交易發送者不擁有publicOwner私鑰,就將其ARC20Token轉走。三、構造完整的機密交易信息,RLP編碼,授權地址對RLP編碼后數據簽名,進而得到完整的證明。合約執行流程
用戶發送上述幾種類型交易ConfidentialToken合約從注冊表中找到ACL的地址ConfidentialToken向ACL發送交易信息ACL根據ConfidentialToken注冊的信息找到驗證合約進行證明驗證Validator進行ZK驗證Validator校驗授權簽名如果是Deposit交易,Validator檢查depositsignatureValidator根據具體的算法產生CreateNoteDetailEvent事件ACL根據注冊的存儲合約進行更新數據Storage更新input,將inputnote進行刪除Storage更新output,創建outputnote如果是Deposit/Withdraw交易,調用TokenManager進行存取操作TokenManager調用ARC20進行轉賬操作ConfidentialToken對outputnote創建CreateNoteEvent事件ConfidentialToken對inputnote創建DestroyNoteEvent事件如果是Mint交易,創建MintEvent事件如果是Burn交易,創建BurnEvent事件合約事件
Bitstamp不活躍費用在客戶響應后取消:金色財經報道,盧森堡加密貨幣交易所Bitstamp周三表示,在聽取客戶意見后,該交易所取消了收取閑置費的計劃。首席執行官JB Graftieaux在一份聲明中說,我們已經聽到了客戶對不活動費的反應。我們考慮了所有人的擔憂,決定取消。
該公司上周五表示,計劃開始對那些余額不足200歐元且在過去12個月沒有任何活動的賬戶收取每月10歐元的費用。Bitstamp當時表示,在賬簿上保留不活躍的賬戶是一種成本。(coindesk)[2022/7/7 1:56:46]
上一次mint數據的hash;上一次burn數據的hash;完整的note信息;note的產生;note的銷毀;更改note備注;這些信息都需要通過事件獲取。MintEvent屬性類型索引描述mintHashh256否鑄幣交易的hashvalueu128否鑄幣金額描述:發行方需要記錄每次鑄幣的hash,下一次發行方鑄幣時需要前一次鑄幣的hash。第一次鑄幣時上一次鑄幣的hash為空。BurnEvent屬性類型索引描述burnHashh256否銷毀交易的hashvalueu128否鑄幣金額描述:發行方需要記錄每次銷毀的hash,下一次發行方銷毀時需要前一次銷毀的hash。第一次銷毀時上一次銷毀的hash為空。CreateNoteDetailEvent屬性類型索引描述noteHashh256是notehash值noteOwnerbytes否note屬主noteCipherbytes否note的金額和綁定數據用viewingpk加密之后的數據noteMetabytes否note的備注信息描述:屬主信息是ephemeralPk和signPk組成結構體的RLP值,用戶用私有的viewingSk和spendingSk判斷自己是否為屬主。判斷成功之后,用私有的viewingSk從noteCipher中解密出note的blinding和quantity。CreateNoteEvent屬性類型索引描述noteOwnerbytes是note屬主的hashnoteHashh256是note的hash值ownerbytes否note屬主描述:和CreateNoteDetailEvent是一一對應產生的。DestroyNoteEvent屬性類型索引描述noteOwnerbytes是note屬主的hashnoteHashh256是note的hash值ownerbytes否note屬主描述:每花費一個note就會觸發一個DestroyNoteEvent,用戶需要監聽此事件刪除已經花費的note。MetaDataEvent屬性類型索引描述noteHashh256是note的hash值noteMetabytes否note的備注信息描述:產生新的note備注和更改note備注時會觸發此事件。部署升級
ETH跌破900美元:行情顯示,ETH跌破900美元,現報899.47美元,日內跌幅達到15.76%,行情波動較大,請做好風險控制。[2022/6/19 4:37:47]
合約概念和定義
委員會:有權批準多簽交易的地址,在多簽交易規定的時間內,只有收集到不少于閾值的委員會簽名,多簽交易才算被批準,才能被發送到區塊鏈網絡。提案交易:需要委員會批準的多簽交易,規定時間內,委員會批準通過,發送到區塊鏈網絡執行交易,未批準通過,交易超時被刪除。模板合約:由于部署交易內容包括合約代碼,代碼量較大造成交易過大,所以采用模板合約,區塊鏈底層直接復制模板合約代碼。Clone創建合約:Clone創建時復制模板合約代碼,用新的初始化參數初始化合約,創建成功之后獲取新創建的合約的地址。合約升級:復制模板合約代碼,產生新的合約地址,舊合約的數據遷到新合約地址,舊合約銷毀。官方合約部署
一、部署Registry注冊表合約,用來管理ACL地址,每次ACL升級的同時向Registry注冊新地址。注冊表合約采用無私鑰地址部署,保證后續沒有人可以更改此合約。注冊表合約不支持合約升級。
二、部署MultiSign多簽合約,此合約用來管理ACL合約,后續升級都將通過多簽合約進行。確認多簽委員會名單和提案生效人數閾值,部署合約初始化時傳入確定好的值。三、部署ACL控制管理合約,部署過程中會clone出TokenManager合約。TokenManager合約和ARC20合約交互,轉入轉出token到TokenManager合約。
四、部署Validator驗證合約或者Storage存儲合約,這兩個合約的部署流程是一樣的,部署后都需要在ACL進行版本注冊。
官方合約升級
ACL合約升級
委員會通過MultiSign合約進行升級的部署,部署通過先部署模板合約以Clone方式進行合約的升級,升級的ACL合約數據也一并遷移過去。升級后ACL會更新在Registry的注冊信息,升級的過程是一筆交易,所以升級過程不會影響交易到調用方的使用。
Validator/Storage合約升級ACL合約對Validator和Storage合約進行版本控制,針對新特性、漏洞升級都會向ACL注冊新版本,使用方可以根據自行需要,進行升級。一個新版本注冊過程如圖:
委員會確定新版本,通過MultiSign對Validator/Storage合約進行注冊,注冊信息存儲ACL,供使用方查找。后面章節會講用戶如何升級。注冊版本信息注冊信息包括Verion,Address,Description三部分Verion由3個字段表示類型+主版本+子版本組成Address模板合約地址Description版本信息描述隱私Token合約部署
隱私Token合約是由用戶或項目發行方來發起部署的。
發布者向注冊合約請求獲取ACL最新地址發布者從ACL獲取驗證合約與存儲合約版本,選擇相應版本發布者將驗證合約與存儲合約版本及其它信息作為初始化信息部署隱私Token合約隱私Token合約向ACL合約進行注冊ACL根據隱私Token合約指定的版本號進行驗證合約部署ACL根據隱私Token合約指定的版本號進行存儲合約部署隱私Token合約升級
升級方向注冊合約請求獲取ACL最新地址升級方向ACL獲取升級合約版本升級方調用隱私Token合約的升級接口隱私Token合約會調用ACL的升級接口ACL找到隱私Token合約對應的驗證合約,調用驗證合約的遷移接口驗證合約根據升級模板合約進行合約升級ACL將升級后的驗證合約地址更新注冊信息底層:https://github.com/PlatONnetwork/PlatON-Go/tree/alaya-dev/feature-confidential-token隱私合約開源倉庫:https://github.com/PlatONnetwork/confidential-transaction
Tags:NOTETOKENTOKKENNOTE價格Fund Token Coin3X Short Tether Gold TokenSEO Token
“沒有比特幣,在牛市中哭泣。”幣圈老韭菜,說出了許多人的心聲。“3倍比特幣合約、FCoin跑路、國產山寨幣”,讓一度以為坐上財富列車的他,終發現這是一輛靈車。“牛市的熱鬧都是他們的,與我無關.
1900/1/1 0:00:00本期訪談來自Odaily星球日報的視頻采訪欄目合作方https://forkast.news/,經字幕化、授權后發布.
1900/1/1 0:00:00編者按:本文來自風火輪社區,作者:佩佩,Odaily星球日報經授權轉載。注:這篇內容提前于市場發展,牛市還請多一些想象空間.
1900/1/1 0:00:00回首2020,也許一些人會冠之以「DeFi元年」的稱謂,這是我們第一次看到去中心化金融迸發出蓬勃生機和強烈的感召力。我們毫不懷疑,這是一個好的時代,并且,還未到最好的時代.
1900/1/1 0:00:00編者按:本文來自鏈聞ChainNews,撰文:楊小猴,星球日報經授權發布。最近先有硬件錢包Ledger泄露27萬用戶信息,后有保險協議NexusMutual創始人HughKarp遭黑客攻擊37萬.
1900/1/1 0:00:002020年是魔幻的一年,不止在于疫情的肆虐反復,在加密數字世界,可能你炒1年幣,還不如年初持有比特幣以太坊到現在掙得多,你窮盡心力、傾盡錢財低點囤幣.
1900/1/1 0:00:00