買以太坊 買以太坊
Ctrl+D 買以太坊
ads

FLAG:TinyRam指令集和電路約束-ODAILY_ETH

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被設置為的最低有效位。

《華爾街日報》:Justin Sun正在評估購買FTX資產的可能性:11月22日消息,Justin Sun表示,他的同事正在評估從SBF手上購買FTX資產的可能性。Justin Sun周二在新加坡接受采訪時稱,我們對任何形式的交易持開放態度,我認為所有選項都已經擺到了桌面上。現在我們正在一項一項地評估資產,但據我所知,這個過程會很長,因為他們(FTX)已經進入了破產程序。[2022/11/23 7:57:51]

比較操作

比較操作中的指令每一個都不會修改任何寄存器;比較的結果存儲在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輸入。

輸出操作

以太坊基金會研究員Justin Drake模型顯示ETH仍是“通脹資產”:8月12日消息,上周四激活的的以太坊“倫敦”升級開啟了向以太坊 2.0 過渡的新時代,這是以太坊區塊鏈過渡到權益證明(PoS)共識機制的倒數第二步,本次升級中最受關注的就是以太坊改進提案 (EIP) 1559,根據最新數據顯示,已有98.2%的以太坊客戶端完成升級,而這也是為什么EIP-1559能夠快速成為社區主流的原因。

本文撰寫時,總計有32643.1?ETH被銷毀(價值約合101,724,392.33美元),但按照目前銷毀速度(每分鐘銷毀 2.3 枚 ETH)并沒有真正使 ETH 成為通貨緊縮資產,只是降低了當前通貨膨脹率。事實上,即使以太坊 2.0 過渡完成,ETH仍將保持通脹。根據以太坊基金會研究員Justin Drake構建的一個模型顯示,即便有更多驗證者加入以太坊網絡,同時ETH質押年回報率(APR)/收益率維持在 6%,每年ETH供應量也“只會”減少160萬枚,這意味著ETH年供應率被降低至1.4%,即ETH代幣仍是一種通脹資產,只是通縮壓力更大而已。(cointelegraph)[2021/8/13 1:51:53]

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

指令集約束

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文件夾下。

Manta Network 聘請Coinbase法律顧問Pual Hastings開展隱私DeFi合規:Manta Network Victor Ji在近期的活動中表示,Manta一直密切關注隱私和DeFi領域監管環境,并認識到遵守法規的重要性,相信這樣做不會以犧牲隱私為代價; 因此Manta選擇了從Coinbase初創開始就為其提供法律咨詢的Pual Hastings解決外部的合規性和監管問題。

Pual Hastings是全球頂尖律師事務所之一,在金融科技方面有非常豐富的經驗。曾于協助Coinbase在美國北卡羅來納州通過了House Bill 86法案,最終修訂了虛擬貨幣的法律定義,推進美國政府對加密貨幣業務的態度更加友好。[2021/4/14 20:18:08]

位操作約束

?and約束公式:

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

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

2.結果編碼約束

3.計算結果非全0約束

4.flag約束

?or約束公式:

具體約束步驟如下:

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

聲音 | Weiss Ratings:Tether在沒有完成合規審計前 其它證據都不足以完全信任:Weiss Ratings在推特上稱,盡管彭博聲稱目睹了銀行對賬單,證明Tether確實擁有支撐USDT的相應美元儲備,但這是遠遠不夠的。我們再說一遍:Tether還沒有完成正式合規審計,沒有它,所有這些說法都不足以得到真正的支持。昨日報道,巴哈馬央行10月財報顯示,Tether 公司并無在 Deltec 銀行存有超過18億美元存款。Bitfinex 股東趙東回應該報告并不準確,巴哈馬央行沒有收錄離岸美元。相關跨境匯款行業人士表示,如果是跨境業務的話,確實有這個可能,不排除 Deltec 在美國某銀行中有個頭寸賬戶。關于Tether真實美元儲備多有爭議,此事最終有待Tether公布可靠證據。[2018/12/27]

2.結果編碼約束

3.計算結果非全0約束

4.flag約束

?xor約束公式:

具體約束步驟如下:

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

步驟2,3,4同上

?not約束公式:

具體約束步驟如下:

步驟2,3,4同上

整數操作約束

?add:約束公式:

具體約束步驟如下:

BitInfoCharts預測:比特幣的繁榮創造了大概在2萬到20萬位百萬富翁:今年1月份,BitInfoCharts的發言人曾表示,雖然無法準確的知道的。但是他猜測,由比特幣繁榮創造的百萬富翁大概在2萬到20萬之間。這可能意味著全球最富有的20%的人中有1%至少從比特幣中獲得了部分財富。目前三個最大的比特幣錢包包含了超過99974枚比特幣。即使在今天的比特幣價格低至6772美元時,這三個錢包的價值也分別在6770億美元到12.6億美元之間。相比之下,全球最富有的Jeff Bezos目前身價估值為1120億美元。[2018/4/10]

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

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

3.編碼結果約束

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

1.計算過程約束

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

3.符號位約束

?mull、umulh、smulh約束公式:

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。

關于我們

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

微信公眾號:Sin7Y

GitHub|Twitter|Telegram|Medium|Mirror|HackMD|HackerNoon

Tags:TINFLAGRAMETHpolkadotstingrayFLAG價格UltramanDogeethereal詞源

歐易okex官網
DAO:DAO商業模式的創新特質-ODAILY_ING

組織結構 與由一群股東根據股份比例代表組織行使所有權的傳統的集中式自治組織相比,DAO的新形式是區塊鏈技術帶來的組織結構上的突破.

1900/1/1 0:00:00
GAMES:GameStop熊市殺入NFT交易,老牌游戲零售商借Web3煥發第二春-ODAILY_WAGMIGAMES

GameStop基于以太坊Layer2的NFT市場上線后,引發了極大的關注。這個曾經的美股“占領華爾街“事件的主角,如今靠NFT煥發第二春.

1900/1/1 0:00:00
Polkadot:這份波卡建設者指南請查收-ODAILY_shadowfi幣處理結果

“波卡知識圖譜”是我們針對波卡從零到一的入門級文章,我們嘗試從波卡最基礎的部分講起,為大家提供全方位了解波卡的內容,當然這是一項巨大的工程,也充滿了挑戰.

1900/1/1 0:00:00
SEA:王峰:一年來NFT交易市場正在悄然演變的十五條觀察和猜想-ODAILY_PEN

作者于2007年前在金山軟件先后負責計算機反病產品和數字娛樂事業部,其后創辦藍港互動專注于從事游戲設計制作及發行,從PC端游、網頁游戲到手機游戲,直至2014年香港上市.

1900/1/1 0:00:00
SIG:一文讀懂EthSign:如何實現基于區塊鏈的「簽字畫押」?-ODAILY_SIGN

千百年來,「簽字畫押」一直都是現實世界中最具法律效力的個人承諾形式,譬如常見的買賣合同、借貸協議、書信請帖等等,只要落款有個人簽名,基本都直接代表簽名方,并可理解為達成經簽名方認可的契約.

1900/1/1 0:00:00
NFT:波聯儲增加7億枚USDC儲備保障USDD掛鉤,當前USDD抵押率超280%-ODAILY_LIME

據官方消息,在市場極端情況下,波場聯合儲備已增加7億枚USDC儲備來捍衛USDD掛鉤。 Animoca Brands旗下NFT系列Mocaverse宣布推遲鑄造:金色財經報道,Animoca B.

1900/1/1 0:00:00
ads