Forwarded from آزمایشگاه بلاکچین نویان (S.M. Hosseini)
https://www.aparat.com/v/9FgN0
دکتر فرخ لقا معظمی: مقدمهای بر ریاضیات
Zero-knowledge proof
🌐 Join us: @NoyanBlockchainLab
دکتر فرخ لقا معظمی: مقدمهای بر ریاضیات
Zero-knowledge proof
🌐 Join us: @NoyanBlockchainLab
آپارات - سرویس اشتراک ویدیو
دکتر فرخ لقا معظمی: مقدمهای بر ریاضیات اثبات هیچدانشی
سخنرانی دکتر فرخ لقا معظمی، استادیار پژوهشکده فضای مجازی دانشگاه شهید بهشتی با موضوع «مقدمهای سیگما پروتکل» در تاریخ 3 اسفند 1401 در «کارگاه مقدماتی محاسبات امن» ارائه شد.
«کارگاه مقدماتی محاسبات امن» توسط انجمن رمز ایران و با همکاری پژوهشکده فضای مجازی…
«کارگاه مقدماتی محاسبات امن» توسط انجمن رمز ایران و با همکاری پژوهشکده فضای مجازی…
Forwarded from 𝕾𝖎𝖓𝖆
آزمایشگاه بلاکچین نویان
https://www.aparat.com/v/9FgN0 دکتر فرخ لقا معظمی: مقدمهای بر ریاضیات Zero-knowledge proof 🌐 Join us: @NoyanBlockchainLab
** پروتکل سیگما به بیان ساده تر :
گزیده ای که ارائه کردیم مفهوم پروتکل های سیگما را توضیح می دهد که معمولاً در رمزنگاری برای اثبات دانش یک راز بدون افشای خود راز استفاده می شود. در اینجا توضیح دقیق تری از ریاضیات پشت پروتکل های سیگما آورده شده است:
ابتدا اجازه دهید در مورد مسئله لگاریتم گسسته صحبت کنیم.
در یک گروه، اگر :
g^x = y، x
لگاریتم گسسته y نسبت به پایه g است. دشواری محاسبه لگاریتم های گسسته اساس بسیاری از سیستم های رمزنگاری است.
پروتکل سیگما خانواده ای از پروتکل های سه حرکتی با مرحله
* تعهد،
* چالش و
* پاسخ است.
در رمزنگاری، یک پروور میخواهد تأییدکننده را متقاعد کند که رازی را میداند.
تأیید کننده می خواهد مطمئن شود که اثبات کننده راز را می داند، بدون اینکه چیز دیگری در مورد راز بیاموزد.
فرمت یک پروتکل سیگما:
- تعهد: اثبات کننده تعهدی از راز آنها را برای تأیید کننده می فرستد.
- چالش: تأیید کننده یک چالش تصادفی را برای اثبات کننده ارسال می کند.
- پاسخ: اثبات کننده به چالش به گونه ای پاسخ می دهد که نشان دهد
آگاهی از راز در گزیده ای که ارائه کردیم، این پروتکل شامل اثبات دانش لگاریتم گسسته y1 با توجه به پایه g1 و لگاریتم گسسته مرتبط دیگری از y2 با توجه به پایه g2 است.
بیانیه رسمی که آنچه را که در این پروتکل اثبات می شود تعریف می کند:
PK\{(x):y_{1}=g_{1}^{{x}}\land y_{2}={(g_{2}^{a})}^{{x}}g_{2 }^{b}\}
این نماد اثبات دانشی را تعریف میکند که اثباتکننده یک x را میداند به طوری که:
y1 = g1^x و y2 = (g2^a)^x * g2^b.
برای اثبات این دانش، prover به یک مقدار تصادفی r متعهد می شود و تعهدات مربوط به این مقدار را با توجه به مبانی مربوطه محاسبه می کند.
سپس این تعهدات برای تایید کننده ارسال می شود. سپس تأیید کننده یک مقدار تصادفی c را تولید می کند و آن را به عنوان یک چالش به اثبات کننده می فرستد. اثباتکننده پاسخی را محاسبه میکند که چالش تأییدکننده را برآورده میکند و آن را به تأییدکننده میفرستد.
Prover این فرآیند را برای تعداد ثابتی از راندها تکرار میکند و اگر پاسخها در هر دور
ثابت باشد، تأییدکننده اثبات را میپذیرد. ویژگی کلیدی ریاضی که امنیت این پروتکل را تضمین می کند، سختی مسئله لگاریتم گسسته است.
اگر اثبات کننده بتواند دانش لگاریتم گسسته را بدون آشکار کردن مقدار خود x ثابت کند، به این معنی است که آنها از راز آگاهی دارند.
پروتکلهای سیگما با استفاده از ویژگیهای ریاضی گروه زیربنایی، همراه با تصادفیسازی و اثباتهای دانش صفر به این امر دست مییابند.
به طور خلاصه، پروتکلهای سیگما ابزار قدرتمندی در رمزنگاری مدرن هستند که بدون افشای اطلاعات حساس، اثبات دانش کارآمد و مطمئن را ممکن میسازد.
سینا نقشبندی - پایتون dev
گزیده ای که ارائه کردیم مفهوم پروتکل های سیگما را توضیح می دهد که معمولاً در رمزنگاری برای اثبات دانش یک راز بدون افشای خود راز استفاده می شود. در اینجا توضیح دقیق تری از ریاضیات پشت پروتکل های سیگما آورده شده است:
ابتدا اجازه دهید در مورد مسئله لگاریتم گسسته صحبت کنیم.
در یک گروه، اگر :
g^x = y، x
لگاریتم گسسته y نسبت به پایه g است. دشواری محاسبه لگاریتم های گسسته اساس بسیاری از سیستم های رمزنگاری است.
پروتکل سیگما خانواده ای از پروتکل های سه حرکتی با مرحله
* تعهد،
* چالش و
* پاسخ است.
در رمزنگاری، یک پروور میخواهد تأییدکننده را متقاعد کند که رازی را میداند.
تأیید کننده می خواهد مطمئن شود که اثبات کننده راز را می داند، بدون اینکه چیز دیگری در مورد راز بیاموزد.
فرمت یک پروتکل سیگما:
- تعهد: اثبات کننده تعهدی از راز آنها را برای تأیید کننده می فرستد.
- چالش: تأیید کننده یک چالش تصادفی را برای اثبات کننده ارسال می کند.
- پاسخ: اثبات کننده به چالش به گونه ای پاسخ می دهد که نشان دهد
آگاهی از راز در گزیده ای که ارائه کردیم، این پروتکل شامل اثبات دانش لگاریتم گسسته y1 با توجه به پایه g1 و لگاریتم گسسته مرتبط دیگری از y2 با توجه به پایه g2 است.
بیانیه رسمی که آنچه را که در این پروتکل اثبات می شود تعریف می کند:
PK\{(x):y_{1}=g_{1}^{{x}}\land y_{2}={(g_{2}^{a})}^{{x}}g_{2 }^{b}\}
این نماد اثبات دانشی را تعریف میکند که اثباتکننده یک x را میداند به طوری که:
y1 = g1^x و y2 = (g2^a)^x * g2^b.
برای اثبات این دانش، prover به یک مقدار تصادفی r متعهد می شود و تعهدات مربوط به این مقدار را با توجه به مبانی مربوطه محاسبه می کند.
سپس این تعهدات برای تایید کننده ارسال می شود. سپس تأیید کننده یک مقدار تصادفی c را تولید می کند و آن را به عنوان یک چالش به اثبات کننده می فرستد. اثباتکننده پاسخی را محاسبه میکند که چالش تأییدکننده را برآورده میکند و آن را به تأییدکننده میفرستد.
Prover این فرآیند را برای تعداد ثابتی از راندها تکرار میکند و اگر پاسخها در هر دور
ثابت باشد، تأییدکننده اثبات را میپذیرد. ویژگی کلیدی ریاضی که امنیت این پروتکل را تضمین می کند، سختی مسئله لگاریتم گسسته است.
اگر اثبات کننده بتواند دانش لگاریتم گسسته را بدون آشکار کردن مقدار خود x ثابت کند، به این معنی است که آنها از راز آگاهی دارند.
پروتکلهای سیگما با استفاده از ویژگیهای ریاضی گروه زیربنایی، همراه با تصادفیسازی و اثباتهای دانش صفر به این امر دست مییابند.
به طور خلاصه، پروتکلهای سیگما ابزار قدرتمندی در رمزنگاری مدرن هستند که بدون افشای اطلاعات حساس، اثبات دانش کارآمد و مطمئن را ممکن میسازد.
سینا نقشبندی - پایتون dev
👍3
Forwarded from Joran Honig
What do you all think abt: https://twitter.com/HatforceSec/status/1671758690808913922
I feel like the paper is a bit of a stretch, and am worried this will kick off an "I got audited by chat gpt" wave.
I feel like the paper is a bit of a stretch, and am worried this will kick off an "I got audited by chat gpt" wave.
Unit 7: Transactions and Scripting
The bitcoin transaction noscript language, called Script, is a Forth-like reverse-polish notation stack-based execution language. If that sounds like gibberish, you probably haven't studied 1960s programming languages, but that's ok – we will explain it all in this chapter. Both the locking noscript placed on an UTXO and the unlocking noscript are written in this noscripting language. When a transaction is validated, the unlocking noscript in each input is executed alongside the corresponding locking noscript to see if it satisfies the spending condition.
https://learn.saylor.org/course/view.php?id=500§ionid=19139
The bitcoin transaction noscript language, called Script, is a Forth-like reverse-polish notation stack-based execution language. If that sounds like gibberish, you probably haven't studied 1960s programming languages, but that's ok – we will explain it all in this chapter. Both the locking noscript placed on an UTXO and the unlocking noscript are written in this noscripting language. When a transaction is validated, the unlocking noscript in each input is executed alongside the corresponding locking noscript to see if it satisfies the spending condition.
https://learn.saylor.org/course/view.php?id=500§ionid=19139
Saylor Academy
CS120: Bitcoin for Developers I | Saylor Academy
❤3
From now on, if you see a multisig unlocking noscript, you should expect to see an extra 0 in the beginning, whose only purpose is as a workaround to a bug that accidentally became a consensus rule.
https://learn.saylor.org/mod/book/view.php?id=36369&chapterid=18956
https://learn.saylor.org/mod/book/view.php?id=36369&chapterid=18956
CREATE opcode == the address being keccak256(rlp([deployer_address, nonce]))
Hamid list
CREATE opcode == the address being keccak256(rlp([deployer_address, nonce]))
Fun fact:
init code does not effect contract address
init code does not effect contract address
👍1
https://ethereum.stackexchange.com/questions/123506/how-to-upgrade-if-a-new-version-of-safe-is-released
https://github.com/safe-global/safe-contracts/blob/main/contracts/examples/libraries/Migrate_1_3_0_to_1_2_0.sol
delegate call in delegate call in order to perform upgradability
https://github.com/safe-global/safe-contracts/blob/main/contracts/examples/libraries/Migrate_1_3_0_to_1_2_0.sol
delegate call in delegate call in order to perform upgradability
Ethereum Stack Exchange
How to upgrade if a new version of Safe is released?
Is there any documentation available regarding upgrading my version of Safe if a new release comes out? In other words, how I would update/upgrade which Safe my proxy is pointing to?
Gnosis Safe is
Gnosis Safe is
Hamid list
https://ethereum.stackexchange.com/questions/123506/how-to-upgrade-if-a-new-version-of-safe-is-released https://github.com/safe-global/safe-contracts/blob/main/contracts/examples/libraries/Migrate_1_3_0_to_1_2_0.sol delegate call in delegate call in order…
This media is not supported in your browser
VIEW IN TELEGRAM
how any one can spent in ethereum looks like
* @dev This method can only be called once.
* If a proxy was created without setting up, anyone can call setup and claim the proxy.
* @dev This method can only be called once.
* If a proxy was created without setting up, anyone can call setup and claim the proxy.
https://levelup.gitconnected.com/how-to-allow-multi-sig-wallets-to-authenticate-with-your-dapp-8f8a74e145ea
https://docs.cow.fi/smart-contracts/settlement-contract/signature-schemes
https://docs.cow.fi/smart-contracts/settlement-contract/signature-schemes
Medium
How to allow multi-sig wallets to authenticate with your Dapp.
EIP-1271 defines a way to verify signatures through a smart contract, these are usually multisig wallets, this is how to allow the to auth.