以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > 狗狗幣 > Info

Sin7y團隊解讀:TinyRam 指令集和電路約束_TIN:RAM

Author:

Time:1900/1/1 0:00:00

簡介

Tinyram是一個簡單的RISC隨機存取機器,具有字節尋址的random-accessmemory和inputtapes。TinyRAM有兩個變體:一個遵循哈佛架構,一個遵循馮諾依曼架構(本文我們主要討論馮諾依曼架構)。

簡明計算完整性和隱私研究項目構建了證明TinyRAM程序正確執行的機制,而TinyRAM的設計是為了在這種情況下提高效率。它在“擁有足夠表達能力”和“足夠簡約”這兩個對立面之間取得平衡:

?當從高級編程語言編譯時,有足夠的表達能力來支持簡短高效的匯編代碼。

?小指令集,指令通過運算電路簡單驗證,利用SCIPR的算法和密碼機制實現高效驗證。

本文對于tinyram不再進行重復介紹,會對上一篇文章進行補充,然后重點是指令介紹和電路約束介紹。tinyram基礎介紹可以參考我們團隊上一篇文章:深入理解TinyRam

Tinyram指令集

Tinyram總共有29個指令,每條指令都由一個操作碼和最多三個操作數組成。一個操作數可以是一個寄存器的名稱。除非特別說明,否則指令不會單獨修改flag。每條指令默認將pc增加i(i%2^W),對于vnTinyram來說i=2W/8。

一般來說,第一個操作數是指令計算的目標寄存器,其他的操作數指定指令需要的參數,最后,所有指令都需要機器的一個周期來執行。

位操作

整數操作

這些是各種無符號和有符號的整數操作。在每種情況下,如果發生算術溢出或錯誤,flag被設置為1,否則被設置為0。

shift操作

??shl?指令?shlrirjA?將左移位ubit得到的W位string存儲在ri寄存器中。移位后的空白位置被填充為0。此外flag被設置為的最高有效位。

??shr?指令?shrrirjA?將右移位ubit得到的W位string存儲在ri寄存器中。移位后的空白位置被填充為0。此外flag被設置為的最低有效位。

Will Clemente:如果貝萊德的現貨ETF申請獲得批準那將是精心策劃好的:金色財經報道,Reflexivity Research聯合創始人Will Clemente在社交媒體發文稱,如果貝萊德的現貨ETF申請獲得批準,不可否認的是,Operation Chokepoint 2.0是精心策劃的,目的是驅逐加密原生公司,并引入與美國政府關系密切的大型傳統公司,以試圖控制比特幣/加密貨幣。[2023/6/16 21:42:46]

比較操作

比較操作中的指令每一個都不會修改任何寄存器;比較的結果存儲在flag中。

move操作

??mov?指令?movriA?將存儲到ri寄存器中。

??cmov?指令?cmovriA?如果flag=1,將存儲到ri寄存器中。否則ri寄存器的值不會改變。

Jump操作

這些jump和條件jump指令都不會修改寄存器和?flag?但是會修改?pc。

??jmp?指令?jmpA?將存儲到pc中。

??cjmp?指令?cjmpA?在?flag?=1的條件下將存儲到pc中,否則pc自增1。

??cnjmp?指令?cnjmpA?在?flag?=0的條件下將存儲到pc中,否則pc自增1。

Memory操作

這些是簡單的memoryload和store操作,其中memory的地址由立即數或寄存器的內容確定。這些是tinyram中唯一的尋址方式。。

輸入操作

該指令是唯一一個訪問兩個tapes中的任意一個的指令。第0個tape用于primary輸入,第1個tape用戶auxiliary輸入。

輸出操作

該指令表示程序已經完成了計算,因此不能再允許其他操作。

比特幣挖礦難度上調2.1%至52.35T,再創歷史新高:6月14日消息,BTC.com數據顯示,比特幣挖礦難度于今日19:27(區塊高度794304)迎來了挖礦難度調整,挖礦難度上調2.18%至52.35T,再創歷史新高。目前全網平均算力為383.70 EH/s。[2023/6/14 21:37:02]

指令集約束

Tinyram采用R1CS約束形式進行電路約束,具體形式如下:

一個R1CS約束,可以有a,b,c三個linear_combination表示,一個R1CS系統中的所有變量的賦值,可以分為兩個部分:primaryinput和auxilaryinput。Primary就是我們經常說的“statement”。auxiliary就是“witness”。

一個R1CS約束系統包含多個R1CS約束。每個約束的向量長度是固定的。

Tinyram在libsnark的代碼實現中大量使用了一些定制gadgtes來表述vm的約束以及opcode執行和memory的約束。具體代碼在gadgetslib1/gadgets/cpu_checkers/tinyram文件夾下。

位操作約束

??and?約束公式:

and的R1CS約束將參數1和參數2以及計算結果逐bit位進行乘法計算驗證,約束步驟如下:

1.計算過程約束,代碼如下:

2.結果編碼約束

3.計算結果非全0約束

Vitalik:以太坊需要改進的不僅是協議的功能,需要對應用程序和錢包進行深度改變:金色財經報道,以太坊創始人Vitalik Buterin發布《The Three Transitions》文章。Vitalik稱,當以太坊從一個年輕的實驗性技術過渡到一個成熟的技術棧,能夠真正為普通用戶帶來開放、全球和無需許可的體驗,堆棧需要大致同時經歷三個主要的技術過渡:向L2擴展過渡,每個人都轉向Rollup;向錢包安全過渡,每個人都使用智能合約錢包;向隱私過渡,確保保護隱私的資金轉移可行。

由于上述原因,這三個轉變至關重要。但它們也具有挑戰性,因為要妥善解決這些問題需要密切協調。需要改進的不僅是協議的功能;在某些情況下,我們與以太坊交互的方式需要從根本上改變,需要對應用程序和錢包進行深度的改變。[2023/6/9 21:27:01]

4.flag約束

??or?約束公式:

具體約束步驟如下:

1.計算過程約束,代碼如下:

2.結果編碼約束

3.計算結果非全0約束

4.flag約束

??xor?約束公式:

具體約束步驟如下:

1.計算過程約束,代碼如下:

步驟2,3,4同上

?not?約束公式:

OKX開放BRC20公共API,即將上線BRC20基礎服務入口:據OKX官方消息,OKX 宣布已上線 BRC20 公共 API,用戶可前往 OKX Web3 錢包,開發者文檔頁面查看。OKX 建立的 BRC20 解析行業標準已通過安全審計機構慢霧、CertiK 的安全審計。OKX 已開放 BRC20 公共 API,并即將上線 BRC20 基礎服務入口。

OKX 此前已發布 BRC20 瀏覽器,OKX Web3 錢包也已在 APP 端支持 Ordinals 市場。[2023/5/24 15:21:39]

具體約束步驟如下:

步驟2,3,4同上

整數操作約束

?add:?約束公式:

具體約束步驟如下:

1.計算過程約束,代碼如下:

2.解碼結果約束和boolean約束

3.編碼結果約束

?sub:?約束公式:sub約束比add稍微復雜一些,采用了一個中間變量表示a-b的結果,同時為了保證結果計算表示為正整數和符號的形式,給結果加上了2^w。具體約束步驟如下:

1.計算過程約束

2.解碼結果約束和boolean約束

3.符號位約束

?mull?、umulh、smulh?約束公式:

Alameda前CEO聘請前SEC執法主管代表她調查FTX倒閉事件:金色財經報道,Alameda Research前首席執行官Caroline Ellison已聘請前美國證券交易委員會執法主管Stephanie Avakian代表她繼續調查 FTX 倒閉事件。在SEC,Stephanie Avakian領導了針對Ripple、Elon Musk和Robinhood的訴訟。[2022/12/11 21:37:12]

mull相關的約束都涉及以下幾個步驟

1.計算乘法約束

2.計算結果編碼約束

3.計算結果flag約束

?udiv?、umod?約束公式:

B為除數,q商,r為余數。余數與需要滿足不能超過除數的條件。具體約束代碼如下:

shift操作約束

??shl、shr?約束公式

比較操作

比較操作中的指令每一個都不會修改任何寄存器;比較的結果存儲在flag中。比較指令包含cmpe、?cmpa?、cmpae、cmpg、cmpge?。比較指令可以分為兩類,分別為有符號數的比較和無符號數比較,兩者約束過程核心都利用了libsnark中實現的comparison_gadget。

其他剩余過程跟有符號數比較約束相同

move操作約束

??mov?約束公式:

mov的約束比較簡單,只需要確保將存儲到ri寄存器中,由于mov操作沒有修改flag,所以約束需要確保flag的值沒有產生變化。約束代碼如下:

??cmov?約束公式:

cmov的約束條件比mov復雜一些,主要mov的行為跟flag值的變化有關系,同時cmov不會修改flag,所以約束需要確保flag的值沒有變化,cmov的代碼如下:

Jump操作約束

這些jump和條件jump指令都不會修改寄存器和?flag?但是會修改?pc。

??jmp

Jmp操作約束pc值與指令執行結果一致,具體約束代碼如下:

??cjmp

cjmp根據flag條件進行跳轉,flag=1進行跳轉,否則pc自增1

約束公式如下:

約束代碼如下:

??cnjmp

cnjmp根據flag條件進行跳轉,flag=0進行跳轉,否則pc自增1

約束公式如下:

約束代碼如下:

Memory操作約束

這些是簡單的memoryload和store操作,其中memory的地址由立即數或寄存器的內容確定。這些是tinyram中唯一的尋址方式。。

??store.b?和?store.w

對于store.w取整個arg1val的值,對于store.b操作碼只會取arg1val的必要部分,約束代碼如下:

??load.b?和?load.w

這兩個指令我們要求從內存中加載的內容被存儲在instruction_results中,約束代碼如下:

輸入操作約束

??read

read操作跟tape有關,具體的約束規則是:

1.上一個tape中的內容被讀完,沒有內容可讀,不會讀取下一個tape。

2.上一個tape中的內容被讀完,沒有內容可讀,flag被設置為1

3.如果當前執行的指令是read,那么read讀取到的內容和tape輸入內容一致

4.從tape1以外的地方讀取內容,flag被設置為1

5.result為不為0,意味著flag為0

約束代碼:

輸出操作約束

該指令表示程序已經完成了計算,因此不能再允許其他操作

??answer

當程序的輸出值被接受,has_accepted會被設置為1,程序返回值能夠被正常接受意味著當前的指令為answner以及arg2value為0。

約束代碼如下:

其他

當然除了上述提到的一些指令相關的約束外,tinyram還有一些pc一致性、參數編解碼、內存檢查等各種約束。這些約束通過R1CS系統組合起來構成一個完成的tinyram約束系統。所以這也是R1CS形式的tinyram生成約束數量較多的根本原因。

這里引用一個tinyram介紹ppt的圖片,展示一個ERC20transfer用tinyram生成證明需要的時間消耗。

從上圖的例子可以得出結論:使用vnTinyram+zk-SNARKs驗證所有EVM操作是不可能的,只適合驗證少量的指令的計算驗證,可以使用vnTinyram驗證EVM的部分計算類型的opcode。

參考

tinyram介紹ppt:

https://docs.google.com/presentation/d/1lbyLmXhCry61fxWm8LLxPKhCYV67RcZaK3WL20Hb-t8/edit#slide=id.g5b38da04a0_0_21

關于我們

Sin7y成立于2021年,由頂尖的區塊鏈開發者和密碼學工程師組成。我們既是項目孵化器也是區塊鏈技術研究團隊,探索EVM、Layer2、跨鏈、隱私計算、自主支付解決方案等最重要和最前沿的技術。

微信公眾號:Sin7y

GitHub:Sin7y

Twitter:@Sin7y_Labs

Medium:Sin7y

Mirror:Sin7y

HackMD:Sin7y

HackerNoon:Sin7y

Email:contact@sin7y.org

來源:金色財經

Tags:FLAGRAMTINMOVFLAG價格GRAM加密貨幣行情INVESTINGMOV幣

狗狗幣
Dfinity基金會創始人Dominic Williams:首個真正的世界計算機 互聯網計算機區塊鏈_區塊鏈:Cryptosolartech

9月20日,由萬向區塊鏈實驗室主辦的第八屆區塊鏈全球峰會在上海舉行。Dfinity基金會創始人兼首席科學家DominicWilliams發表主題為《首個真正的世界計算機-互聯網計算機區塊鏈》的演.

1900/1/1 0:00:00
9月22日行情分析:沒行情、空倉觀望_SWAP:Uniswap

BTC日線上今天放量類十字星,上串下跳的走勢,雖然短期創了新低,但還好沒有跌破左側的18500的底部,沒行情。四小時周期雖然是個探底回升的走勢,但反彈的力度也不怎么樣,19000的位置站不穩.

1900/1/1 0:00:00
不要指望CeFi去拯救以太坊_ETH:ETHER

原文標題:《Don''tcountonCeFitoprotecttheEthereumnetwork》原文作者:NothingResearch原文編譯:Jack(0x137).

1900/1/1 0:00:00
不止Play to Earn 休閑鏈游平臺WAM的創新之路_TOKEN:DxChain Token

從2021年開始,鏈游迎來了發展的高速通道,層出不窮的鏈游讓市場出現了井噴之勢。鏈游的興起讓不少玩家和游戲開發者看到了PlaytoEarn的力量,但是隨著市場的發展,不少鏈游也因為各種原因遭到淘.

1900/1/1 0:00:00
LayerZero多鏈野心:值得關注的幾個生態項目_ERO:PlayerCoin

跨鏈去中心化金融應用的流動資金池是去中心化的,解決這些問題需要一種協議,該協議能夠實現跨鏈的互操作性和可組合性,同時解鎖加密網絡的新設計領域和可能性.

1900/1/1 0:00:00
首席官預測:隨著美聯儲對美元采取剎車措施 比特幣將強勁復蘇_WEB3.0:WEB3.0幣

在暴跌近一年后,隨著美聯儲將注意力轉向抑制美元上漲,比特幣可能很快就會觸底。OnlineBlockchainPlc首席執行官ClemChambers周一在接受StansberryResearch.

1900/1/1 0:00:00
ads