https://youtu.be/VHcgnRl2xPM?si=4d3gUKYvN_br-hSP
这部纪录片很有意思,从伊朗和沙特交锋的角度来诠释中东近代的动乱历史。
二战后,沙特(Saudi)、伊朗巴列维王朝(Pahlavi dynasty)和西方都保持着良好的关系。直到 1979 年伊斯兰革命成功,以霍梅尼(Ruhollah Khomeini)为代表的什叶派(Shias)统治了伊朗,并开始向以逊尼派(Sunnis)政府为主导的中东输出什叶派革命,令沙特和伊拉克(Iraq)倍感威胁。
沙特本身也是一个以原教旨瓦哈比教派(Wahhabism)为核心的神权国家,在进入石油时代发了大钱后,其国内的瓦哈比原教旨势力就一直寻求在全球宗教扩张的机会。苏联入侵阿富汗(Afghan–Soviet War)后,沙特、美国和巴基斯坦联合起来组建圣战军与苏联作战,巴基斯坦政府和沙特也正好联手将巴基斯坦从一个刚从英国手中解放的世俗国家转换为了一个充满极端色彩的伊斯兰国家,战争之初巴基斯坦有 200 座宗教学校,阿富汗战争结束后,这一数字变成了 24000 所。阿富汗战争结束后,圣战军们回到了家乡,巨大的失落感使得他们与社会脱节,成为当地巨大的隐患,若干年后,他们还会再度团结起来,如扎卡维(Abu Musab al-Zarqawi)和 ISIS。
趁着伊朗革命的机会,沙特和伊拉克联合起来,发动了一场对伊朗的战争,这场战争持续了 8 年,双方都损失惨重。军备不足的伊朗使用人海战术取得了战场的主动权,然而在反攻进入伊拉克境内后,萨达姆开始大规模使用生化毒气,给伊朗造成了惨烈的损失。对这一恶行,世界舆论保持沉默,这一事件使得伊朗彻底对西方失去了信任,也使得伊朗的革命更加极端化。
之后著名的智障布什用一罐洗衣粉发动了伊拉克战争(Iraq War),推翻了萨达姆(Saddam Hussein)及其逊尼派政权,并且将所有曾经为其效力的数十万复兴党党员全部逐出政府,这一举动使得伊拉克的逊尼派势力彻底失去了政治地位,而且为扎卡维等正在襁褓中的极端势力提供了大量的人员和装备,最终导致了 ISIS 的诞生。而且失去了萨达姆这一强势逊尼派领袖后,占人口多数的什叶派势力开始取得伊拉克的政治主导权,而伊朗正是伊拉克什叶派背后的核心支持者。简而言之,美国出面除掉了伊朗最大的敌人,并且将整个伊拉克拱手送给伊朗。
这部纪录片很有意思,从伊朗和沙特交锋的角度来诠释中东近代的动乱历史。
二战后,沙特(Saudi)、伊朗巴列维王朝(Pahlavi dynasty)和西方都保持着良好的关系。直到 1979 年伊斯兰革命成功,以霍梅尼(Ruhollah Khomeini)为代表的什叶派(Shias)统治了伊朗,并开始向以逊尼派(Sunnis)政府为主导的中东输出什叶派革命,令沙特和伊拉克(Iraq)倍感威胁。
沙特本身也是一个以原教旨瓦哈比教派(Wahhabism)为核心的神权国家,在进入石油时代发了大钱后,其国内的瓦哈比原教旨势力就一直寻求在全球宗教扩张的机会。苏联入侵阿富汗(Afghan–Soviet War)后,沙特、美国和巴基斯坦联合起来组建圣战军与苏联作战,巴基斯坦政府和沙特也正好联手将巴基斯坦从一个刚从英国手中解放的世俗国家转换为了一个充满极端色彩的伊斯兰国家,战争之初巴基斯坦有 200 座宗教学校,阿富汗战争结束后,这一数字变成了 24000 所。阿富汗战争结束后,圣战军们回到了家乡,巨大的失落感使得他们与社会脱节,成为当地巨大的隐患,若干年后,他们还会再度团结起来,如扎卡维(Abu Musab al-Zarqawi)和 ISIS。
趁着伊朗革命的机会,沙特和伊拉克联合起来,发动了一场对伊朗的战争,这场战争持续了 8 年,双方都损失惨重。军备不足的伊朗使用人海战术取得了战场的主动权,然而在反攻进入伊拉克境内后,萨达姆开始大规模使用生化毒气,给伊朗造成了惨烈的损失。对这一恶行,世界舆论保持沉默,这一事件使得伊朗彻底对西方失去了信任,也使得伊朗的革命更加极端化。
之后著名的智障布什用一罐洗衣粉发动了伊拉克战争(Iraq War),推翻了萨达姆(Saddam Hussein)及其逊尼派政权,并且将所有曾经为其效力的数十万复兴党党员全部逐出政府,这一举动使得伊拉克的逊尼派势力彻底失去了政治地位,而且为扎卡维等正在襁褓中的极端势力提供了大量的人员和装备,最终导致了 ISIS 的诞生。而且失去了萨达姆这一强势逊尼派领袖后,占人口多数的什叶派势力开始取得伊拉克的政治主导权,而伊朗正是伊拉克什叶派背后的核心支持者。简而言之,美国出面除掉了伊朗最大的敌人,并且将整个伊拉克拱手送给伊朗。
https://youtu.be/0aF_-J5n1RU?si=XKnsoB5I49hmEdtm
PBS 深入阿富汗访谈塔利班官员。说实话内容比较肤浅,这记者感觉脑子也有点问题,比如在一堆塔利班武装士兵的护卫下,问阿富汗老乡“你们觉得是美军时代的生活好,还是塔利班的统治下更好?”
不过倒是揭露了美军在阿富汗失败的一个非常简单的原因:缺乏一个长期可行的目标。布什作为美国历史上智商最低的总统,他对于推翻塔利班后的计划非常幼稚(他在隔壁伊拉克的计划更弱智),将塔利班完全排除出阿富汗的新权力结构后,但是又无法对广泛的乡村地区,尤其南部地区建立起新秩序,这就导致塔利班始终保持了在阿富汗内的活跃。奥巴马上台后将阿富汗战争的目的重新诠释为“解放妇女”,然而此时整个西方对阿富汗的战争利益链已经几乎牢不可破,阿富汗的重建资金只占美国对阿支出的 0.18%。
另外一个失败的主要因素是,美国缺乏和其他国家的合作和信任,特别是阿富汗的邻国,塔利班的发源地:巴基斯坦。巴基斯坦不相信美国有能力在阿富汗站稳脚,而且巴基斯坦相信塔利班最终会重新控制阿富汗,所以巴基斯坦为塔利班提供了持续不断的援助,正如片中的一位塔利班所言:“我们在巴基斯坦接受训练,巴基斯坦人给我们提供装备,然后我们返回阿富汗炸飞美国人。
* part 1: https://t.me/laiskynotes/235
* part 2: https://t.me/laiskynotes/253
* part 3: https://t.me/laiskynotes/256
PBS 深入阿富汗访谈塔利班官员。说实话内容比较肤浅,这记者感觉脑子也有点问题,比如在一堆塔利班武装士兵的护卫下,问阿富汗老乡“你们觉得是美军时代的生活好,还是塔利班的统治下更好?”
不过倒是揭露了美军在阿富汗失败的一个非常简单的原因:缺乏一个长期可行的目标。布什作为美国历史上智商最低的总统,他对于推翻塔利班后的计划非常幼稚(他在隔壁伊拉克的计划更弱智),将塔利班完全排除出阿富汗的新权力结构后,但是又无法对广泛的乡村地区,尤其南部地区建立起新秩序,这就导致塔利班始终保持了在阿富汗内的活跃。奥巴马上台后将阿富汗战争的目的重新诠释为“解放妇女”,然而此时整个西方对阿富汗的战争利益链已经几乎牢不可破,阿富汗的重建资金只占美国对阿支出的 0.18%。
另外一个失败的主要因素是,美国缺乏和其他国家的合作和信任,特别是阿富汗的邻国,塔利班的发源地:巴基斯坦。巴基斯坦不相信美国有能力在阿富汗站稳脚,而且巴基斯坦相信塔利班最终会重新控制阿富汗,所以巴基斯坦为塔利班提供了持续不断的援助,正如片中的一位塔利班所言:“我们在巴基斯坦接受训练,巴基斯坦人给我们提供装备,然后我们返回阿富汗炸飞美国人。
* part 1: https://t.me/laiskynotes/235
* part 2: https://t.me/laiskynotes/253
* part 3: https://t.me/laiskynotes/256
https://laisky.notion.site/Solidity-layout-and-access-of-storage-state-variables-simply-explained-6fb8c4eaca0d4004b361e4358257fa92?pvs=4
详细介绍了 solidity storage 的存储结构。每一个 smart contract 都有独立的 storage,由 2^{256}-1 个 slots 组成,每个 slot 的长度为 32 bytes。
在 solidity 中声明的 variables 都会在 slot 中从头开始逐一存放,它们存储的位置称为 slot index。
比较奇葩的是 dynamic variables,如 array、mapping 和长度超过 32 bytes 的 string。拿 array 来说,其 slot 内存放的只是其长度,它的成员数据实际上是连续存放在另外一组随机的 slots 里的,这组 slots 的首地址由
理论上,dynamic variables 是有可能和其他的数据的 slot 发生冲突的,但是考虑到 2^256 是一个足够巨大的空间,一般认为超过 2^100 就足够满足密码学的碰撞安全性要求了,ECC-256 的安全等级也就是 2^128,如果你不担心自己的私钥被别人碰撞出来,那么也不需要担心 dynamic variables 和其他 slot 碰撞。
#blockchain #evm
next: https://t.me/laiskynotes/245
详细介绍了 solidity storage 的存储结构。每一个 smart contract 都有独立的 storage,由 2^{256}-1 个 slots 组成,每个 slot 的长度为 32 bytes。
在 solidity 中声明的 variables 都会在 slot 中从头开始逐一存放,它们存储的位置称为 slot index。
比较奇葩的是 dynamic variables,如 array、mapping 和长度超过 32 bytes 的 string。拿 array 来说,其 slot 内存放的只是其长度,它的成员数据实际上是连续存放在另外一组随机的 slots 里的,这组 slots 的首地址由
keccak256(slot index)
计算而来。理论上,dynamic variables 是有可能和其他的数据的 slot 发生冲突的,但是考虑到 2^256 是一个足够巨大的空间,一般认为超过 2^100 就足够满足密码学的碰撞安全性要求了,ECC-256 的安全等级也就是 2^128,如果你不担心自己的私钥被别人碰撞出来,那么也不需要担心 dynamic variables 和其他 slot 碰撞。
#blockchain #evm
next: https://t.me/laiskynotes/245
https://blogs.vmware.com/workstation/2024/05/vmware-workstation-pro-now-available-free-for-personal-use.html 个人 PC 跑虚拟机用户的大福音,Vmware Pro 对个人用户免费啦。
* VMware Fusion Pro Download
* VMware Workstation Pro Download
* VMware Fusion Pro Download
* VMware Workstation Pro Download
https://laisky.notion.site/Solidity-c48cc6d6c9924dd5a912e19edaef756c?pvs=4 最近学习 solidity 的一些简单笔记,作为一个 Web2 开发者,主要是厘清很多基础概念,实际的代码是不难的。 #blockchain
最新版的 tailscale 1.66 修改了 ACL 中
详细的威胁参考: https://tailscale.com/security-bulletins#ts-2024-005
如果想保持向后兼容性,最简单的修复是将 ACL 中的
"src": "*"
的定义,如果你为 exit node 设置了 "src": "*"
,然后在其他 node 上试图通过 tailnet 转发流量,可能会在升级后被阻断。详细的威胁参考: https://tailscale.com/security-bulletins#ts-2024-005
如果想保持向后兼容性,最简单的修复是将 ACL 中的
"src": "*"
修改为 "src": "autogroup:danger-all"
。
最近好像有点不顺,又遇到了一个把我惊吓到的 BUG,我的密码数据差点被 1Password 搞丢了!
我有两台 mac,一台是我日常使用的,另一台使用频率很低。刚才我在好几天没用过的 mac 上打开 1Password,发现它没能显示最新的数据。我以为是因为数据没同步,就远程连接另一台 mac 上打开 1Password,然后发现上面的最新的数据在短暂显示后立刻就消失了,全部被旧数据给覆盖了。
消失的数据是我昨天离线生成的冷钱包私钥,吓出我一身冷汗,找遍 App 都没有恢复历史记录的地方。好在最后在网页版的 1Password 上找到了 'View Item History' 的按钮,把历史数据恢复回来了。
我有两台 mac,一台是我日常使用的,另一台使用频率很低。刚才我在好几天没用过的 mac 上打开 1Password,发现它没能显示最新的数据。我以为是因为数据没同步,就远程连接另一台 mac 上打开 1Password,然后发现上面的最新的数据在短暂显示后立刻就消失了,全部被旧数据给覆盖了。
消失的数据是我昨天离线生成的冷钱包私钥,吓出我一身冷汗,找遍 App 都没有恢复历史记录的地方。好在最后在网页版的 1Password 上找到了 'View Item History' 的按钮,把历史数据恢复回来了。
刚遇到了一件很震惊的事情,我 iphone 上的 icloud 经常卡死,我也一直没当回事儿,一般重启一下就能解决。今天早上发现昨天相册里新增的几十张照片一直卡着没能同步到 icloud,我就随手重启了一下。然后重启后发现所有未同步的照片都彻底消失了😱。
BTW, 拍脑袋瞎猜,我倾向于是 icloud bug 卡死了 disk I/O,然后照片实际上全部存储于 Kernel Buffer 而没有落盘持久化,重启就全完了。
强烈建议 iPhone 用户立刻禁用 icloud drive!
BTW, 拍脑袋瞎猜,我倾向于是 icloud bug 卡死了 disk I/O,然后照片实际上全部存储于 Kernel Buffer 而没有落盘持久化,重启就全完了。
强烈建议 iPhone 用户立刻禁用 icloud drive!
看完一部老片 'unthinkable',稍微有一点点血腥暴力,非常政治不正确,但是很有意思。
这片给人感觉像是 CIA 拍来讽刺 FBI 的。CIA 使用各种毫无下限的手段保障国家安全,而 FBI 则只会遵守各种 Values 而被恐怖分子耍得团团转。人们和平太久已经忘了什么是你死我活的生存斗争。
It's not about the enemy.
It's about us.
Our weakness.
We're on the losing side,
We're afraid, they're not.
We doubt, they believe.
不过影片很巧妙地并没有选择自己的立场,留给观众自己评判。
这片给人感觉像是 CIA 拍来讽刺 FBI 的。CIA 使用各种毫无下限的手段保障国家安全,而 FBI 则只会遵守各种 Values 而被恐怖分子耍得团团转。人们和平太久已经忘了什么是你死我活的生存斗争。
It's not about the enemy.
It's about us.
Our weakness.
We're on the losing side,
We're afraid, they're not.
We doubt, they believe.
不过影片很巧妙地并没有选择自己的立场,留给观众自己评判。
看完 'Winter on Fire',讲述 2013 年底到 2014 年初的乌克兰人民抗议行动(Euromaidan,广场起义)。
俄罗斯傀儡,时任乌克兰总统亚努科维奇(Yanukovych)拒绝了和欧洲签署自由贸易协定,引起亲欧派的乌克兰人不满,引起大规模集会和抗议。因为抗议范围逐渐逼近议会所在地,亚努科维奇决定使用武力,武装部队使用实弹镇压,引起大规模民众伤亡。当时反对党领袖和亚努科维奇达成协议,亚努科维奇承诺在 2014 年底举行总统选举,但是引起激进反对派的不满,在公众集会上有人宣布次日 10 时将对总统府发起武装进攻,当夜凌晨,亚努科维奇逃亡俄罗斯,他所属的 Party of Regions 也宣告解体。
因为俄罗斯失去了亚努科维奇这个傀儡,乌克兰开始全面倒向西方。俄罗斯总统 Putin 为了维持对乌克兰的控制,挑起了持续八年顿巴斯战争(Battle of Donbas),并最终于 2022 年升级为全面入侵。 #ukraine
- summary by AI: https://ario.laisky.com/ETMUicGgYXg7O5cRlZl3kSkW2daLVxAKsWRzHhwn4-s
- youtube: https://youtu.be/yzNxLzFfR5w?si=PGJyXR0xvGRDfEy3
俄罗斯傀儡,时任乌克兰总统亚努科维奇(Yanukovych)拒绝了和欧洲签署自由贸易协定,引起亲欧派的乌克兰人不满,引起大规模集会和抗议。因为抗议范围逐渐逼近议会所在地,亚努科维奇决定使用武力,武装部队使用实弹镇压,引起大规模民众伤亡。当时反对党领袖和亚努科维奇达成协议,亚努科维奇承诺在 2014 年底举行总统选举,但是引起激进反对派的不满,在公众集会上有人宣布次日 10 时将对总统府发起武装进攻,当夜凌晨,亚努科维奇逃亡俄罗斯,他所属的 Party of Regions 也宣告解体。
因为俄罗斯失去了亚努科维奇这个傀儡,乌克兰开始全面倒向西方。俄罗斯总统 Putin 为了维持对乌克兰的控制,挑起了持续八年顿巴斯战争(Battle of Donbas),并最终于 2022 年升级为全面入侵。 #ukraine
- summary by AI: https://ario.laisky.com/ETMUicGgYXg7O5cRlZl3kSkW2daLVxAKsWRzHhwn4-s
- youtube: https://youtu.be/yzNxLzFfR5w?si=PGJyXR0xvGRDfEy3
https://laisky.notion.site/Bitcoin-101-past-present-and-future-69e2f8cc710746bea8c18ea68497ebc3
很长但是很有趣的文章,从 1933 年罗斯福打击私人黄金流通开始,介绍密码学朋克和数字加密货币的起源。
简而言之,无锚法币是中央政府对人民的剥削和控制,央行的历史就是一部通胀和剥削的历史。互联网和密码学的发展带动了个人主权运动的萌芽和发展,货币是一切社会贸易活动的基础,因此数字加密货币的出现是个人主权运动的必然产物,而 BTC 正是在这个背景下经过不断的尝试和改进后所产生的。
BTC 诞生之初只是为了解决分布式账本下的 double-spending 问题。毕竟分布式最大的难点就是形成共识,而拜占庭条件下达成真正去中心化分布式的共识几乎是不可能的。而 BTC Whitepaper 融合前人的工作,确立了以 PoW 为基础的共识机制,通过历史算力总量来确定主链,从而就交易历史达成了真正去中心化的共识。 #blockchain
next: https://t.me/laiskynotes/246
很长但是很有趣的文章,从 1933 年罗斯福打击私人黄金流通开始,介绍密码学朋克和数字加密货币的起源。
简而言之,无锚法币是中央政府对人民的剥削和控制,央行的历史就是一部通胀和剥削的历史。互联网和密码学的发展带动了个人主权运动的萌芽和发展,货币是一切社会贸易活动的基础,因此数字加密货币的出现是个人主权运动的必然产物,而 BTC 正是在这个背景下经过不断的尝试和改进后所产生的。
BTC 诞生之初只是为了解决分布式账本下的 double-spending 问题。毕竟分布式最大的难点就是形成共识,而拜占庭条件下达成真正去中心化分布式的共识几乎是不可能的。而 BTC Whitepaper 融合前人的工作,确立了以 PoW 为基础的共识机制,通过历史算力总量来确定主链,从而就交易历史达成了真正去中心化的共识。 #blockchain
next: https://t.me/laiskynotes/246
https://laisky.notion.site/How-an-empty-S3-bucket-can-make-your-AWS-bill-explode-ba9daae3dee741268372aa745d6a4c37?pvs=4
这太吓人了。任何人对你的 aws s3 bucket 发送一个 PUT 请求。即使他的请求被拒绝,你也会被扣费。也就是说,只要你泄漏了你的 S3 bucket 名称,你的账单就随时可能被打爆😨。
类似案例和讨论:
* https://www.reddit.com/r/aws/comments/prukzi/does_s3_charge_for_requests_to/
* https://www.reddit.com/r/aws/comments/1cg7ce8/how_an_empty_private_s3_bucket_can_make_your_bill/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
这太吓人了。任何人对你的 aws s3 bucket 发送一个 PUT 请求。即使他的请求被拒绝,你也会被扣费。也就是说,只要你泄漏了你的 S3 bucket 名称,你的账单就随时可能被打爆😨。
类似案例和讨论:
* https://www.reddit.com/r/aws/comments/prukzi/does_s3_charge_for_requests_to/
* https://www.reddit.com/r/aws/comments/1cg7ce8/how_an_empty_private_s3_bucket_can_make_your_bill/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
1992 年的这篇论文 'Pricing via Processing or Combatting Junk Mail' 最早提及了 PoW 的思想。
PoW 的想法最早被应用于反垃圾邮件领域,简而言之,要想保持匿名性的同时防止滥用,最简单的方式就提高发送者的成本。作者提出了为发信者构建一个 Pricing Function,发信者必须使用该函数为邮件计算出一个值,以证明自己为这封邮件付出了相当的计算代价,而接收者可以用很小的代价验证这个值。
这一思想后来在 1997 年的 HashCash 系统中得到应用,Adam 提出了利用构造 partial hash collision 实现任意计算复杂度挑战的方式,这一思想后来直接被 Nakamoto 应用于 BTC 的 PoW 算法中,BTC 中通过构造区块哈希的前缀 0 的个数来实现 PoW。
我有一个大胆的想法,现在简历不是也担心滥投吗,企业可以要求发送者提供包含 JD、CV 信息和时间戳的 PoW… #blockchain
Read more: https://t.me/laiskynotes/222
PoW 的想法最早被应用于反垃圾邮件领域,简而言之,要想保持匿名性的同时防止滥用,最简单的方式就提高发送者的成本。作者提出了为发信者构建一个 Pricing Function,发信者必须使用该函数为邮件计算出一个值,以证明自己为这封邮件付出了相当的计算代价,而接收者可以用很小的代价验证这个值。
这一思想后来在 1997 年的 HashCash 系统中得到应用,Adam 提出了利用构造 partial hash collision 实现任意计算复杂度挑战的方式,这一思想后来直接被 Nakamoto 应用于 BTC 的 PoW 算法中,BTC 中通过构造区块哈希的前缀 0 的个数来实现 PoW。
我有一个大胆的想法,现在简历不是也担心滥投吗,企业可以要求发送者提供包含 JD、CV 信息和时间戳的 PoW… #blockchain
Read more: https://t.me/laiskynotes/222