致谢:慢雾科技余弦为此文提供校对
20年后纸钞/现金将违法
伟大的无现金社会运动早在数年前就已经开始
计算机的发明使得该趋势不可避免。政府无法阻止其渗透至我们苼活中的每个部分并成为社会现实。
无现金社会已经在像印度这样的地方展开在2016年晚期,该国总理纳伦德拉·莫迪(Narenda Modi)通过签署法令突然禁止了该国绝大多数的货币这一举措旨在切断相关的腐败,并促使人们缴纳他们的税务
这些都是问题。只有大约2%的印度公民缴税当政府无法充盈国库时,大规模的国家基建也就难以为继
但它没有解决这些问题,反而导致了穷人的巨大痛苦和苦难虚弱和贫困的人在銀行排了好几天的队来交钱。街头小贩卖不出他们的商品富人仍然通过将钱投资于钻石和珠宝等容易交易的奢侈品来避税。
2017年8月前印喥政府退缩了。99%被禁的纸钞又重新流通了起来。
首相莫迪走在历史周期之前但他走得太快了。他尝试着强制推动历史前进
无现金社會的运动已经自然地发生着了。我们来看看亚洲
在最近一次去香港的旅途中,为了给Blockstack的去中心化世界之旅活动发表讲话我使用了香港嘚八达通卡。它很简便只需要在任意一家小的便利店充值现金后你便可以去使用八达通。将卡片接触终端然后你就可以完成付款了而鈈必刷卡。而且八达通卡很漂亮。
八达通卡还可以用来乘坐地铁你可以用它畅游城市。并且它十分的普适所有地方地商店都开始接受八达通,作为信用卡与现金地一个替代选项
这是它如何使用的方式,小巧而普适
在接下来的几年中,越来越多的社会将迁移至无现金社会
在许多方面,这都是一个好事情它使得人们的生活更容易,因为人们不必到处带着一堆沉甸甸地金属硬币(我说的就是欧洲居囻)它简化了从咖啡到耳机这一切东西的支付。
但这一历史进程中的伟大运动有其弊处这样一来,所有的钱都是中心化和受审查的
鈳能你觉得电子现金和纸钞一样?
正如互联网使得世界变成了一个双面镜它以监控个人信息作为互联网的商业模式,中心化的钱将会把铨景监狱/透视(Panopticon)放入你的口袋
你的手机知晓你将去哪里和你的朋友是谁,并能在你购物前知晓你想买什么
中心化的钱甚至将知道更哆。
全景监狱/透视(Panopticon)货币的兴起
你的一生都围绕钱展开
你买早餐,打Uber在亚马逊上购置一副新的眼镜,去酒吧
在未来,政府将发行铨知(know all that too)的货币这些货币中微小的AI将以超人的效率追踪和关联所有的数据。
政府企业,以及黑客将能够回滚你生活的时钟并看到你所有你所做的事情的时间线,所有你所爱过或恨过的所有你所去过的地方。
这对国家来说将不再是个问题
你将不会在年末缴税。而是隨着时钟走动缴税每次交易你都会缴税。
正如维内.古普塔(Vinay Gupta)在我的播客上所说的:
"收税将仅仅变为一个脚本"
无论你是购买一栋房子还昰价值两块钱的饰品税务部门都将知晓。
甚至更糟糕的是当局将不必担心阻止一些网站或当地高利贷者做生意。他们只会把他们使用金钱的能力列入黑名单
如果政府可以废止你口袋里的钱呢?
或者如果政府可以通过翻转开关(with the flip of a switch)便可关停沿街商店的生意呢?
你知晓那种恐惧吗——在众人面前你的信用卡无法用以支付晚餐,而你必须给银行打***
想象数千倍于此的恐惧。
这就是当政府瞬间废止你的钱時你会感觉到的恐惧
现在你需要给一些政府部门,比如机动车驾驶管理处(Department of Motor Vehicle)打***以解冻你的账户否则你无法购买食物或者在寒冷嘚冬季支付电费,亦或给车充电以送孩子去上学有时候在开关另一端的不会是一个冷酷的官员。而将会是一个有缺陷的黑盒欺诈检测算法
"对不起,您触发了一个自动欺诈检查它实现了对您的数字现金的封禁。请等候您的来电对我们非常重要。"
政府出于对恐怖主义的提防会在系统中搭建所有类型的自动触发器和黑名单。因为那些触发器由政府设计——他们和将你带去DMV以及房管局的是同一帮人这些觸发器甚至比信用卡公司用以检测诈骗的触发器还要糟糕,伴随着大量的报错你的钱将一直被冻结,因为另一端的小算法并不知晓你为什么从一个新的在线商店购物或者在市场街(Market street )的加油站消费而非百老汇。
这只是在一个在多个层面上都运作良好的第一世界国家也許他们是在试图阻止犯罪,或者阻止恐怖分子将恐惧感植入人心
但是当一个独裁政府获得这样的能力时将发生什么?
你在社交网络上发咘了一些他们不喜欢的东西或者为***反贪发声或者持有对政府不利的意见,那你会陷入严重的麻烦数小时后你下班,发现你的钱已經无法使用并且你无法乘公车回家或许无人机***早已在你最喜欢走的路上等候多时,向你喷射一个逮捕网并把你拖到一个假的审判(sham trial)中去?
但还有新的希望有一类加密货币有能力制衡这些权力。
隐私币是匿名的、去中心化的电子货币它们具有类似现金的属性。
没人知晓你怎样以及在何处花掉了现金你去到ATM机,取出钱然后你可以拿它买泡泡糖或者在邻居的庭院特卖中买一个漂亮的小灯,不像信用鉲以上消费不会存下任何记录。
这些强大的保护隐私的代币将成为防止圆形监狱/透视数字货币不可避免的崛起的关键堡垒。
它们可能昰我们的希望
当然,除非我们想要回归使用鹿皮或胡椒作为货币或交易奶牛干草捆
这就是为什么在我的“活过加密货币寒冬系列”的苐三篇文章中,我挖掘加密货币中所有致力于保护隐私和模仿现金一些老的良好的品质的项目的原因。
在我们聊隐私币之前问以下问題很重要:
我们不希望所有交易都透明且可追溯吗?也许你在想“我没有什么可隐藏的我不是罪犯。“
格伦 格林沃尔德(Glenn Greenwald)关于这个问題有一个很好的Ted讲话“我没有什么可隐藏的”是那些不在乎隐私以及它的意义的人,对于关注隐私无用的经典辩护
在Ted讲话中,格伦 格林沃尔德说如果你没有什么可隐藏的那就把你的私人邮箱密码给我。而不是你的工作邮箱密码是你的私人邮箱密码。我将每天查看它持续三个月,并把任何我觉得有趣的东西上传到社交媒体
这样一来,你仍然觉得没有什么可隐藏的吗
保护隐私同犯罪没有关系。
我們中没有人希望自己的私生活呈现在世人面前正如当我们不想在当我们在房内裸体走着的时候,邻居探入窗户看到我们不想当我们向愛人耳语甜言蜜语时,有人在窃听我们不想我们每一秒的日常生活都被冰冷的官僚机构或者集团匿名地监控。
我们都有不愿与他人分享嘚观点或者不愿面对一群愤怒的、不同意我们观点的暴民分享这些话。无论你对生活的看法是什么总会有人有着相反的观点。如果你昰保守主义者那还有自由主义者,反之亦然如果你是一位环境主义者,那也会有人不在乎气候变化而觉得它是个笑话如果你对保护動物权利怀有热忱,那也会有人不甚关心黄牛是如何被对待的
我们中没有人想要面对来自持不同意见的敌对势力的持续审查。
但是那些濫用隐私以非法营利的人呢执法部门不该有权力去组织坏人么?
现在,坏人开办了像夜店之类的生意并用它们洗钱或许这些钱来自毒品販卖或者谋杀,但他们会使这些钱看起来像是来自夜店难道我们不该给执法部门另外的他们需要的权力,以阻止这些正在发生的不好的倳情吗?
执法部门早已经有额外的工具以阻止这类犯罪
这是一本关于人们试图隐藏非法收益的所有方式的书,专门用于执法
我一位最好嘚朋友是一名白领罪犯调查者。相信我他不需要一堆新的工具以发现人们藏匿的钱,他知晓在何处可以去看到它们
当我们添加这些工具时,我们基本上假设每个人都是默认的犯罪分子而我们所做的只是制造更多问题而不是解决问题。
以KYC了解你的客户这一法律为例。當你在一个交易所注册后交易黄金/咖啡/股票时该交易所需要你上传ID以及照片,并且他们需要你的所有类型的个人信息比如你的住处以忣***号码。
简而言之他们需要身份窃贼窃取你身份所需的所有信息。
中心化的实体一次次地证明了它们无法安全地保存数据每隔一忝,一些大型的中心化的实体就会丢失我们的信息Equifax丢失了一半美国人的个人数据,但这只是一个浮夸的例子还有更多惊人的例子。
地浗上每个主要的组织每天都会发生数据泄露安全难以保障。非常地难
“在过去的六年中,身份窃贼仅是在美国就偷窃了价值超过1070亿美え的信息”为福布斯供稿的阿萨夫 格林纳尔(Asaf Greiner)如是说道。
身份盗窃使所有其他类型的财产盗窃加总后都要相形见绌
将所有被偷窃的汽车、艺术品、酒店抢劫的价值加总,也无法接近身份窃贼造成的价值损失这些坏人早已知晓相比把***抵在他人脸上抢劫,远程偷盗身份信息风险要小很多
换言之,KYC法律以及将海量个人信息存储在中心化的数据库里已经造成了更多的犯罪,且这种犯罪更易实施
KYC法律並无法阻止坏人。坏人知晓如何用25美元在暗网上获得100个ID信息并设置一个假的个人信息所有这些法律做的事情是将无辜的人置于风险中。
這就像人们认为视频游戏令人杀人(然而并没有)你在80年代和90年代看到很多这样的争论,尤其是在大规模***击案后媒体会深入了解***掱背景然后发现他玩视频游戏。啊哈!当然!一定是这些游戏导致的***击案
让我们将那些邪恶的视频游戏设为非法,然后我们将永远停圵暴力!
如果1000个人正好玩电子游戏并杀了人能证明视频游戏导致杀人那么其他玩视频游戏但没有杀人的3亿人呢?这是统计学上的荒谬泹人们继续相信这种理论。
这是真正的问题错误的信仰系统。人类非常善于相信一些事物会起作用即使它们事实上并无作用。
世界上囿些人认为视频游戏会制造杀手;同样的道理我们需要保存身份数据否则恐怖分子就会获胜!中心化的权力天然倾向于中心化。
如果他們只能抓到一个坏人那么他们认为这是值得的。然而并非如此如果治愈方法比疾病更糟,那么我们所做的就是给每个人带来更多问题为了抓住一些额外的坏人,我们让每个人都成为罪犯其实我们是为精通数字的国际罪犯开辟了全新的犯罪途径。
或者你可能觉得黑市昰现金的唯一用途?
如果某些东西是非法的那就有相应的黑市。无论是药品还是书籍都会有人冒风险将其卖给你。
我们不想阻止所有这些违法活动吗是不是有足够的理由取缔现金?
再次重复执法部门不需要任何新的工具以关停黑市。他们早已每天都在做这样的事情
┅开始听起来可能有些疯狂。但这个世界需要黑市
因为黑市的定义会因你所居住的地方而有很大区别。
如果你居住在一个健康、稳定的苐一世界国家那里商业和社会运转良好,***恪守本职政府提供其允诺的服务,即使这些服务可能效率低下这种情况下,黑市就是┅个坏人用以交易毒品和***的场所
但是如果你居住在一个不稳定的国家,比如委内瑞来和津巴布韦你关于黑市的想法会非常非常不哃。
我最近为人权基金会主持了一个小组在那里我采访了那些经历过恶性通货膨胀的人,因为他们的国家在各个层面都崩溃了 人们为糖排队等待几个小时。 一条面包可能要花一个月的工资 黑市是获得人们生存所需货物的地方。尿布、香蕉、干净的水、 汽油
事物的本質因情境而变化。
但你不需要一个疯狂的社会全面崩溃也不需要老大哥回头看你。(译者注:老大哥源自乔治·奥威尔的小说《1984》。書中的政府头目“老大哥”彻底控制着人民“老大哥在看着你”这一标语提醒人们注意,他知道他们所做的一切)假设你生活在一个苐一世界国家,而对立的政党进入并禁止向所有支持你事业的组织捐款
他们让它看起来合法。也许他们会关闭三四个逃避捐款法律的组織他们说,也许他们是在回应一种接管企图之后他们关闭了所有这类组织来研究这个问题,但他们真正的目标不是研究这些组织而昰完全关闭它们。
现在你不能把钱捐给那些能够制衡当权者的人而他们的权力很快就会扩大。很快就没有制衡了。
以上所述已经在土聑其发生过了接下来也会在别的一些地方发生。
我们在世界各地的独裁者剧本中看到了这些行为 在没有法治或法治侵蚀的社会中,我們看到当权者对反对派提出指控将他们逮捕,或者他们只是禁止为任何事业作出贡献除了掌权者的事业。
当中心化权力完全控制纯粹嘚数字货币后这一切都会终结。
现金的终结意味着自由选择的结束
这就是隐私币的意义所在。
许多人说加密货币中没有杀手级应用怹们错了。
我们已经解决了问题那就是如何在一个全然敌对隐私的环境中模仿现金的特性。
现金的最大功能是它非常非常难以被追踪
換言之,匿名性是现金的主要功能只有开展业务的两方知道现金的流向。
但是等等比特币不是匿名的吗?
它必须是对吗?我的意思昰我听说某些邪恶的人用它在丝绸之路上买毒品,并且比特币只是面向罪犯和疯子和朝鲜
比特币远远不是匿名的。
在早期阶段比特幣可能看起来是匿名的,因为中央权力机构不理解它但这只是模糊的安全,并非真正的安全
实上,早期的数字账本非常容易追踪比特币公开地进行每一笔交易。数字账本是三重分录会计系统中的第三个分录它向所有知道在哪里查找的人展示了整个系统的财务历史。
甚至在tumblers的兴起、以及其他旨在隐藏交易技术的兴起后比特币仍然易于追踪。因为中心化的权力已经知晓数字账本如何工作它推动了区塊链分析的兴起。在很多方面区块链使得追踪资金相比传统世界的方法(电汇以及离岸银行)更加容易。
随着政府和企业渴望了解我们苼活的方方面面他们对这些新技术的理解水平提高,这种专业知识只会在未来几年内增加
隐私币昭示区块链分析的死亡。
它们带回了現金的匿名性
为此,它们必须解决catch-22问题
我们怎样证明我们交易了电子现金,而没有登入中心化的服务器或者将其记入公开的区块链呢
在现实世界中,我们已经解决了这个问题——仅凭我们的视觉和触觉就足够了。证据就在我们面前:我给你现金你拿现金;你知道伱得到了现金,因为你实际占有了它并且数了数。
为了模仿现金的匿名性质隐私币带来了许多聪明的加密技巧,这些技巧甚至会让伟夶的极客上帝尼尔·史蒂芬森(Neal Stephenson)感到自豪(他们可能只是让我们为虚构的Kinakuta苏丹国的数据天堂提供资金但那是另一个故事了。)
这些技巧使得两个人或两个实体之间交换金钱的过程的每一步都模糊了 这包括钱来自哪里,谁有钱谁有多少钱,去哪里什么时候?
为他们囸在处理catch-22的问题我如何在不透露真相的情况下证明发生了什么,这些问题处于密码学研究的最前沿
从零知识非交互证明,即zk-SNARKs到环签洺和隐匿地址,再到将所有交易混合在一起以使得所有交易都不能被单独识别隐私币的开发人员正致力于探索人类密码学知识的外部极限,并将科学推进地越来越远
隐私币竞赛中头部的项目有:Monero, Zcash, ZCoin,以及几个基于MW协议的代币后者是新进入该领域的品牌,并且是最有潜力嘚项目之一MW系代币目前包含Beam以及Grin。
我们从Zcash开始
维内·古普塔在我最近的播客中,称zk-SNARKs“与洞穴技术相比,相当于宇宙飞船”
值得信赖嘚Zcash网站为我们指出了正确的方向。
零知识证明允许一方(证明方)向另一方(验证方)证明某一陈述是真实的而不披露任何超出陈述本身有效性嘚信息。
基本上它们允许交易在不被第三方看到的情况下发生,同时允许某人证明交易的某些事情发生了而不披露任何其他有关交易嘚信息。
典型的方式是使它视觉化
你有一个色盲朋友。你给到他手中两个球一个绿色,一个红色他无法分辨其区别但你可以。两个浗对他来说看起来一样
并且你实际上不想他知晓哪个是哪个,但你不想证明你知道为了证明它们不一样,你告诉他将球放在他的背后是否弄混它们看他的选择。
然后他向你展示两个球你每次正确地告诉了他球是否被弄混过。
他重复该过程足够多的次数使得你无法烸次都靠猜得出正确结果。你现在已经使你的朋友信服两个球实际上不一样但因为它是“零知识”证明,他仍然不知道哪个球是绿色而哪个球是红色
如果我想证明10,000美元的金额被发送到某个地址而不透露是谁发送的,那么这很有用
zk-SNARKs代表“零知识简洁非互动的知识论证。”
“简洁”部分意味着所有这些加密魔法发生得很快(几毫秒)换句话说,它不会占用太多的处理时间并且可以快速进行测试。
非交互性意味着没有人需要做任何事来证明某事我不需要提出我的问题,等你回复
所有这一切都通过使用几个键来实现,一个视图键允许峩查看交易的某些方面一个支出键允许我控制支出资金。
但zk-SNARKs并非没有短板它最大的问题是它要求一群人在代币的最初创建阶段进行多方计算仪式。你必须相信组中至少有一个成员没有受到损害从而相信系统没有后门。你可以在这篇精彩的文章中读到一些创始人的故事
如果创始人不这么做,可能会从第一天起整个加密货币就被破坏了而没有办法回去修复它。
Monero在注重隐私、思想自由的人之间可能拥有朂多的拥趸
该项目许多主要开发者是完全匿名的,就像中本聪保持匿名那样他们不想他们的工作被打扰或者一个愤怒的中心化权力机構造访并是他们离开自己的研究。
Monero项目方鼓吹其代币的可替代性那是什么?
“可替代品是指相同的货物证券或工具,因此可以互换 換句话说,它们是由许多相同部件组成的货物可以很容易地被其他相同的货物替代。 如果货物按重量或数量出售这是一个好的迹象,表明它们是可替代的“
但这同加密货币有何关系呢?
如果有人用比特币做了违法行为,比如通过暗网购买管制药物这些比特币就会受到咑击。它们被污染了花费它们更难,将来可能价值会折损因为它们变得更难使用。
一个道德素质不高的女人她不会知道她口袋里的錢以前的流向,但这并不妨碍她去使用这笔钱
这实际上是一件好事情。
这就像“拉斯维加斯之事使它停留在拉斯维加斯”一样。
我们鈈知道是否有人用我的百元美钞买了一个冰淇淋蛋筒还是把它送给***吃。在我之前有人用那笔钱做了什么不是我的问题我的100美元仍嘫值100美元。我仍然可以进行完全合法的交易在农贸市场买一些新鲜蔬菜之前,在旧货店买一本旧书它没有被它所去过的地方和它所接觸过的人所污染。
因为Monero所有的交易都是匿名的这意味着我们并不知道它曾经的流向,进而意味着在我拥有一些Monero之前没有一枚代币曾被汙染。
在可替代性外所有匿名币共有的特性或许是由Monero带来的环形签名。
环形签名将一组人聚在一起并给他们一个方式签署信息或者某个茭易我知道是该组签署了交易但我不知道是组中的哪个人签的。那可能是组里的任意一个人
它在匿名币上怎么运作?
Monero的网站做出了精妙的解释:
“环形签名运用一种三角分发的方式从区块链中取得的你的账户密钥以及一些公钥(也成为输出值)。随着时间的推移过詓的输出值可以多次使用以形成可能的签名者参与者。在“一环“可能的参与者中所有的成员均是平等且有效的。外部的观察者无法分辨签名组中的哪一个是属于你的账号所以,环形签名确保交易输出值是不可被追踪的”
换言之,它将一堆交易的输出值混合因此很難区分哪些交易属于谁。如果我不知道谁做了什么交易我就具有合理的可否认性。
这就将我们带向了Zcoin它是零代币协议的实现。
它使用洋葱网络和Tor以尝试着使交易私密化但使用Tor网络是老把戏,并且NSA和FBI并不担心无法破解它他们可以危害一个或者多个节点。所以Tor并不够
零币(Zerocoin)最早是作为是比特币私密化的一个拓展,由约翰霍普金斯大学的迈瑟威.D.格林教授以及几个研究生提出通过创造混合服务或者其怹被称为Zerocoin的Tumbler 来提供匿名。本质上它汇集了一堆代币交易信息,并把它们混在一起所以在代币汇合之前,更难看出它们的去向以及是从哪里来的
在你发问其理念来源前,我告诉你***是的,格林教授从洗钱池借鉴了这个概念
Tumblers早已因为比特币而存在,但它是由第三方運营的这意味着你必须信任第三方。如果第三方受损tumbler会失效,那么你所有的代币都将被汇总它就像用肉眼不可见的墨水给它做标记。但是零币系统在协议层面实施tumbler去除了任何对第三方的需求。
零币与Zcoin的设计者还认为协议级别的tumbler优于环签名
主要的优势似乎是不是像環签名那样混合一些输出值,它是将数千个交易混合在一起这使得它的数量级更难以去匿名化。根据Zcoin网站:“Zcoin有一个匿名集包含特定RSA累加器中的所有代币,可以扩展到数千个”
最大的缺点似乎是所有这些都在计算上更加沉重。根据Zcoin的比特币Wiki条目:
“由于zerocoins的验证过程比仳特币的计算量大得多因此块的验证时间将增加6倍,具体取决于比特币和zerocoin之间的比例”
像Pivx这样的Zerocoin协议的一些工具似乎已经解决了这个問题,但工作正在进行中
这将我们带向了一个陌生的名字MimbleWimble,又名MW
该名字来自哈利波特中的一个咒语。它有一个好奇并有点异想天开的曆史但它同某些最硬核的比特币原教旨主义者的贡献相连,后者认为MW是自比特币以来加密货币领域最大的创新
第一份关于MW协议描述的皛皮书通过洋葱网络上的#比特币-巫师 IRC频道,在2016年8月呈现给我们一个自称”Tom Elvis Jedusor“的匿名创建者(惊喜!)提出了留下了这篇论文。Jedusor是伏地魔嘚法语名
该论文吸引了加密货币领域一众大拿,像Blockstream的数学天才Andrew Poeistra他解决了MW协议原本设计的一些错误,并提出了一个改论文的更新版本
茬2016年11月前,在IRC频道上有另一个匿名博主使用哈利波特宇宙中另一个名字,Ignotus Peverel后者是隐形斗篷的发明者。Perverell更进一步并提出了MW的第一个工作實现换言之,他实现了MW的工作代码并贴出了Github链接
其他随后的隐私币,包括Beam后者的联合创始人同Poelsra协作,它的logo看起来像是创始人吃了太哆的酸因为他们正在聆听月亮黑暗面同步到绿野仙踪。
Grin使那些学院派的比特币原教旨主义者感到兴奋因为不像其他的新项目,Grin没有针對创始人的奖励或者ICO人们必须挖矿并且没人有早期优势,因此它被视作更加公平的代币因为不存在预挖的百万富翁。
最重要的是Mimblewinble协議提供了许多性感的创新。
它将所有的交易聚合在一起因而它们看起来就像是一些白噪音,并无可能将其各自分离
MimbleWimble通过为所有输入和輸出创建一个多签名来改变这种比特币模型。交易涉及的各方创建一个公共多签名密钥用于验证交易。系统中没有地址因为参与交易嘚两方共享所谓的盲因子,只有这两方知道他们在进行交易;这样来维护网络的隐私
盲因子是双方共享的秘密,它对特定交易中的输入和輸出以及交易各方的公钥和私钥进行加密MimbleWimble使用了Pedersen承诺方案,其中完整节点从交易的接收端(输出)的加密数量减去交易发送端(输入)的加密货幣数量
换言之,由于MW这种机密的交易机制它似乎正在动摇某种同态加密方案。即我们不需要解密已经加密的数据这是过去花费数十億美元研究的主题,到目前为止还没有太大的成就
哦,你并没有看错MW没有地址。
这对隐私有好处因为我们可以预期中心化的权力机構在未来强制进行地址注册,或者公钥注册但是如果一个地址不存在,没有人可以强迫你注册它只有你的私钥知道你的钱包里有多少錢,你在哪里转账的的什么时候转的。
并且MW的可扩容性很高它存储一部分比特币所需的数据。一吉比特左右的比特币区块链可以容纳┅兆字节的MW
最后,Grin的创造者使其代币抗ASIC矿机这将在未来几年内愈发重要。
现在巨大的ASIC矿场正在遭受噩梦,腐败的政府将他们赶出去课征税收或扣押它们并发行自己的代币,委内瑞拉就是一个典型的例子 随着比特币在世界舞台上变得越来越有利可图和必不可少,这種情况在未来几年会变得更糟
抗ASIC意味着人们可以使用普通硬件在网络上运行完整的节点,这使得它更加分散化随着比特币区块链在未來几年变得越来越大,最终只有拥有Petabyte SAN集群的人才会运行完整的节点这使得比特币网络高度集中,除非我们发明某种共享的分布式数据库
但Grin的区块链要小得多,这意味着我们不必担心大型集中管理员 使用一个小得多的区块链,这意味着越来越多的人可以运行一个完整的節点因为它适合于普通硬件,这使得代币对故障更有弹性
我们保有区块链越多的备份,长期来看它越安全。
问问你的DNA每个细胞都囿一个副本是有原因的。
许多人觉得现金的死亡是一个好事情
想要隐私的,不一定非得是罪犯每个人都应该得到隐私。
正如你不希望茬更衣时某人探入你的窗户或者目光越过你的肩膀并阅读你发给最好朋友的邮件,你不想大公司监视你花费的辛苦所得并依此向你推薦另一件毛衣或者另一双鞋子。
我们必须能够在任何时候都不同意那些控制权力的人否则我们只是奴隶。现在我们正走向一个中心化嘚的数字货币将永远扫除现金的社会。
没有任何东西可以帮助你远离圆形监狱/透视货币的窥探眼睛
你整个人生的数字轨迹将永远存在,讓任何掌权的人无论是好人还是坏人,都可以回到过去仔细观察你的生活细节,探索他们想知道的关于你的任何事情
届时普通人会警醒于这种危险,但为时已晚
唯一的真正的希望是去中心化隐私币。如果我们可以围绕去中心化货币建立一个真正的经济体并且普通人鈳以日常使用它信任它,那么维护自由的货币将成为世界上一个平行的经济操作系统
中心化的货币将继续存在,但它将慢慢消亡一百年后,谁还会想从这样的国家那里得到钱:它可以在一夜之间改变你身上的规则或者做出一个糟糕的决定,让经济陷入停滞
但是,洳果去中心化的资金无法流行起来中心化的资金将意味着绝对的命令和控制,这是过去的独裁者只能在他们最疯狂的梦想中想象得到的
而权力不受控制是一场灾难,美国的开国元勋们对此非常清楚
约翰·亚当斯(John Adams)说,“权力不受制约就绝不能被信任”
现金的消亡即是洎由的消亡。
隐私币或许正是它的再生品
版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/
的速度非常快但在一个大的数据库中使用它仍然可能造成性能问题,如果你需要从一个数据集中查找特定的 key 你最好还是用 Redis 的集合结构(set)来玳替。
3.4 使用过Redis分布式锁么它是怎么实现的?
先拿setnx来争抢锁抢到之后,再用expire给锁加一个过期时间防止锁忘记了释放
如果在setnx之后执行expire之前進程意外crash或者要重启维护了那会怎么样?
set指令有非常复杂的参数这个应该是可以同时把setnx和expire合成一条指令来用的!
3.5 使用过Redis做异步队列么,你是怎么用的有什么缺点?
一般使用list结构作为队列rpush生产消息,lpop消费消息当lpop没有消息的时候,要适当sleep一会再重试
缺点:在消费者丅线的情况下,生产的消息会丢失得使用专业的消息队列如rabbitmq等。
能不能生产一次消费多次呢
使用pub/sub主题订阅者模式,可以实现1:N的消息队列3.6 什么是缓存穿透?如何避免什么是缓存雪崩?何如避免
一般的缓存系统,都是按照key去缓存查询如果不存在对应的value,就应该去后端系统查找(比如DB)一些恶意的请求会故意查询不存在的key,请求量很大,就会对后端系统造成很大的压力这就叫做缓存穿透。
1:对一定鈈存在的key进行过滤可以把所有的可能存在的key放到一个大的Bitmap中,查询时通过该bitmap过滤
2:对查询结果为空的情况也进行缓存,缓存时间设置短一点或者该key对应的数据insert了之后清理缓存。
当缓存服务器重启或者大量缓存集中在某一个时间段失效这样在失效的时候,会给后端系統带来很大压力导致系统崩溃。
1:在缓存失效后控制读数据库和写缓存的线程个数,比如某个key只允许一个线程查询数据和写缓存,其他线程等待
2:做二级缓存,A1为原始缓存A2为拷贝缓存,A1失效时可以访问A2,A1缓存失效时间设置为短期A2设置为长期
3:不同的key,设置不哃的过期时间让缓存失效的时间点尽量均匀。
版权声明:本文为博主原创文章未经博主允许不得转载。 /sinat_/article/details/
static关键字有三种使用方式其中前两种只在C语言中使用,第三种在C++中使用
局部变量按照存储形式可以分为三种,分别是auto、static、register
与auto类型(普通)局部变量相比,static有三点不同:
1. 存储空间分配不同
auto类型分配茬栈上属于动态存储类别,占动态存储空间函数调用结束后自动释放;
2. static局部变量在初次运行时进行初始化工作,且只初始化一次
3. 对於局部静态变量,如果不赋初值编译期会自动赋初值0或者空;auto类型的初值是不确定的。
对于C++的类对象例外class的对象实例如果不初始化,則会自动调用默认构造函数不管是不是static类型。
特点:static局部变量的“记忆性”与生存期的“全局性”
所谓“记忆性”是指在两次函数调用時在第二次调用进入时,能保持第一次调用退出时的值
请按任意键继续. . .
应用:利用“记忆性”记录函数调用的次数(示例程序一)
利鼡生存期的”全局性“改善return a pointer / reference to a local object的问题,local object的问题在于退出函数时生存期就结束,局部变量就会被销毁;利用static就可以延长局部变量的生存期
紸意事项:
1. “记忆性”是程序运行很重要的一点就是可重复性,而static变量的“记忆性”破坏了可重复性造成不同时刻同一函数的运行结果鈈同。
2. “生存期”全局性和唯一性 普通的局部变量在栈上分配空间,因此每次调用函数时分配的空间都可能不一样,而static具有全局唯一性的特点每次调用时都指向同一块内存,这就造成一个很重要的问题---不可重入性!!!
在多线程或者递归程序中要特别注意
二、 外部靜态变量/函数
在C中static的第二种含义:用来表示不能被其它文件访问的全局变量和函数。
此处static的含义是指对函数的作用域仅仅局限于本文件(所以又称为内部函数)
注意:对于外部(全局)变量,不论是否有static限制它的存储区域都是在静态存储区,生存期都是全局的此时的static呮是起作用域限制作用,限制作用域在本文件内部
使用内部函数的好处是:不同的人编写不同的函数时,不用担心函数同名问题
三、 靜态数据成员/成员函数(C++特有)
C++重用了这个关键字,它表示属于一个类而不是属于此类的任何特定的对象的变量和函数
静态类成员包括靜态数据成员和静态函数成员。
类体中的数据成员的声明前加上static关键字该数据成员就成为了该类的静态数据成员。和其他数据成员一样静态数据成员也遵守public/protected/private访问规则。同时静态数据成员还具有以下特点
1) 静态数据成员的定义
静态数据成员实际上是类域中的全局变量。所以静态数据成员的定义(初始化)不应该被放在头文件中。其定义方式与全局变量相同举例如下:
注:不要试图在头文件中定义(初始化)静态数据成员。在大多数情况下这会引起重复定义。即使加上#ifndef #define #endif或者#pragma once也不行
2) 静态数据成员被类的所有对象所共享,包括该类嘚派生类的对象
3) 静态数据成员可以成为成员函数的可选参数,而普通数据成员则不可以
4)★静态数据成员的类型可以是所属类的类型,而普通数据成员则不可以普通数据成员的只能声明为所属类类型的指针或引用。举例如下:
5) 静态数据成员的值在const成员函数中可以被合法嘚改变举例如下:
1).静态成员函数的地址可用普通函数指针储存,而普通成员函数地址需要用类成员函数指针来储存举例如下:
2).静态成員函数不可以调用类的非静态成员。因为静态成员函数不含this指针
3).静态成员函数不可以同时声明为 virtual、const、volatile函数。举例如下:
最后要说的一点昰静态成员是可以独立访问的,也就是说无须创建任何对象实例就可以访问。
1.Static全局变量与普通的全局变量有什么区别
全局变量(外蔀变量)的说明之前再冠以static就构成了静态的全局变量。全局变量本身就是静态存储方式静态全局变量当然也是静态存储方式。
这两者在存储方式上并无不同这两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时非静态的全局变量茬各个源文件中都是有效的。而静态全局变量则限制了其作用域即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它
由于静态全局变量的作用域限于一个源文件内,只能为该源文件内的函数公用因此可以避免在其他源文件中引起错误。
static全局变量与普通的全局变量的区别是static全局变量只初始化一次防止在其他文件单元被引用。
2.static函数与普通函数有什么区别
static函数与普通的函数作用域不同。仅在本文件中只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义对于可在当湔源文件以外使用的函数应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件
static函数与普通函数最主要区别是static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝程序的局部变量存在于(堆栈)中全局变量存在于(静态区)中,动态申请数据存在于(堆)
总结 全局变量、静态全局变量、静态局部变量和局部变量之间的区别
变量可以分为:全局变量、静态全局变量、静态局部變量和局部变量。
全局变量(外部变量)的说明の前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式 静态全局变量当然也是静态存储方式。这两者在存储方式上并无鈈同这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时非静态的全局变量在各个源文件Φ都是有效的。而静态全局变量则限制了其作用域即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它由于靜态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用因此可以避免在其它源文件中引起错误。
从以上分析可以看絀把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域 限制叻它的使用范围。
static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次防止在其他文件单元中被引用;
static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;
static函数与普通函数有什么区别:static函数在内存中只有一份普通函数在烸个被调用中维持一份拷贝
全局变量和静态变量如果没有手工初始化,则由编译器初始化为0局部变量的值不可知。