PURSUE ULTIMATE FACTS

2022-03-19
Git-style Repository on IPFS

In [ ]:
cd ~ && git clone --bare https://github.com/seii-saintway/demo-ga
In [ ]:
cd ~/demo-ga && git update-server-info
In [ ]:
git unpack-objects < objects/pack/*.pack
In [ ]:
rm -f objects/pack/*
Read More

2022-03-10
CQLT: Exploring a New Way to Tokenize Academic Publishing

复制引用许可代币:探索学术论文发表的代币化新方法

我们需要作为 NFT 复制引用许可证明的 ERC-1155 代币 CQLT。对这种复制引用许可币 CQLT 本身的需求是从 NFT 版权证明的需求中衍生而来的。它的发行由 NFT 所有者完全控制。它的精度为个位数,总量为人类人口数量,或者限量,或者不限总量。拥有一个这种复制引用许可币的人就拥有对于 NFT 进行一次复制引用的权利。NFT 作为异质代币,具有唯一性,流动性差,只在收藏品拍卖市场进行交易。

We need the ERC-1155 Copy and Quote License Token (CQLT) as a proof of NFT Copy and Quote License. The need for CQLTs is derived from the need for proof of copyright in NFTs. Its issuance is fully controlled by the NFT owner. Its precision is a single digit, and the total supply is either limited or unlimited, and can be as large as the human population. The person who owns one such CQLT has the right to copy and quote the NFT once. As a Non-Fungible Token, NFT is unique and has poor liquidity, and is only traded in the collectible auction market.

Read More

2022-03-06
Mirror Token

Mirror Token (MIR)

原文:https://docs.mirror.finance/protocol/mirror-token-mir


镜像代币MIR)是镜像协议的治理代币。目前,它必须被质押才能对活跃的提案进行投票,并且需要作为押金才能进行新的治理提案。在 Mirror 的未来迭代中,它将为协议提供进一步的用途,增加其效用和价值。

持有 MIR 代币的用户还可以通过从协议中的 CDP 头寸提取抵押品获得 MIR 奖励。

MIR 还用于激励用户通过质押 LP 代币来获得收益,这些 LP 代币是通过为 MIR 和 mAssets 提供流动性而铸造的。通过年度通胀所新铸造的 MIR 用来向用户支付收益,这会逐渐增加 MIR 的总供应量,直到第 4 年年底。


镜像代币供应

计划在 4 年内分发总共 370,575,000 个 MIR 代币。除此之外,不会再有新的 MIR 代币被引入供应。

累积分配时间表(以百万计)

创世纪 Y1 Y2 Y3 Y4
UNI空投 9.15 9.15 9.15 9.15 9.15
Luna 质押空投 9.15 9.15 9.15 9.15 9.15
Luna 质押奖励 0 18.3 18.3 18.3 18.3
mAsset LP 质押 0 89.2125 133.81875 156.121875 167.2734375
MIR LP 质押 0 20.5875 30.88125 36.028125 38.6015625
社区池 36.6 36.6 54.9 91.5 128.1
代币总供应 54.90 183.00 256.20 320.25 370.575
年通货膨胀率 (%) - 233.33% 40.00% 25.00% 15.71%

Genesis Token Distribution

镜像协议创世时共有 54.9M 个代币可用。这些代币的分配方式如下:

  • UNI 空投:16.66%(9.15M)代币将空投给 UNI 持有者。
  • LUNA 质押者空投:16.66%(9.15M)代币将空投给 LUNA 质押者。
  • 社区池:66.66% (36.6M) 代币将分配给社区池。

Final Token Distribution

由于通货膨胀,MIR 代币的总供应量将增加 4 年,直到总代币供应量达到 370.575M

第 4 年末的分配结构如下所示:

  • 空投:最初分配给 UNI 持有者和 LUNA 质押者的空投数量现在将占代币总供应量的 4.9%(18.3M)。
  • LUNA 质押奖励:4.9%(18.3M)将在镜像协议启动后的第一年分配给 LUNA 质押者。 MIR 将仅在第一年每 100,000 个区块(大约每周一次)分发给 Luna 质押者,从区块高度 920,000 开始。将每 100,000 个区块拍摄一次快照,以确定谁有资格获得质押奖励分配。
  • mAsset LP Staking:到第 4 年年底,45.1% (167.27M) 代币将分配给所有 mAsset 和 mAsset (mETH) 质押池。代币每天分配给每个质押池(最初每个 Mirror 和 mETH 13 对),基于与其他资产相比,它们的权重
  • MIR LP Staking:到第 4 年底,10.4% (38.6M) 代币平均分配到 MIR-UST 和 MIR-UST (mETH) 质押池。MIR-UST 对的初始权重为 300,大于权重 mAsset 数量(第一批 mAsset 有 100 个,列入白名单的 mAsset 有 30 个权重)。
  • 社区池:到第 4 年年底,将有 34.6%(128.1M)的 MIR 总供应量分配给社区池。

分配率(通货膨胀)

MIR 代币的通货膨胀率被设计为每年逐渐下降,直到在第 4 年年底达到 370.575M。在第 4 年结束后,将不再通过通货膨胀铸造 MIR 代币。


MIR 质押奖励

本节讨论 MIR 代币的质押奖励,这些奖励来自用于从市场回购 MIR 的交易费用。质押 LP 和 sLP 代币也会产生 MIR 奖励,这些奖励直接来自每个区块创建的新 MIR 代币。点击此处了解详情。

来自协议费用

MIR 代币质押者在每个区块收到 MIR 代币奖励,协议费用是从 CDP 提款产生的。协议费用从 CDP 抵押品中收取,并在发送到 Collector 合约后出售给 TerraUSD,以通过 Terraswap 购买 MIR。然后将 MIR 代币作为奖励分配给 MIR 质押者和选民,并按总股份的百分比进行分配。这个过程通过产生购买压力来平衡新 MIR 的产生。

来自提案创建费

每当创建新的治理提案时,都必须支付 MIR 代币的初始押金。如果投票未达到投票法定人数,则该押金将按比例分配给所有 MIR 质押者。

来自投票奖励

根据尚未达到投票法定人数的投票产生的协议费用和投票创建费用,voter_weight 用于确定在正在进行的投票中投票的用户之间分配的 MIR 代币数量。如果包括质押和投票奖励的总 MIR 治理奖励是 $R_{total}$ 是,

$$R_{passive}+R_{vote}$$

这里 $R_{passive}$ 是未投票的 MIR 质押者的奖励,并且 $R_{vote}$ 是对正在进行的提案已经投票了的用户的奖励。如果 voter_weight 是 $W_{vote}$, 并且对于第 $i$ 个提案,个人和全体所投的 MIR 是 $m_{\text{i}}$ 和 $M_{\text{i}}$,投票奖励 $R_{\text{vote}}$ 是,

$$\sum_{i=1}^n \frac{m_{\text{i}}}{M_{\text{i}}} \frac{W_{\text{vote}}R_{\text{gov}}}{n}$$

年利率计算

注意由于大多数 mAssets 的协议费用仅在其基础现实世界资产的交易时间内产生,因此在周末和节假日分配的实际奖励会低得多。

Mirror Web App 显示 MIR 质押奖励的年度百分比率。由于协议费用的波动性,MIR 质押 APR 计算使用过去 15 天每天的平均奖励

如果第 $i$ 天给 MIR 质押者的奖励为 $r_i$,总 MIR 质押量为 $M$,MIR 质押(365 天)的年化百分比为,

$${\sum_{i=1}^{15}{m_i} \over M} \times 365$$

其中应用了最近 15 天的奖励分配信息。此 APR 是在假设用户已对所有正在进行的治理提案进行投票的假设下计算的。

Read More

2022-03-04
Terra 白皮书

Terra Money:稳定性和采用

Evan Kereiakes、Do Kwon、Marco Di Maggio、Nicholas Platias

2019 年 4 月

原文:Terra Whitepaper

摘要

虽然许多人看到价格稳定的加密货币结合了法定货币和比特币的优点,但没有多少人有明确的计划采用这种货币。由于货币作为交换媒介的价值主要受其网络效应驱动,因此成功的新数字货币需要最大限度地采用才能发挥作用。我们提出了一种加密货币 Terra,它既价格稳定又受增长驱动。它通过稳定的挖矿激励措施实现弹性货币供应,实现价格稳定。它还使用其挖矿业务产生的铸币税作为交易激励,从而促进采用。法币经济和区块链经济都需要去中心化、价格稳定的货币协议。如果这样的协议成功,那么它将作为加密货币的最佳用例产生重大影响。

1 引言

加密货币的价格波动性是学术界和市场观察者研究得很透彻的问题(例如,参见 Liu 和 Tsyvinski,2018 年,Makarov 和 Schoar,2018 年)。大多数加密货币,包括比特币,都有预定的发行时间表,加上强烈的投机需求,导致价格剧烈波动。比特币的极端价格波动是其作为交换或价值储存媒介被采用的主要障碍。直观地说,没有人愿意用一种可能在几天内价值翻倍的货币进行支付,也没有人愿意用在交易结算之前其价值可能会大幅下降的货币进行支付。当交易需要更多时间时,问题会更加严重,例如对于抵押贷款或雇佣合同等延期付款,波动性会严重损害合同的一方,使得在这些环境中使用现有数字货币的成本高得令人望而却步。

Terra 协议解决这些问题的核心理念是,具有弹性货币政策的加密货币将保持稳定的价格,保留比特币的所有抗审查性,并使其可用于日常交易。然而,价格稳定性不足以广泛采用一种货币。货币本质上具有强大的网络效应:除非有足够数量的商户准备好接受,否则客户不太可能转向新货币,但与此同时,商户没有理由投入资源和教育员工接受新货币除非有大量客户需求。出于这个原因,比特币在支付领域的采用仅限于自行投资于加密货币的小企业的所有者。我们的信念是,虽然弹性货币政策是解决稳定性问题的方法,但有效的财政政策可以推动采用。此外,Terra 协议通过有效的财政支出制度为用户加入网络提供了强有力的激励,该制度由财政部管理,多个刺激计划竞争融资。也就是说,来自社区参与者的提案将由生态系统的其他部分进行审查,一旦获得批准,他们将获得资金,以增加采用率并扩大潜在的用例。Terra 协议在促进稳定性和采用之间取得平衡,代表了法定货币作为支付和价值储存手段的有意义的补充。

本文的其余部分安排如下。我们首先讨论协议以及如何通过校准矿工需求和使用原生挖矿 Luna 代币来实现和保持稳定性。然后,我们深入研究如何采用稳定的挖矿激励措施来消除经济性波动。最后,我们讨论了如何采用 Terra 的财政政策来有效激励推动代币的采用。

2 多法币挂钩货币政策

稳定币机制必须回答三个关键问题:

  • 如何定义价格稳定性?稳定性是一个相对的概念;为了吸引尽可能广泛的受众,稳定币应该与哪种资产挂钩?
  • 如何衡量价格稳定性?代币价格对于 Terra 区块链来说是外生的,有效、防腐败的价格反馈对于系统正常运行是必要的。
  • 如何实现价格稳定?当代币价格偏离目标时,系统需要一种方式向市场施加压力以使价格回到目标。

本节将详细说明 Terra 对上述问题的回答。

2.1 定义相对于区域法定货币的稳定性

稳定币的存在目标是保持其购买力。鉴于大多数商品和服务都是在国内消费的,因此创建跟踪当地法定货币价值的加密货币非常重要。尽管美元主导着国际贸易和外汇交易,但对于普通消费者来说,美元相对于他们所选择的记账单位表现出不可接受的波动性。

认识到货币的强大区域性,Terra 旨在成为一个与世界主要货币挂钩的加密货币家族。创世之后不久,该协议将发行与美元、欧元、人民币、日元、英镑、韩元和国际货币基金组织特别提款权(IMF SDR)挂钩的 Terra 货币。随着时间的推移,更多的货币将通过用户投票添加到列表中。TerraSDR 将成为该家族的旗舰货币,因为它对任何一种法定货币的波动性最低(Kereiakes,2018 年)。TerraSDR 是交易费用、矿工奖励和刺激赠款的计价货币。

然而,重要的是 Terra 货币能够获得共享流动性。出于这个原因,系统支持 Terra 货币之间以市场汇率进行的原子互换。用户可以立即以有效的韩元/美元汇率将 TerraKRW 换成 TerraUSD。这允许所有 Terra 货币共享流动性和宏观经济波动;一种货币的需求下降可以很快被其他货币吸收。因此,我们可以推断一组 Terra 货币的稳定性;在本文的其余部分,我们将松散地将 Terra 称为单一货币。随着 Terra 的生态系统添加更多货币,其原子交换功能可以成为跨境交易和国际贸易结算的即时解决方案。

2.2 用矿工预言机衡量稳定性

由于 Terra 货币在二级市场的价格对区块链来说是外生的,因此系统必须依靠去中心化的价格预言机来估计真实汇率。我们将价格预言机的机制定义如下:

  • 对于货币集合中的任何 Terra 子货币 C = TerraKRW, TerraUSD, TerraSDR… 矿工提交他们所认为的目标法定货币的当前汇率的投票。
  • 每 n 个区块,统计投票,将加权中值作为真实汇率。
  • 一定数量的 Terra 会奖励给那些在被选出的中位数 1 个标准差范围内投票的人。那些在此范围之外投票的人可能会受到削减其质押的惩罚。每次投票时,系统可能会校准受到惩罚和奖励的比例,以确保有足够多的矿工投票。

在实施去中心化预言机时已经提出了几个问题,但其中最主要的问题是选民有可能通过协调虚假价格投票来获利。将投票限制在对系统具有强烈既得利益的特定用户子集,即矿工,可以大大降低这种协调的可能性。价格预言机上的成功协调事件将导致矿工质押价值的损失比任何潜在收益都要高得多,因为 Luna 质押对系统是时间锁定的。 预言机还可以在添加和弃用 Terra 货币方面发挥作用。当预言机投票支持新的 Terra 货币满足提交阈值时,该协议可能会开始支持新的 Terra 货币。同样,在几个时期内未能获得足够数量的预言机投票可能会触发 Terra 货币的弃用。

2.3 通过一致的挖矿奖励实现稳定性

一旦系统检测到 Terra 货币的价格偏离其挂钩,它必须施加压力以使价格正常化。与任何其他市场一样,Terra 货币市场遵循挂钩货币的简单供需规则。即:

  • 在所有条件相同的情况下,收缩货币供应量将导致更高的相对货币价格水平。也就是说,当价格水平低于目标时,充分减少货币供应将将使价格水平恢复正常。
  • 在所有条件相同的情况下,扩大货币供应量将导致较低的相对货币价格水平。也就是说,当价格水平高于目标时,充分增加货币供应量将使价格水平恢复正常。

当然,紧缩货币供应不是免费的。像任何其他资产一样,资金需要从市场上购买。中央银行和政府通过各种机制承担锚定法币系统的收缩成本,包括干预、发行债券和短期工具从而产生利息支出,以及提高货币市场利率和准备金率要求从而损失税收。换句话说,中央银行和政府吸收了它们发行的挂钩货币的波动性。 类似地,Terra 矿工吸收了 Terra 供应的波动性。

  • 在短期内,矿工通过挖矿权利的稀释来吸收 Terra 收缩成本。在收缩期间,系统会铸造和拍卖更多的挖矿权利来回购和销毁 Terra。这会收缩 Terra 的供应,直到其价格回到挂钩,并暂时导致挖矿权利的稀释。
  • 从中长期来看矿工将获得增加的挖矿奖励。一、系统继续回购挖矿权利,直到达到固定目标供应,从而对可用挖矿权利产生长期可靠性。其次,系统增加了挖矿奖励,后面会详细介绍。

总之,矿工在短期内承担 Terra 波动的成本,同时在长期内得到补偿。与普通用户相比,矿工对系统的稳定性有着长期的既得利益,拥有投资的基础设施、训练有素的员工和高转换成本的商业模式。本节的其余部分将讨论该系统如何吸收短期波动并为 Terra 矿工创造稳定的长期激励。

2.4 矿工吸收短期 Terra 波动

Terra 协议在权益证明(PoS)区块链上运行,矿工需要质押原生加密货币 Luna 来挖掘 Terra 交易。在每个区块周期,协议从一组质押矿工中选出一个区块生产者,该区块生产者负责通过聚合交易、达成矿工之间的共识以及确保消息在短时间内具有高容错性地正确分发来产生下一个区块所需的工作。

区块生产者选举由活跃矿工的 Luna 质押大小加权。因此,Luna 代表 Terra 网络中的挖矿权利。类似于比特币矿工的哈希算力代表按比例生成比特币区块的几率,Luna 质押代表按比例生成 Terra 区块的几率。

Luna 也是抵御 Terra 价格波动的最直接防御措施。该系统使用 Luna 为 Terra 定价,同意成为希望以 Terra 的目标汇率交换 Terra 和 Luna 的任何人的对手方。更具体地说:

  • 当 TerraSDR 的价格 < 1 SDR 时,用户和套利者可以向系统发送 1 TerraSDR 并获得价值 1 SDR 的 Luna。
  • 当 TerraSDR 的价格 > 1 SDR 时,用户和套利者可以向系统发送价值 1 SDR 的 Luna 并获得 1 TerraSDR。

无论市场状况如何,系统都愿意尊重目标汇率,从而使 Terra 的市场汇率保持在目标汇率附近的窄幅区间。当 1 TerraSDR = 0.9 SDR 时,套利者可以通过从系统中将 TerraSDR 换成价值 1 SDR 的 Luna 来获取无风险利润,而她可以从公开市场获得价值 0.9 SDR 的资产。同样,当 1 TerraSDR = 1.1 SDR 时,她也可以通过将价值 1 SDR 的 Luna 交到系统中,从而获得价值 1.1 SDR 的 TerraSDR,再次击败公开市场的价格,来获取无风险利润。

系统通过 Luna 为 Terra 定价提供资金:

  • 通过购买 1 TerraSDR,协议铸造并出售价值 1 SDR 的 Luna
  • 通过出售 1 TerraSDR,协议获取价值 1 SDR 的 Luna

由于铸造 Luna 以匹配 Terra 供应,波动性从 Terra 价格转移到 Luna 供应。如果不加以缓解,这种 Luna 稀释会给矿工带来问题;他们的 Luna 质押只值收缩后总可用挖矿权利的一小部分。该系统会销毁它在货币供应量扩大期间获得的 Luna 的一部分,直到 Luna 供应量达到其 10 亿平衡发行量。因此,Luna 作为一种代币,可以长期拥有稳定的需求,并按比例获得 Terra 挖矿的权利。下一节将讨论该系统如何提供稳定的挖矿激励措施,以在动荡的宏观经济周期中保持挖矿市场和 Luna 需求的长期稳定。

2.5 矿工获得长期稳定的奖励

矿工在 Terra 的安全和稳定中发挥着基础性作用。他们通过参与 PoS 共识来提供前者。它们通过吸收 Terra 需求的短期波动来提供后者。稳定的挖矿需求是安全和稳定的核心要求。为了实现这一目标,该协议旨在在所有经济条件、繁荣和萧条中提供稳定和可预测的回报。当网络能够始终如一地补偿保护它的人时,网络是最好的。

该协议有两种奖励矿工工作的方式:

  • 交易费用:所有 Terra 交易向矿工支付少量费用。费用默认为 0.1%,上限为 1%,这意味着在电子商务中用 Terra 进行交易将比使用信用卡等传统支付方式进行交易便宜得多。[1]
  • 铸币税(销毁 Luna):当对 Terra 的需求增加时,系统会反过来铸造 Terra 并获取 Luna。这称为铸币税——新铸造货币的价值减去发行成本(在这种情况下为零)。系统会销毁一部分获取的 Luna,这使得挖矿权利更加稀缺。铸币税的剩余部分进入财政部,为财政刺激提供资金。

[1]:每笔交易的费用上限为 1 SDR(在撰写本文时为 1.39 USD),这意味着较大的交易支付的费用也比传统的电汇要少得多。

为了从矿工的角度理解奖励,我们需要通过基本的计算来确定在 Terra 网络上进行长期挖矿贡献的可行性。在固定成本之后,单个挖矿权利(1 Luna)的挖矿业务的利润(或亏损)归结为奖励减去该单位的工作成本。更正式一点,在未来的工作周期 $t$ 内,单位挖矿权利的损益等于

$$P(t) = {TotalRewards(t) \over LunaSupply(t)} - UnitMiningCost(t)$$

损益之间的频繁交替——正数和负数的 $P(t)$ ——会产生高度不稳定的挖矿需求。该协议的目标是使这种计算更容易和更可预测。考虑到这一点,$P(t)$ 中的大部分不确定性归结为第一项,即单位挖矿奖励。因此,单位挖矿奖励是对网络做出长期贡献的主要考虑因素。稳定的单位挖矿奖励产生稳定的挖矿需求,而波动的单位挖矿奖励则相反。

默认情况下,总奖励(来自费用)和 Luna 的供应都存在不确定性,因此这两项都会导致单位奖励的波动。首先,当经济增长时,费用奖励往往会增加,而当经济萎缩时,费用奖励往往会减少。其次,Luna 供应量在经济增长时趋于减少(因为 Luna 因铸币税而销毁),而在经济萎缩时趋于增加(因为发行新的 Luna 以回购 Terra)。这意味着单位挖矿奖励倾向于朝着经济方向强烈波动,无论是向上还是向下。由此类推,这也适用于挖矿需求。

因此,为了创造长期稳定的挖矿需求,该协议会在所有经济条件下创造可预测的回报。为了实现这一点,该协议使用交易费用和 Luna 销毁率作为杠杆来抵抗单位挖矿奖励的变化。交易费用会影响总奖励,而 Luna 销毁率会影响 Luna 供应——这是单位挖矿奖励的两个决定因素。基本逻辑如下:

  • 如果单位挖矿奖励增加:
    • 减少费用
    • 减少 Luna 销毁
  • 如果单位挖矿奖励减少:
    • 增加费用
    • 增加 Luna 销毁

在努力消除矿工奖励的波动的同时,该协议还以稳定增长为目标,与 Terra 经济的长期增长保持一致。这是对他们长期致力于为网络服务的自然回报。

为了将这些想法正式化,我们更详细地讨论了平滑单位挖矿奖励的机制。[2]费用和 Luna 销毁率——“稳定性杠杆”——每周都会根据单位挖矿奖励的变化进行调整。我们将 Luna 销毁率定义如下:与存入财政部相比,协议使用多少部分 (%) 的铸币税来回购和销毁 Luna?设 $f_t$、$b_t$ 和 $R_t$ 分别为 $t$ 时刻的交易费用、Luna 销毁率和单位挖矿奖励。那么调整 $f$ 和 $b$ 值的规则如下:

$$f_{t+1} = (1 + g) \cdot {R_{t-1} \over R_t} \cdot f_t$$$$b_{t+1} = (1 + g) \cdot {R_{t-1} \over R_t} \cdot b_t$$

[2]:我们提出的机制略有简化。我们省略了一些细节,例如,该协议在挖矿奖励中使用移动平均线来提高稳健性,并确保在所有情况下回购相对于费用的贡献始终如一。

现在更新规则应该明确了当我们说费用(和 Luna 销毁率)抵抗单位挖矿奖励的变化时,我们的意思是:当前值 $f_t$ 乘以单位挖矿奖励的反向变化 ${R_{t-1} \over R_t}$。例如,如果单位挖矿奖励减半,则费用将相应加倍,反之,如果单位挖矿奖励加倍,费用将相应减半。结果由一个小的增长因子 $1 + g$ 来衡量,它允许与经济的长期增长率相称的单位挖矿奖励逐渐增长。

该机制在实践中的效果如何?我们已经运行了广泛的模拟来进行压力测试并在广泛的假设下对其进行改进。在下文中,我们将分享并讨论一个对机制施加重大压力并阐明其如何实现其目标的代表性示例。我们考虑了一个模拟的 10 年期间,在此期间 Terra 经济经历了快速增长和严重动荡。我们展示了该协议如何根据经济状况调整其稳定性杠杆,以及这些调整如何反过来塑造单位挖矿奖励。

In [ ]:
from IPython.display import display
from PIL import Image

display(Image.open('Terra-Whitepaper.png'))

第一张图显示了模拟的每周交易量及其年度移动平均值。交易量可以被认为是 Terra 经济的 GDP。经济经历了快速增长,随后是严重的多年衰退,在 3 年内摧毁了 93% 的 GDP,需要 6 年才能完全恢复。这种情况是一个严峻的考验——如果它描述的是比特币的价格,那将是迄今为止其历史上最长的熊市,并且在回撤方面并列最差(相当于 2011 年 6 月至 11 月的 93% 的回撤)。虽然我们认为 Terra 的采用驱动需求将比比特币的投机驱动需求稳定得多,但稳定性机制的设计旨在自信地承受比特币级别的波动。

第二张图显示了交易费用和 Luna 销毁率,这是协议用来消除单位挖矿奖励波动的两个杠杆。我们观察到两者都与经济方向相反(这也是单位挖矿奖励的默认方向)。

第三张图显示了单位挖矿奖励的年度移动平均值。我们在这个例子中设定的增长目标是每年 15%。按照设计,单位挖矿奖励经历稳定增长且波动性低,不受 Terra GDP 周期的影响。费用和 Luna 销毁率的调整成功地吸收了单位挖矿奖励的预期波动并创造了可预测的增长。这是通过平均低于 0.5% 的费用(最高 1% 的瞬时峰值)和平均大约 50% 的 Luna 销毁率(意味着平均 50% 的铸币税授予财政部)来实现的。

稳定的挖矿需求是 Terra 安全稳定的核心要求。单位挖矿奖励是矿工的首要考虑因素,也是最大的风险来源。默认情况下,它们具有高度周期性,因此具有高度不确定性。在动荡的条件下减少这种不确定性是稳定挖矿需求的关键。我们已经概述了一个简单的机制,它使用交易费用和 Luna 销毁率作为杠杆来实现这一目标,并证明了它在最严峻的经济条件下的有效性。

3 增长驱动的财政政策

尽管智能合约具有巨大的潜力,但由于其基础货币的价格波动,智能合约在采用方面面临障碍。价格波动使得智能合约无法用于大多数主流金融应用程序,因为大多数用户习惯于评估保险、信贷、抵押和工资单中的确定支出。Terra 将提供一个稳定的 dApp 平台,旨在构建使用 Terra 作为其底层货币的金融应用程序,从而使智能合约成熟为主流业务的有用基础设施。Terra 平台 DApps 将通过多样化其用例来帮助推动增长并稳定 Terra 货币家族。在本节中,我们将讨论该协议如何通过其增长驱动的财政政策来补贴更成功的应用程序的增长。

各国政府使用扩张性财政支出来刺激增长。财政支出的希望在于,原始支出引发的经济活动会形成一个反馈循环,使经济增长超过最初刺激措施中花费的金额。这个概念被支出乘数所捕捉——一美元的财政支出会产生多少美元的经济活动?支出乘数随着边际消费倾向的增加而增加,这意味着扩张性刺激的有效性与经济主体增加支出的可能性直接相关。

在上一节中,我们讨论了 Terra 铸币税是如何同时用于矿工奖励和财政部的。在这一点上,值得一提的是,财政部究竟如何实施 Terra 的财政支出政策,其核心任务是在确保 Terra 稳定的同时刺激 Terra 的增长。通过这种方式,Terra 通过将未分配用于稳定的铸币税返还给其用户来实现更高的效率。

财政部的主要重点是将来自铸币税的资源分配给去中心化应用程序(dApp)。要从财政部获得铸币税,dApp 需要注册为在 Terra 网络上运营的实体。dApp 有资格获得资金,具体取决于其经济活动和资金使用情况。

dApp 的融资程序如下:

  • dApp 向财政部申请账户;该应用程序包括元数据,例如标题、指向有关资金使用的详细页面的 URL、申请人的钱包地址以及审计和治理程序。
  • 定期投票,Luna 验证人投票决定接受或拒绝新的 dApp 资金账户申请。净投票数(赞成票减去反对票)需要超过总可用验证人权力的 $1/3$ 才能被接受。
  • Luna 验证者可以控制哪些 dApp 可以在财政部开立账户。资金本身是由验证者根据分配给每个 dApp 的权重对每个资金周期进行投票来确定的。这使财政部能够优先考虑获得最多资金的 dApp。
  • 在每次投票会议上,Luna 验证者有权要求将 dApp 列入黑名单,例如,因为它行为不诚实或未能说明其使用国库资金的情况。再次,净票数(赞成票减去反对票)需要超过总可用验证者权力的 $1/3$ 才能强制执行黑名单。被列入黑名单的 dApp 无法访问其国库账户,并且不再有资格获得资金。

为 dApp 分配资金权重的动机是通过奖励更有可能对经济产生积极影响的 dApp 来最大化刺激对经济的影响。财政部使用两个标准来确定支出分配:(1) 强劲的经济活动和 (2) 有效利用资金。具有良好采用记录的 dApp 因其持续成功而获得支持,而相对于其资金增长的 dApp 将获得更多的铸币税奖励,因为它们在有效利用其资源方面有着成功的记录。

这两个标准组合成一个权重,确定 dApp 从总资金池中获得的相对资金。例如,权重为 $2$ 的 dApp 将获得权重为 $1$ 的 dApp 的两倍资金。

我们列出资金权重方程,然后对所有部分进行详细说明:对于时间段 $t$,令 $TV_t$ 为 dApp 的交易量, $F_t$ 为收到的财政部资金。然后,协议确定该期间的资金权重 $w_t$ 如下:

$$w_t = (1 - \lambda) TV_t^* + \lambda {\Delta TV_t^* \over F_{t-1}^*}$$

符号 $*$ 表示移动平均线,因此 $TV_t^*$ 将是交易量直到时间段 $t$ 的移动平均线,而 $\Delta TV_t^*$ 将是直到时间段 $t$ 的不同长度的移动平均线的差异。例如,可以按季度制作平均窗口。最后,所有 dApp 的资金权重总和为 1。

  • 第一项与 $TV_t^*$ 成正比,即 dApp 在最近过去产生的平均交易量。这是 dApp 经济活动的指标,或者更简单地说是其微观经济的规模。
  • 第二项与 $\Delta TV_t^* / F_{t-1}^*$ 成正比。分子描述了交易量的趋势——它是最近的平均值和最近的平均值之间的差异。当其为正时,这意味着交易量呈上升趋势,反之亦然。分母是 dApp 在最近一段时间内收到的平均资金金额,包括上一时期。所以第二个术语描述了经济活动相对于过去的资金是如何变化的。总体而言,该比率的较大值捕获了 dApp 因其收到的每一美元资金而快速增长的情况。这实际上是资金计划的支出乘数,是资金效率的主要指标。
  • 参数 $\lambda$ 用于确定经济活动和融资效率的相对重要性。如果将其设置为 $1/2$,则这两项将具有相同的贡献。通过降低 $\lambda$ 的值,该协议可以更倾向于具有更大经济体的 dApp。相反,通过增加 $\lambda$ 的值,该协议可以有利于那些高效使用资金的 dApp,例如在资金较少的情况下快速增长,即使它们的规模较小。

以程序化方式分配资金的一个重要优势是,与开放式投票系统相比,它更简单、客观、透明和精简。事实上,与去中心化投票系统相比,它更具可预测性,因为用于计算资金权重的输入是透明的且移动缓慢。此外,该系统对 Luna 验证者的信任度较低,因为他们所拥有的唯一权力是确定 dApp 是否诚实并合法使用资金。

总体而言,Terra 治理的目标很简单:为对经济产生最大净影响的组织和提案提供资金。这将包括 dApp 为用户解决实际问题,增加 Terra 的采用率,从而增加 Terra 经济的 GDP。

4 结论

我们介绍了 Terra,一种稳定的数字货币,旨在补充现有的法定货币和加密货币,作为交易和存储价值的一种方式。该协议根据需求变化调整 Terra 的供应以保持其价格稳定。这是使用 Luna 实现的,Luna 是一种挖矿代币,其稳定的奖励旨在吸收不断变化的经济周期带来的波动。Terra 还通过将未投资于稳定性的铸币税返还给用户来实现有效的采用。其透明和民主的分配机制使 dApps 能够通过利用 Terra 的经济增长来吸引和留住用户。

如果比特币对加密货币的贡献是不变性,而以太坊是表达性,那么我们增加的贡献将是可用性。Terra 的潜在应用是巨大的。即刻,我们预见 Terra 将被用作在线支付的交换媒介,允许人们以其他支付方式收取的费用的一小部分自由地进行交易。由于世界开始变得越来越去中心化,我们看到 Terra 被用作 dApp 平台,价格稳定的代币经济建于其上。Terra 正在寻求成为区块链上第一个可用的货币和稳定平台,为主流用户、商家和开发人员释放去中心化的力量。

参考资料

Liu, Yukun 和 Tsyvinski, Aleh,加密货币的风险和回报(2018 年 8 月)。 NBER 工作文件第 w24877 号。可在 https://ssrn.com/abstract=3226806 获得。

Makarov、Igor 和 Schoar、Antoinette,加密货币市场中的交易和套利(2018 年 4 月 30 日)。可在 SSRN 获得:https://ssrn.com/abstract=3171204

Kereiakes、Evan,将多种法定货币纳入 Terra’s Peg 的基本原理(2018 年 11 月)。可在 https://medium.com/terra-money/rationale-for-including-multiple-fiat-currencies-in-terras-peg-1ea9eae9de2a 获得。

Taylor、John B. (1993) 。 “实践中的自由裁量权与政策规则”。卡内基-罗切斯特公共政策系列会议。 39:195-214。

Read More

2022-02-25
Declaration of the Independence of Cyberspace

The project we want to do is called “typography” or “digitypography”. The purpose is to build a new stablecoin system. $Typography and $GoodBit is the main currency pair in the system. The stabilization mechanism is to control the supply of $GoodBit by burning a certain amount of $Typography to mint one $GoodBit or minting a certain amount of $Typography to burn one $GoodBit, so that one $GoodBit can be paid on average for the purpose of copying and quoting one bit of NFT content. Specifically, the “General Knowledge Graph” should be implemented in the form of “Directed Acyclic Graph”, and version control should be implemented for all NFT content in the system. Each specific version of NFT is similar to one commit in git version control system. The owner of the NFT can issue the corresponding CQLTs (Copy and Quote License Tokens). Others can buy and burn multiple different CQLTs to mint their own NFT. This new NFT is then connected as a successor node to the corresponding NFTs of those CQLTs, so as to realize the historical proof of NFT merges and changes. This huge NFT graph is stored in a permanent way. And then all the transaction records of CQLTs and $GoodBits are used to control the issuance of $GoodBits. Specifically, we need to track the circulation of each CQLT. Each CQLT has a price in $GoodBit based on its latest transaction or destruction record. Track all the CQLTs, the sum of their prices in $GoodBits, divided by the sum of the bits of their corresponding NFT content, we can obtain the average price in $GoodBit for copying and quoting one bit of NFT content on average within the whole system. In addition, we know the price of one $GoodBit in $Typography in the trading market of $GoodBit and $Typography. Therefore, we can calculate the average price in $Typography for copying and quoting one bit. The stability mechanism of the whole system is to achieve the purpose of adjusting the average price of copying and quoting one bit to one $GoodBit by allowing a two-way free burning and minting of one $GoodBit with a certain amount of $Typography required for copying and quoting one bit on average.


人类走出「前商品货币」的阶段经历了上千年,走出「商品货币」的阶段经历了约 200 年,目前正经历「信用货币」的阶段,至今时间约为 50 年。

加密货币行业以 2015 年 Bitfinex 上线 USDT 交易山寨币取代了 BTC 作为山寨币交易对为时间点,标志着行业已经走出了「前商品货币」的阶段;目前 Binance 交易所发行了自己的 BUSD,Terra 发行了 UST,以及诸如 MIM、OHM 等算法稳定币,标志着行业逐渐进入文中「商品货币」的阶段;可以预见未来不管监管的尺度松紧,行业一定会进入文中「信用货币」的阶段。¹

¹ => STABLECOIN AS A WEAPON


我们想做的项目叫做“印刷术”(typography、digitypography)。目的是构建一个基于开放式博弈的生态型稳定币系统。“印刷术”($Typography)和“好比特”($GoodBit)是其中一对货币对。稳定机制是通过销毁一定量的“印刷术”铸造一个“好比特”或者销毁一个“好比特”铸造一定量的“印刷术”来控制“好比特”的发行量,以达到一个“好比特”在一般水平上可以用来购买一个比特量的 NFT 内容的“复制引用权”的目的。具体来说,要用“有向无环图”(DAG)的方式实现“通用知识图谱”,对所有的 NFT 的内容实现版本控制。每一个特定的版本的 NFT 类似 git 里面的 commit。NFT 的所有者可以发行相应的“复制引用许可代币”(Copy and Quote License Token)。其他的人可以购买并销毁多个不同的“复制引用许可代币”来铸造自己的 NFT。这个新的 NFT 就以后继节点的方式连接到那些“复制引用许可代币”相应的 NFT 之后,以实现 NFT 的合并和更改的历史证明。这个巨大的 NFT 图谱以永存的方式存储。而所有“复制引用许可代币”和“好比特”的交易记录被用来控制“好比特”的发行量。具体来说,要追踪每一个“复制引用许可代币”的流通。每一个“复制引用许可代币”根据其最新的交易或者销毁记录,有一个以“好比特”计价的价格。追踪所有的“复制引用许可代币”,它们以“好比特”计价的价格的总和、除以、它们相应的 NFT 内容的比特量的总和,可以得到、整个系统之内、复制引用一个比特以“好比特”计价的平均价格。另外,我们知道“印刷术”与“好比特”的交易市场中,一个“好比特”以“印刷术”计价的价格。因此,我们可以算出、复制引用一个比特以“印刷术”计价的平均价格。整个系统的稳定机制是,通过允许、一个“好比特”与复制引用一个比特在一般水平上所需支付的“印刷术”的、双向自由的销毁铸造,来达到、把复制引用一个比特的平均价格调整为一个“好比特”、的目的。


私たちがやりたいプロジェクトは「タイポグラフィ」(typography)、「デジタイポグラフィ」(digitypography)と呼ばれています。目的は、新しいステーブルコインシステムを構築することです。「印刷術」($Typography)と「良いビット」($GoodBit)はその中に主な通貨ペアです。

価格安定化メカニズムは、「良いビット」を鋳造するために一定量の「印刷術」を焼却するか、「良いビット」を焼却するために一定量の「印刷術」を鋳造することによって、「良いビット」の発行量を制御することです。これにより、一般的に、一個ビットの NFT コンテンツをコピーして参照するために、一個「良いビット」で支払うことができます。

具体的には、「一般知識グラフ」というのを、「有向非巡回グラフ」(DAG)の形式で実装する必要があり、バージョン管理はすべての NFT コンテンツに実装する必要があります。NFT の各特定のバージョンは、git でのコミットに似ています。

NFT の所有者は、その NFT に対応する「コピー参照ライセンストークン」(Copy and Quote License Token)を発行できます。

他の人は、複数の異なる「コピー参照ライセンストークン」を購入して焼却し、自分の NFT を鋳造することができます。次に、その新しい NFT は、後続ノードの形式で「コピー参照ライセンストークン」に対応する NFT に接続され、NFT の合併と変更の歴史を証明します。

この巨大な NFT グラフは、永続的な方法で保存されます。また、「コピー参照ライセンストークン」と「良いビット」のすべての取引履歴は、「良いビット」の発行を制御するために使用されます。

具体的には、各「コピー参照ライセンストークン」の流通を追跡します。各「コピー参照ライセンストークン」には、最新の取引または焼却の記録に基づいた「良いビット」で表される価格があります。

すべての「コピー参照ライセンストークン」を追跡して、システム全体で一個ビットをコピーして参照するためにの「良いビット」で表される平均価格は、「良いビット」で表される価格の合計を、対応する NFT コンテンツのビットの合計で、割ったものです。

さらに、私たちは、「印刷術」と「良いビット」の取引市場によって、一個「良いビット」が「印刷術」で表される価格を知っています。したがって、一個ビットをコピーして参照するためにの「印刷術」で表される平均価格を計算できます。

システム全体の価格安定メカニズムは、一個「良いビット」と、一個ビットをコピーして参照するために一般的に必要とされる「印刷術」を、自由に鋳造と焼却を可能にすることによって、ビットをコピーして参照する平均価格を一個「良いビット」に調整する目的を達成します。


不可偷窃。
(出埃及记 20:15 吕振中)


我们认为下面这些真理是不证自明²的:人人生而平等,造物主赋予他们若干不可剥夺的权利,其中包括生命权、自由权和追求幸福的权利。为了保障这些权利,人们才在他们之间建立政府,而政府之正当权力,则来自被统治者的同意。任何形式的政府,只要破坏上述目的,人民就有权利改变或废除它,并建立新政府;新政府赖以奠基的原则,得以组织权力的方式,都要最大可能地增进民众的安全和幸福。的确,从慎重考虑,不应当由于轻微和短暂的原因而改变成立多年的政府。过去的一切经验也都说明,任何苦难,只要尚能忍受,人类都宁愿容忍,而无意废除他们久已习惯了的政府来恢复自身的权益。但是,当政府一贯滥用职权、强取豪夺,一成不变地追逐这一目标,足以证明它旨在把人民置于绝对专制统治之下时,那么,人民就有权利,也有义务推翻这个政府,并为他们未来的安全建立新的保障。
ーー《美国独立宣言》前言³

²:英语:Self-evidence
³:任东来在《美国历史文献选集》的译文(中国翻译出版公司翻译,美国驻华大使馆新闻文化处出版,1985)和《1765——1917年的美国》的译文(谢德风等选择,北京三联书店,1957)基础上重译。任东来; 陈伟; 白雪峰; Charles J. McClain; Laurene Wu.


系统地提出三权分立之原则来源于1748年法国孟德斯鸠的《论法的精神》,权力分离为司法权、立法权、行政权三种权力。
所谓三权分立,就是通过法律规定,将三种权力分别交给三个不同的国家机关执掌,既保证各自的权限,又要相互制约保持平衡。


因为永恒主是审判我们的,
永恒主是给我们定律例的,
永恒主是我们的王;
是他在救助我们。
(以赛亚书 33:22 吕振中)

孟德斯鸠是一个基督徒政治哲学家。他的政治哲学来自《圣经》,他必然将《圣经》原则融会贯通在他的三权分立的思想中。《圣经》以赛亚书、第33章、第22节,这一节经文就是将权力分为审判者、立法者和君王,是确立现代三权分立原则的原型。

孟德斯鸠说:“一切有权力的人都会滥用权力,这是万古不易的经验。要防止滥用权力,就必须以权力约束权力。”
孟德斯鸠将权力制衡的基本理论归结为两个基本思想:

  1. 不受约束的权力必然腐败,绝对的权力导致绝对的腐败。
  2. 道德约束不了权力,权力只有用权力来约束。
Read More

2021-11-12
Research of Emotet

Spread via Word documents

通过 Word 文档传播

The EMOTET group managed to take email as an attack vector to a next level. Through a fully automated process, EMOTET malware was delivered to the victims’ computers via infected e-mail attachments. A variety of different lures were used to trick unsuspecting users into opening these malicious attachments. In the past, EMOTET email campaigns have also been presented as invoices, shipping notices and information about COVID-19.

All these emails contained malicious Word documents, either attached to the email itself or downloadable by clicking on a link within the email itself. Once a user opened one of these documents, they could be prompted to “enable macros” so that the malicious code hidden in the Word file could run and install EMOTET malware on a victim’s computer.

EMOTET 群体成功将电子邮件作为攻击向量提升到了一个新水平。通过完全自动化的过程,EMOTET 恶意软件通过感染的电子邮件附件传递到受害者的计算机上。各种不同的诱饵被用来欺骗毫无戒备的用户打开这些恶意附件。过去,EMOTET 的电子邮件活动也曾被伪装成发票、运输通知和有关 COVID-19 的信息。

所有这些电子邮件都包含恶意的 Word 文档,文档要么附在电子邮件中,要么通过点击邮件中的链接下载。一旦用户打开了这些文档,他们可能会被提示『启用宏』,以便隐藏在 Word 文件中的恶意代码可以运行,并在受害者的计算机上安装 EMOTET 恶意软件。

Attacks for hire

雇佣攻击

EMOTET was much more than just a malware. What made EMOTET so dangerous is that the malware was offered for hire to other cybercriminals to install other types of malware, such as banking Trojans or ransomwares, onto a victim’s computer.

This type of attack is called a ‘loader’ operation, and EMOTET is said to be one of the biggest players in the cybercrime world as other malware operators like TrickBot and Ryuk have benefited from it.

Its unique way of infecting networks by spreading the threat laterally after gaining access to just a few devices in the network made it one of the most resilient malware in the wild.

EMOTET 不仅仅是一种恶意软件。EMOTET 之所以危险,是因为它被提供给其他网络犯罪分子,用于在受害者的计算机上安装其他类型的恶意软件,如银行木马或勒索软件。

这种类型的攻击被称为『加载程序』操作,EMOTET 被认为是网络犯罪世界中的最大玩家之一,因为其他恶意软件操作员如 TrickBot 和 Ryuk 从中受益。

它通过在网络中获得访问权限后横向传播威胁的独特方式,使其成为最具弹性的恶意软件之一。

Emotet Malware

Emotet 恶意软件

网络钓鱼:带有恶意链接的鱼叉式钓鱼

Keylogger

键盘记录器

python -m pip install pynput
In [1]:
from pynput import keyboard
In [2]:
log_file = 'keylog.txt'

def on_press(key: keyboard.Key | keyboard.KeyCode | None) -> None:
    with open(log_file, 'a') as f:
        f.write(f'[{key}]')

with keyboard.Listener(on_press=on_press) as listener:
    listener.join()

How to detect keyloggers?

Detecting keylogger programs on a computer usually involves fairly obvious warning signs: the browser slows down, there are delays when moving the mouse or typing, or the cursor disappears. Even if you use the best privacy browsers, keyloggers can still track your inputs.


How keyloggers infect your device?

Hackers often use social engineering methods to infect victims with keyloggers. A keylogger can infect your device in different ways, sometimes depending on your device type. And even though a spyware removal tool can handle keystroke logger detection, you want to avoid this dangerous type of malware to begin with.

Here’s the general process for how a keylogger infects your device:

  1. A cybercriminal sends an infected phishing message, usually through an email attachment, SMS message, or infected website.

  2. When you click the link for the infected website or attachment, the keylogger automatically downloads itself onto your device.

  3. The keystroke tracker immediately starts to collect your keystrokes, most likely without being detected until you run a keylogger scan.

如何检测键盘记录器?

检测计算机上键盘记录器程序的警告信号通常相当明显:浏览器变慢、鼠标移动或键击时出现延迟,或者光标消失。即使你使用最好的隐私浏览器,键盘记录器也能跟踪你的输入。


键盘记录器如何感染你的设备?

黑客通常使用社会工程学方法来感染受害者的设备。键盘记录器可以通过多种方式感染你的设备,这些方式有时取决于你的设备类型。虽然间谍软件清除工具可以处理键盘记录器的检测,但最好的办法是从一开始就避免这种危险的恶意软件。

以下是键盘记录器感染你设备的一般过程:

  1. 网络犯罪分子发送带有感染的钓鱼信息,通常通过电子邮件附件、短信或感染的网站进行发送。

  2. 当你点击感染网站的链接或附件时,键盘记录器会自动下载到你的设备上。

  3. 键盘记录器立即开始收集你的按键输入,通常在你运行键盘记录器扫描之前不会被发现。

SKYSEA 这个间谍软件的删除方法

一、详细操作指南

社内PC上未经允许安装并获取操作日志的麻烦间谍软件。让我们根除这个间谍软件,提高生活质量(QOL)。

  1. 使用 RegistryFinder 删除注册表中所有包含 “skysea” 的项。也可以使用 regedit,但比较麻烦。

    删除注册表中 Key 列和 Value 列中包含 “SKYSEA” 的记录(右键点击 → 从注册表中删除)。

  2. 通过资源管理器右键点击 PC → 管理 → 左侧树状图中的 服务和应用程序 → 服务中的 “Swd” 右键点击 → 属性 → 将服务状态设置为停止,将启动类型设置为禁用。

    删除 C:\WINDOWS 目录中的 “wds” 文件夹。

  3. 通过资源管理器右键点击 PC → 管理 → 左侧树状图中的 服务和应用程序 → 服务中的 “awssm” 右键点击 → 属性 → 将服务状态设置为停止,将启动类型设置为禁用。

    删除 C:\WINDOWS 目录中的 “awssm” 文件夹。

  4. 将以下文本保存为 .bat 文件并运行。也可以手动停止和禁用服务。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    @echo off

    rem 禁用服务
    sc config "Swd" start= disabled
    sc config "awssm" start= disabled
    sc config "SCVCabProxySvr" start= disabled
    sc config "CompactSvc" start= disabled
    sc config "ScvUpdSvc" start= disabled
    sc config "AstExAgt" start= disabled
    sc config "ScvSvc" start= disabled
    sc config "SCV LogAgentService" start= disabled
    sc config "LogSvr" start= disabled
    sc config "IceSvc" start= disabled

    rem 停止服务
    net stop "Swd"
    net stop "awssm"
    net stop "SCVCabProxySvr"
    net stop "CompactSvc"
    net stop "ScvUpdSvc"
    net stop "AstExAgt"
    net stop "ScvSvc"
    net stop "SCV LogAgentService"
    net stop "LogSvr"
    net stop "IceSvc"

    因为各服务会进行活性监控,需要多次运行 bat 文件来完全停止它们。如果不行的话可以手动从服务界面停止。

  5. 打开任务管理器,右键点击 “SKYSEA Client View Version 16.1” → 结束任务。然后删除 C:\Program Files (x86) 目录中的 “Sky Product” 文件夹。如果无法删除,可能是服务未完全停止或者任务管理器中还有 “SKYSEA Client View Version 16.1”。

  6. 重启电脑,如果任务管理器中没有任何与 “SKYSEA” 相关的进程,说明删除成功。

结束监视社会。感谢这家公司,我连藤原竜也都讨厌了。

2023年10月15日更新

在多次停止服务后,系统部门又说『日志无法获取了』,我反复说『请远程安装』,然后删除了日志。但随着新版本的发布,他们要求重新安装。我本来不想安装,但最后不得不安装。安装后,他们又说『日志无法获取』,但我不在乎。

后来我再次尝试删除这个恶心的间谍软件,但 “C:\Program Files (x86)\Sky Product\SKYSEA Client View” 文件夹被占用,无法删除。因为不想查找具体是哪项服务占用,于是按照以下步骤进行处理:

  1. 右键点击 Windows 标志,选择 “运行”。
  2. 输入 “resmon.exe” 并点击 “确定”。
  3. 在资源监视器中,打开 “CPU” 选项卡。
  4. 展开 “关联的句柄” 部分。
  5. 在 “关联的句柄” 搜索框中输入 “SKYSEA Client View”。
  6. 等待搜索结果显示。
  7. 右键点击显示的进程,选择 “结束进程”。

即便是 Chrome 和 Outlook 也受到影响,这太恶心了。想到系统部门的老男人可能会窥探女性员工的搜索历史,真是太可怕了。

无法删除文件夹时,可以参考以下 URL,通过移除 administrators 权限并授予 everyone 完全控制权限来删除文件夹:

二、服务停止与启动脚本

昨天写的删除方法,其实不用删除注册表也可以停止服务。但是,如果想彻底清理,建议删除注册表项目。

因为有些公司可能会在删除后抱怨,所以我创建了停止和启动服务的 bat 文件。请在自担风险下使用。

服务停止.bat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
@echo off

rem 禁用服务并停止,移动模块
sc config "Swd" start= disabled
net stop "Swd"
move C:\Windows\wds C:\kasu\wds

sc config "awssm" start= disabled
net stop "awssm"
move C:\WINDOWS\avv5sm C:\kasu\avv5sm

rem 终止进程
taskkill /F /im CtlCli64.exe
taskkill /F /im LogChromeNativeHost.exe
taskkill /F /im AstAgent.exe
taskkill /F /im CtlCli.exe
taskkill /F /im SvcMon.exe
taskkill /F /im SKYSEAHS.exe

rem 禁用其他服务
sc config "SCVCabProxySvr" start= disabled
sc config "CompactSvc" start= disabled
sc config "ScvUpdSvc" start= disabled
sc config "AstExAgt" start= disabled
sc config "ScvSvc" start= disabled
sc config "SCV LogAgentService" start= disabled
sc config "LogSvr" start= disabled
sc config "IceSvc" start= disabled

rem 停止其他服务
net stop "SCVCabProxySvr"
net stop "CompactSvc"
net stop "ScvUpdSvc"
net stop "AstExAgt"
net stop "ScvSvc"
net stop "SCV LogAgentService"
net stop "LogSvr"
net stop "IceSvc"

rem 移动 C:\Program Files (x86)\Sky Product 文件夹
move "C:\Program Files (x86)\Sky Product" "C:\kasu"

服务启动.bat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@echo off

rem 启用服务并启动,移动模块
sc config "Swd" start= auto
net start "Swd"
move C:\kasu\wds C:\Windows\wds

sc config "awssm" start= auto
net start "awssm"
move C:\kasu\avv5sm C:\WINDOWS\avv5sm

rem 启用其他服务
sc config "SCVCabProxySvr" start= auto
sc config "CompactSvc" start= auto
sc config "ScvUpdSvc" start= auto
sc config "AstExAgt" start= auto
sc config "ScvSvc" start= auto
sc config "SCV LogAgentService" start= auto
sc config "LogSvr" start= auto
sc config "IceSvc" start= auto

rem 启动其他服务
net start "SCVCabProxySvr"
net start "CompactSvc"
net start "ScvUpdSvc"
net start "AstExAgt"
net start "ScvSvc"
net start "SCV LogAgentService"
net start "LogSvr"
net start "IceSvc"

rem 移动 C:\Program Files (x86)\Sky Product 文件夹回原位置
move "C:\kasu\Sky Product" "C:\Program Files (x86)"
Read More

2021-11-07
Install Almond

In [ ]:
java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (Temurin)(build 25.312-b07, mixed mode)
In [ ]:
curl -Lo coursier https://git.io/coursier-cli
chmod +x coursier
./coursier launch -v -v almond -- --install
./coursier launch --fork --main-class almond.ScalaKernel almond -- --install
<fork>true</fork>
  • true means it will create (fork) a new JVM to run the compiler. This is a bit slower but the isolation is better.
  • false means it is startign the compiler directly in the JVM you have run maven with, this makes the build less repeatable.
In [ ]:
rm -f coursier
Read More

2021-10-28
Add Tweets to My Blog

Browser Side

In [ ]:
cat hexo/themes/freemind/_config.yml
In [ ]:
cat hexo/themes/freemind/layout/_widget/links.ejs
In [ ]:
cat hexo/themes/freemind/source/js/twitter.js
var twitter = (function() {
  function escapeHtml(str) {
    return $('<div/>').text(str).html();
  }
  function render(target, tweets) {
    var i = 0, fragment = '', t = $(target)[0];

    for(i = 0; i < tweets.length; ++i) {
      fragment += '<li><i class="fa fa-star"></i><a href="https://twitter.com/seii_saintway/status/' + tweets[i].id + '">'
          + tweets[i].created_at.replace('T', ' ').replace('.000Z', '') + '</a><p>' + escapeHtml(tweets[i].text||'') + '</p></li>';
    }
    t.innerHTML = fragment;
  }
  return {
    showTweets: function(options) {
      options.blacklist = options.blacklist.split(',');
      $.ajax({
          url: 'https://jhub.name/tweets/?tweet.fields=created_at&max_results=' + options.count
        , dataType: 'json'
        , error: function (err) { $(options.target + ' li.loading').addClass('error').text('Error loading feed'); }
        , success: function (data) {
          if (!data ) { return; }
          var tweets = [];
          for (var i = 0; i < data.data.length; ++i) {
            if (options.blacklist instanceof Array && options.blacklist.indexOf(data.data[i].id) !== -1) { continue; }
            tweets.push(data.data[i]);
          }
          render(options.target, tweets);
        }
      });
    }
  };
})();
  • Here is all the changes at the browser side.

Server Side

  • Here is a solution using Flask to proxy Tweets API.
In [ ]:
BEARER_TOKEN=''
In [ ]:
curl -H "Authorization: Bearer ${BEARER_TOKEN}" 'https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=seii_saintway&count=20'
In [ ]:
curl -H "Authorization: Bearer ${BEARER_TOKEN}" 'https://api.twitter.com/2/users/807092313298112512/tweets?tweet.fields=created_at&max_results=10'
  • My solution using Traefik to proxy Tweets API
In [ ]:
cat << EOF | sudo tee /opt/tljh/state/dynamic/tweets.toml > /dev/null

[frontends.tweets]
backend = "tweets"

[frontends.tweets.routes.r1]
rule = "PathPrefix:/tweets/"

[frontends.tweets.routes.r2]
rule = "ReplacePath:/2/users/807092313298112512/tweets"

[frontends.tweets.headers.customrequestheaders]
Authorization = "Bearer ${BEARER_TOKEN}"

[frontends.tweets.headers.customresponseheaders]
Access-Control-Allow-Origin = "*"

[backends.tweets.servers.s1]
url = "https://api.twitter.com"
weight = 1

EOF
In [ ]:
sudo systemctl restart traefik
In [ ]:
curl 'https://jhub.name/tweets/?tweet.fields=created_at&max_results=10'
Read More

2021-10-27
Try to Reinstall Zsh Kernel

In [ ]:
%%bash
pip3 install bash_kernel
In [ ]:
%%bash
python3 -m bash_kernel.install
In [ ]:
%%bash
launchctl stop com.quantum.jupyter-lab
In [ ]:
%%bash
python3 -m pip install notebook zsh_jupyter_kernel
python3 -m zsh_jupyter_kernel.install --sys-prefix
In [ ]:
%%bash
python3 -m zsh_jupyter_kernel.install
In [ ]:
%%bash
launchctl start com.quantum.jupyter-lab

How to uninstall Zsh Jupyter Kernel?

In [ ]:
import zsh_jupyter_kernel
print(zsh_jupyter_kernel.__file__)
/usr/local/lib/python3.9/site-packages/zsh_jupyter_kernel/__init__.py
In [ ]:
%%bash
ls -lah /usr/local/lib/python3.9/site-packages/zsh_jupyter_kernel
In [ ]:
%%bash
cat /usr/local/lib/python3.9/site-packages/zsh_jupyter_kernel/install.py

Try to uninstall Zsh Jupyter Kernel

In [ ]:
%%bash
launchctl stop com.quantum.jupyter-lab
In [ ]:
%%bash
python3 -m pip uninstall zsh_jupyter_kernel
In [ ]:
%%bash
jupyter kernelspec list
In [ ]:
%%bash
jupyter kernelspec uninstall zsh
In [ ]:
%%bash
launchctl start com.quantum.jupyter-lab

A Jupyter Kernel for Python 3.7

In [ ]:
%%bash
cd ~ && virtualenv -p $(which python3.7) py37
source ~/py37/bin/activate
ipython kernel install --user --name py37 --display-name 'Python 3.7'
In [ ]:
%%bash
jupyter kernelspec uninstall py37
Read More

2021-10-26
金融心理学

大多数股民都同意市场由反馈过程支配,并且这些过程产生趋势。经济学家已得出结论:无论这些过程是什么,其运动总和是价格或多或少地随机运动。但是,其他科学家(主要来自自然科学领域)有不同看法,他们经常证明:在一个由反馈过程支配的系统中,运动的总和是一种被称为确定性混沌的事物。这种混沌系统的固有运动规律很难预测,但不是不可以预测。

如果你还是使用传统的标准统计方法来检测混沌系统,你将得到随机运动的错误诊断结论。因此,理解流动性金融市场动力学的最佳的整体框架模型是确定性混沌,而不是随机漫步。越来越多的科学家正在做这方面的工作,他们发现巿场确实是混沌的,因此,集体性的错误只能慢慢纠正。

作为“基本派”的市场参与者,尽量收集最多的信息以确定金融资产的“真实价值”,这样的市场定价是“有效的”,这就是所谓的“有效市场假设”。

一个不容忽视的问题是真实价值围绕价格波动

也许有人以为:有些人以投资为业,他们是专家,他们所有的知识和判断能力超出一般私人投资者以上;若听凭无知无识者自己去从事投资,固然可以使市场变化多端,但专家之间互相竞争,也许可以矫正这种趋势。然而事实上则不然。这批职业投资者与投机者之精力与才干,大都用在其他方面。事实上,这批人最关切者,不在比常人高出一筹,预测某一投资品在其整个寿命中所产之收益如何,而在比一般群众稍微早一些,预测决定市价之陈规本身会有什么改变。
从社会观点看,要使得投資高明,只有战胜时间和无知之神秘力量,增加我们对于未来之了解;但从私人观点,所谓最高明的投资,乃是先发制人,智夺群众,把坏东西让给别人。
--《就业、利息和货币通论》,凯恩斯,1936年

探寻真实价值的最大难题不在于构筑适当的经济模型上的困难,也不在于真实价值随价格波动,而在于描述真实世界动力学的经济仿真模型越好,它们得到的结果就越混沌。或者说,经济学家们越精细地完善他们的模那种模型根本不能预测长期发展的证据就越明显。
一些数学家对此加以嘲笑,因为他们一直怀疑这点。他们说:“原因在于,像复杂经济那种动态系统,其真实数学本质是非常混乱和高度不可预测的。”在数学家看来,很简单,经济学家在认识他们所从事的任务的真实本质上就已经失败了,因为他们没有考虑到非线性数学的本质。而且数学家们指出:“一般地,非线性数学的本质是,你只能预测系统的非常短期的行为。”
上述结论可以用一种通常称为“确定性混沌”的复杂独特现象加以解释。对许多或绝大多数经济系统而言,混沌意味着不可能做出客观和定量的长期预测。因此,在与“时间和无知之神秘力量”斗争时,我们只能转而寻求个人主观的猜测。而这当然与我们个人和主观的感受密切相关,例如希望、恐惧和贪婪。

今天,已经没有人能够搞清图形分析是什么时候第一次用于预测金融市场了,但是最古老的证据是日本的稻米市场。
1730年,日本开始采用稻米期货合约标准交易。这些合约与现在很多交易所的商品期货合约完全相同,但有一个例外:它并不需要对所交易商品进行实物交割。期货合约可以买卖,但它不需要稻米实物的交割。然而,一个问题出现了:虽然稻米的现金交易价格波动很小,但期货交易价格波动很大,而且永远如此。1869年,政府终于再也不能容忍这种情况,下令关闭了期货市场。
但是怪事出现了:期货市场刚一关闭,实物市场便开始剧烈波动。两年后,市场一片混乱,政府不得不恢复期货交易。不过,这次与以前不同了,期货交易必须伴随基础市场的实物交割,这样市场才逐渐稳定下来。
日本投机客由此得到的教训是,股票价格并不仅仅反映供求关系,它还包括心理因素。在此之后经纪人发展了一系列利用心理因素的方法。他们很快开始用图形表示价格变化,从中发现价格变化的规律,现在,全世界的股民广泛使用这种方法。

当市场走在新闻之前时,这仅仅说明一个事实:市场提前反映经济。

1981年,《美国经济述评》刊登了尤金·法马(Eugene F. Fama)的一篇综述文章。这篇文章详细研究了股票收益和经济活动、通货膨胀和货币供应的关系。该研究工作基于1953年以后的美国实证材料。法马最后总结如下“股票收益领先于所有实际指标,这表明市场对实体经济的预测是理性的这项研究使他得到如下结论,他认为市场是这样理解信息的:
有证据支持“理性预期”或“有效市场”观点,即:就股票市场的投资过程而言,市场能够利用最新的信息判断其未来走势。
换句话说,股票市场是对经济的提前反映,这个提前量不是很远,但是比任何有资格的经济学家所希望得都要远。这个假设被称为“有效巿场假设”。(值得注意的是,大部分投资者对此持不同观点。1987年黑色星期一之后(见1987年11月9日的《拜伦》杂志),有人发出500份调查问卷,45%的受访者认为股票市场反映了经济现实,而25%的人认为股市与经济毫无关系,只有17%的人认为股市是对经济的提前反映。)
由于股票市场提前反映经济,人们很自然地将它当作美国经济的一个领先官方指标。根据位于马萨诸塞州剑桥的国家经济研究局的分析,股市已被证明是12个反映美国经济的周期性领先指标中最好的一个。

我们再深入一步:债券显然是更好的经济预测工具。1982年9月28日的《华尔街日报》刊登了一篇论述债券市场对经济事件的反映能力的文章,该文的结论是:
由10种利息最高的公用事业债券和10种利息最高的工业债券的平均价格所组成的国债指数,一直比美国商务部的领先指标指数提前数月见顶或见底,虽然两者都具有预测经济周期转折点的能力。
上述结论一点也不新鲜。在《积累财富用经济晴雨表》一书中,巴布森使用了12个领先指标,其中就包括货币市场利率指标。关于这点他写道:“货币是一切经济活动的基础,因此在所有指标中是最灵敏的。”
金融市场预测经济反转的能力不仅仅是美国所独有。1984年布鲁诺·索尔尼克(Bruno Solnik)在《金融分析师杂志》(Financial Analysts Journa)发表的一篇调研报告,证实了九个国家在1971-1982年间证券市场的相互联系。他写道:“实际观察表明,美国股市和通货膨胀率之间存在负相关,根据对此现象的一种解释,股价的下跌预示经济活动的下降……其他九个国家的证据也支持上述观点。”基于该项研究以及其他许多研究,现在公认股票市场可以作为经济的领先指标,从股市反转到经济反转的典型领先时间大约是半年到9个月。这并不是说市场永远正确,毕竟,市场往往表现为非理性。但是,它确实比科学家发现的任何其他单个指标都要准确。

这里是个小试验,用它来说明市场有时也会飞快地与实际脱节。选择外汇市场进行这项试验,设想某一天欧洲的外汇交易情况,欧洲人当然不希望价格大起大落。花了整整一个上午研究过去24小时全球金融消息,他们猜测欧洲时间下午四五点钟时,美国人起床后会干什么,他们是卖出美元,还是买人美元?仔细研究所有卖出或买进的理由后,欧洲人必须决定当美国汇市开市时在美元对德国马克上是看空还是看多。我们假设绝大多数理由支持看空,然后你也选择做空。
午餐后,你开了一个巨人的空头美元头寸,这个头寸是如此之大,以至于任何反方向的价格变化所产生的后果都将是极其严重的。这确保你要尽心尽责。然后你就坐下来紧紧盯住计算机屏幕,观察美元价格每一秒钟的变化(它确实是每秒都在变的)。如此大的头寸,再加上如此紧张地盯住屏幕,你将体会到这项试验要达到的目的——非理性感觉。
当美国人在伦敦时间下午四五点钟开始交易时,第一个随机扰动即将出现。这时你将体会到一种非常奇怪的感觉:一旦价格开始有了第一个微小的变化,它将以奇特的方式影响你经过深思熟虑才做出的整个逻辑推理,而且这些影响将支持价格继续朝前走下去。如果美元如同预期的那样,下跌了,你的胜利将是巨大的。你会想,“我早知道它会这样”。一点也不奇怪,“任何买进美元的意见都是愚蠢的”。但是,如果美元开始上涨,突然间你脑海中所有的买进理由大大增加分量。“我真傻,它当然会涨”。此时,即使任何人都知道市场价格的这种小小变化无足轻重,你也迫切想改变自己的头寸。
通过这项试验你发现情绪跟着价格走。如果价格上升,感觉是它应该继续上升;如果价格下跌,则感觉它也应该继续下跌。这无论对职业人士还是新手都适用,惟一的差异是职业人士能够保持冷静。但是,有时候一种特殊的情绪会从少数几个人逐步蔓延到更多的人,演变成群体运动,最终导致集体歇斯底里。上述现象以一种令人感到复杂,但非常有教育意义的方式说明了人性的弱点,历史上有许多这样的例子。世界上第一个真正大规模的股票投机交易崩盘发生在1557年的法国,当时哈普斯堡王朝停止支付政府前些年过量发行的国债的利息,也不再分期付款。自那以后,每个世纪都能看到主要的股票投机冒险活动,它们无一例外地以崩盘结束(参见附录4)。其中最有教育意义的是1636年荷兰的郁金香泡沫,1711-1720年英国的南海公司泡沫,当然还有1929年华尔街的崩盘。

1720年5月28日,南海公司——这个最早最大的泡沫——的股价达到550英镑。这个价格已经超出人们的想像,6月份价格超过700英傍,这段时间股价变化特别神经,大起大落。6月3日中午,价格跌到650英镑,下午又涨回750英镑。很多大的投资者利用这个夏天的高价位卖出股票,转而将获得的利润投入到其他各行各业,包括土地、商品、房地产及其他股票。但是,另外一些买进南海公司股票的投资者,这其中包括物理学家艾萨克·牛顿,在南海公司股票早期价格上升阶段,他就卖出所有股票,获利5000英傍。但是,在盛夏期间,他又买了回来,这笔交易使他亏损了20000英镑。

混沌的产生主要与自我强化现象有关。设想在一个系统中,事件A导致事件B,事件B导致事件C,如果事件C最终又导致事件A,这就是一个非常简单的正反馈。
如果我们试图像描绘天气那样,描绘一个国家经济的相互关系,我们将会遇到同样复杂的现象。众所周知的例子是所谓的“倍增效应”和“加速效应”、对增长预期的累积和自我提高(“跟上旁人的步伐”),以及由于劳动力或投资替代而产生的投资需求放大等。总之,这些众多的反馈循环表明系统没有简单的平衡点,而是自我震荡,或者表现出其他更复杂的运动。每一个这种正反馈循环都有助于经济现象的自我强化本质,直到最后被其他机理阻挡。为了正确描述这种系统,需要了解复杂非线性数学。

分叉的原因是不同正反馈之间主导作用的突然转换。

不同的吸引子可能可以用不同的时间级别区分开来。


如果混沌确实是我们所要寻找的东西,金融分析师所追求的精确计算真实价值就有点类似于炼金术。不要忘了,股票真实价值的定义是公司未来盈利的贴现价值,如果我们仅仅能够预测一年、半年甚至更短的时间,那么这个定义是多么可笑。
或许我们应该重温凯恩斯对职业投资专家行为的描述:
事实上这批人最关切者,不在比常人高出一筹,预测某一投资品在其整个寿命中所产之收益如何,而在比一般群众稍微早一些,预测决定市价之陈规本身会有什么改变。
这个结论并不是说经济洞察能力与股票交易无关——绝不是这个意思。混沌现象的精髓是说,预测长期事件和长期定量分析的努力是徒劳无益的。虽然凯恩斯一点也不了解非线性数学的深奥结论,但在《就业、利息和货币通论》中他明确指出下述结论:
根据真正的长期预期而做投资,实在太难,几乎不可能。凡想如此从事者,较之仅想对群众行为比群众猜得略胜一筹者,其工作较重,其风险较大。而且,设二人智力相等,则前者容易出大错。

在正反馈环中,每一个人都猜测别人将采取什么行动,凯恩斯的“选美比赛”比喻是对正反馈环的最佳描述。凯恩斯将股票市场比做报纸上的选美比赛,比赛参与者从报上刊登的100幅美人头像中选出他们认为最美的(Keynes,1936):
每个参加者都从同一观点出发,于是都不选他自己真认为最美者,也不选一般人真认为最美者,而是运用智力,推测一般人认为一般人所认为的最美者。这已经达到了第三级推测,我相信有些人会运用到第四、第五级,甚至更高。
我们还没有达到上述境界,但是毫无疑问,当今最投机的市场模式中有许多只能用下述事实来解释:成千上万的市场参与者在相同的技术图形上画着相同的线,或在个人电脑中装入相向的程序。有些券商理解这些模式,据此可以做出逻辑假设。其他人什么也不懂,只是找寻某种模式。但是,即使一种模式完全是偶然重合,使用它的券商多了,它也有可能产生强烈的信号。虽然媒体试图用各种政治和经济事件来解释价格变化,但券商的理由却截然不同,他们说:“市场运行在通道中”,“市场在考验阻力位”,或者“市场刚刚突破20日移动平均线,但是明日应该出局,因为变化率可能超过90”(一会儿要解释这些陈述)。
因此,图形分析得到广泛使用的背后不仅仅在于它是一种理解市场的技巧,有时还在于技术分析产生心理作用。然而,必须牢记这条原理的结尾部分,即:如果所有人都使用同样的技术分析,那它的效果就不是自我实现,而是自我毁灭。

加密货币市场有点像是选 “新颖” 比赛。投资的要诀在于找到 “好玩” 的项目。


实际上,技术派通常还使用许多其他方法和策略,而且他们常常只占市场参与者的有限一部分。只要情况确实如此,互不相识的技术派兄弟依然可以猜测彼此的想法,共同控制市场,形成各种美妙的模式和图形。每一次图形都将继续演化,等到所有的人都看出时,图形自我化解。与此同时,新的技术派兄弟又将探寻新的图形变化……

对米勒(Miller)来说,肯·博尔丁(Ken Boulding)培育了他最初的关于复杂系统的学术基因[*]——他认为生物学与社会系统之间极其相似,需要对这些相似性进行科学调研。
[*]:原文为 meme,一种流行的、以衍生方式复制传播的互联网文化基因,米姆(meme)最初诞生时具有匿名作者、较低娱乐性的特征,在诸如语言、观念、信仰、行为方式等的传递过程中与基因在生物进化过程中所起的作用它相类似。——译者注
--《复杂适应系统——社会生活计算模型导论》

Read More