学习使我快乐番外篇一:我读井畅物语
本小白读了井畅的白皮书,对具体技术还是一头雾水。赶紧找来井大的科普系列之井畅物语,温故知新一下。
井畅物语之一:井畅是什么?
首先说一下井畅是啥,很简单,是一个具有跨链功能的去中心化数字资产交易所。这里主要是两个概念:第一个是跨链,第二个是去中心化。
因为井畅具有去中心化交易的能力,因此其适用范围,不仅是虚拟币这类数字资产,还包括传统的大宗交易和外汇交易。
在这里,井大强调了去中心化交易的安全性和必要性,不光是虚拟币交易所会跑路,外汇交易所也会跑路,而且危害和影响更大。去中心化技术解决了此类问题。
井畅物语之二:Polkadot的Bug
这个问题,就是钱包里面的关键库payable成为空白,于是所有用这个钱包存钱的同学们,你们的钱全部封住,出不来了!!!
这个估计影响超过1亿美元的以太币价值,呵呵。
井畅的白皮书里,提到了目前正在推进的去中心化解决方案和相应的项目。关于Polkadot的基本信息,可参阅文章1、文章2。
井畅物语之三:Polkadot问题的原因
因为在7月20日的修复合约里面,埋藏了一个漏洞,如果你调用钱包启动程序,你就可以把Parity钱包的合约转化成一个你自己的私人钱包。
这个漏洞,昨天被无意中启动了。而Parity的钱包合约里面,有一个自己自杀的功能,这样有人又启动了这个功能,结果现有的钱包,全部不能动用了,呵呵。
井畅物语之四:Polkadot问题分析
上次,就是你创建Parity多签名钱包,是会调用Solidity的_walletLibrary,那么怎么调用呢,就用了一个代理(delegate),返回_walletLlibrary.delegatecall(msg.data)。那么对传过来的信息里面,找不到对应名字的怎么办?
Parity团队就用了兜底的功能,来解决送以太币,这个功能叫做payable(),如果你的msg.value>0,有币,就送出去。
没有币,但是有信息,就用上面那个代理功能。结果这里就被黑客攻击了。
井大对Polkadot问题原因的分析。
井畅物语之五:黑客攻击Polkadot的方式
那么黑客就搞了一个功能,叫做initWallet,这个名字代理找不到,就直接去Solidity,然后Solidity这边编程的,居然让这个功能作为公共功能,而不是内部的功能。这个是Solidity团队要打的30大板。
那么你要设置一个新钱包,是否要检查一下这个地址是不是已经有了现存钱包?没检查,这个再打30大板,呵呵。
那么从这里,黑客就调用了initMultiowned程序,将现有多签名钱包的主人,换成自己,呵呵。当然下一步,就是把钱包里面的以太币清空。
本小白觉得技术和产品的安全性和稳定性相当重要,成熟的产品需要首先经过安全性的测试,这里给井大的白墨子安全团队打一波广告:
白墨子安全实验室,隶属于墨客公司,是以墨客公司的专职安全团队为主体组建的专业区块链安全实验室。实验室现有信息安全专业博士2名,高级安全工程师2名,拥有“区块链模拟攻击平台”、“智能合约安全审计平台”等软硬件安全设施,可以提供专业、可信的区块链安全服务。
(以上来自于网络公开信息)
井畅物语之六:有人手抖了一下
不过这些黑客水平还不够强,所以并没有将上面的步骤搞成script。因此他们找到了最大的两个钱包,手动去攻击,就偷走了价值3千万美元的以太币。
那么白帽子团队赶紧冲进来,用 script把所有的钱包全扫一遍,抢在黑帽子动手之前,全部把币转走,这样就救下来1.8亿美元,呵呵。
那么在7月20日,Parity团队就修复了漏洞,将payable里面的delegatecall删掉了。
可是昨天无意中间,出现了另一个漏洞。
还好救下来一些,反应迅速。
井畅物语之七:最值钱的一次手抖
然后这个同学不太清楚,对自己创建的钱包不满意,就想杀掉它吧。于是他就调用了kill这个功能,把自己的多签名钱包(其实是Parity的walletLibarary的合约)给自杀掉了,呵呵。
把钱包杀掉,钱就石沉大海了。
井畅物语之八:城门失火殃及池鱼
Parity多签名钱包闯的祸,自己先遭殃了,呵呵。因为自己的钱包,所以Polkadot的ICO的钱也自然去了这里,大家看到账号里面有306276个以太币,按照300美元价格估算,就是9188万美元了,呵呵。
有同学问我们的墨客,我们没有用多签名钱包,因为我一直就对他们的安全性持有怀疑。
一个失误损失了一个亿。
井畅物语之九:0.85 USD KO 3亿USD
看了前面系列,有不少同学吓尿了,赶紧来问他们的以太坊钱包是否安全,呵呵。
其实不用担忧,这个只是发生在Parity做的多签名钱包你可以想象这个多签名钱包其实就是一个另类的智能合约,里面规定了多数签名就可以用钱包里面的币。
据说干这个惊天动地的大事的人,是一个开发新鸟,他以为只是杀掉别人一个钱包,不知道是用核武全部轰了,呵呵。
他整个过程用的gas费用,只有0.85美元,不到1美元,成功灭掉了3个亿美元,呵呵。
0.85美元换了3个亿。
井畅物语之十:跨链技术需要行业共同努力
虽然Wood大神自食其虫(bug),导致Polkadot没了1亿美元,还是希望他们剩余的钱,可以继续开发工作。毕竟他们和我们井畅,既是对手,也是战友,跨链技术还是需要好几家团队的共同努力的。
目前井畅已经走出来了,不知道Polkadot现在怎么样了。
井畅物语之十一:网络安全基本功的欠缺
目前来看,区块链的第一代人物,比如中本大神,背景是密码学和网络安全,思维方式是以安全起始,只有安全的事情,才去做。比如中本大神选择的加密库,后来发现是没有美国国家安全局的后门的库,这个肯定就是密码界内部小圈子的秘密知识了。
而从小V他们开始的第二代区块链人物,算是胆大而妄为。比如自己搞Solidity编程语言,居然里面的功能哪些该公开哪些不该,都没有理顺。比如上次那家,自己牛逼写哈希库,让人家行业专家几分钟就碰撞出来。比如这次的公共库的运用,哪有几亿美元相关的东西,居然连网络安全的行业内部检验,都不做的,呵呵。
其中主要原因,就是现在的人士多为互联网背景,讲求快速迭代,讲求功能繁复,好比互联网你重新部署一下就行了呗。可是只有我这种来自网络安全行业背景的人士,才懂得中本大神的比特币系统设计的简练和安全。
未来的跨链技术,从我思维的角度,也不能从万能系统开始,而是要实实在在安全地做好跨链代币呼唤。至于其他的功能,还是要有一个屏蔽,不然,从A链跨过去,把人家B链给灭了,就不太好吧,哈哈哈。
这也是井大很早就成立安全团队的原因吧。
井畅物语之十二:区块链之间的交易
目前所有的各类区块链项目,基本上都是在自己的孤岛单独存在,而链接各个孤岛的桥梁就是各种币币兑换的交易平台。而大部分的交易平台,本身都是中心化的。这里有两个概念大家需要明白。
第一个就是在平台上进行交换,这里可以是中心化,也可以是去中心化。去中心化的,比如井通、比特股、瑞波等等,在这些平台上面发布的虚拟币,用户是可以从自己的钱包做交换,而无需充币啊,提币啊,这些中心化平台的行为。
另一个就是平台系统的出入口,目前来看基本上都是中心化,但是因为国内之前打击了中心化平台,迫使这些平台必须走场外交易的C2C,就是把进出系统的口子,让渡给了独立(不管资金和人员是否同源,但是在法人意义上)的接口,这个接口,就是我们称为的银关。
井通钱包的实质是一个去中心化的交易平台,稳定运行且经受住了检验。
井畅物语之十三:区块链上的银关
那么银关的概念,也要和普通的中心化交易所的充值和体现概念区别出来。
去中心化交易所,比如你有一个瑞波币,是在你自己的个人钱包里面,这里不存在啥充币和提币的概念。而在中心化交易所里面,你必须把你的币交给交易所,然后交易所在自己系统里面给你记账,然后将你的币放在他们的钱包里面保管。而你要提币,就是交易所从保管账号里面,发币给你私人钱包,然后交易所你的账号里面,记录减掉。
井大这里提到了中心化交易所的两个风险:内部造价和外部盗取。这两类风险在时有发生,也让人们意识到去中心化交易的必要性。
井畅物语之十四:虚拟币交易的法币对接
另外要交易就必须有法币的出入口。这里也有两种不同出来方法。
中心化交易所,一般采取直接法币入口,就是你在交易所有一个法币账号,你充值多少人民币啊美元啊进去,然后账号就相应的变化。那么你提现多少钱出来,也是相应变化。这里的主要不同,就是去中心化交易所,基本上这里采取了发行法币代币的方法,比如比特股的bitCNY和bitUSD,瑞波和井通里面的CNY和USD,都是平台发行的法币代币,你的所谓充值提现,就是法币和法币代币时间的买卖关系,当然最好就是币值固定一比一,而且每一个发行的法币代币,都有相应的法币作为抵押,别发生瑞波的日本日元银关跑路的情况,呵呵。
去中心化交易所发行法币代币,如井通公链上的CNT、USD等,通过银关进行兑换。
井畅物语之十五:法币的数字代币
目前来看,国内之前的中心化交易所,采取的是C2C的对点方式,来换取tether公司发行的美元代币USDT,所以看起来,目前这一块,大家的做法开始标准化,都是靠法币代币,取代了之前的人民币直接充值提现的方式。
从这里法币代币和其他虚拟币的交换,还是有中心化币币交易和去中心化币币交易之分别。那么这个接口的变化,意义重大,因为考虑到未来法定数字货币的出现,就会取代目前的法币代币,呵呵。
央行的数字货币,日本的数字货币,等等,是否会在这一两年内推出呢,拭目以待。
井畅物语之十六:资金的安全性
具有这种银关功能的去中心化平台,我称为多币系统,比如比特股,你可以交易BTS和bitCNY,也可以交易bitCNY和bitUSD。瑞波你可以做各种CNY/USD交易(汇兑),也可以做XRP/USD。井通你可以做SWT/CNY,也可以做VCC/SWT。而其他的系统,比如比特币,就是单币系统,你只可以支付,不可以挂单买卖,因为它里面没有其他可交易代币。
井畅物语之十七:基于智能合约的交易
以太坊智能合约的AAA币、BBB币和CCC币等等之间,却是无法互换,算是鸡犬之声相闻,老死不相往来,呵呵。要让它们一对一兑换,你必须每一对建立一个新智能合约,然后你可以有1000个不同的代币,呵呵。于是,0x协议就出来了,希望通过制定一系列通用的智能合约,来解决ERC20标准的代币呼唤。在这个协议上面来开发去中心化的交易平台,有0协议自己团队做的0x OTC,也有其他团队在这个协议上开发的路印Loopring团队。其实他们做的都是以太坊去中心化交易平台。
在以太坊实现多币系统的解决办法,在井畅白皮书里也有提过,一个缺点是仅限于ERC20代币。
井畅物语之十八:去中心化交易平台的弱点
但是之前包括井通在内的已经实现的去中心化交易平台,也有本身的弱点。
因为从银关进来的代币,大概是三种。第一种,就是法币,这个比特股、瑞波和井通都实现了。第二个,就是其他虚拟币,比如说比特币,怎么办?那么解决方法,就是你建立一个比特币银关,做一个比特币和比特币代币(比如bitBTC,或者jBTC),那么代币在你系统里面流通,出入平台走比特币/比特币代币兑换。
这里,井大指出,既然接入的都是虚拟币,为什么不直接接入,即跨链呢?
目前井通公链上的JBTC、JETH等还都是代币,跨链待墨客子链测试成熟后即可实施,届时可实现各类虚拟币的直接接入/跨链。
井畅物语之十九:井通的前瞻性设计
其实在2014年,井通在设计平台的时候,就不光设计了法币的出入口,也在银关这里给了实体企业用实际物理资产(比如房屋和游艇)作为对标物在井通平台上发行数字资产。
这种流程,今天叫做阿西偶,呵呵。但是在实践过程中,发现很多企业不愿意只是在你的公链上简单发一个数字资产,而是希望和我们技术合作,自己建立一条独立的区块链,这些或者称为井通亲戚链,呵呵。那么如何把这些链接进来,做到和井通平台上的各种虚拟币呼唤?这个也是跨链了,呵呵。
2014年,井通即进行了前瞻性设计,不得不佩服井大和井系团队的规划和构架能力。
井畅物语之二十:区块链的下一个杀手级应用:跨链
因此目前来看,产生数字资产一共有四个来源:1. 央行法定数字货币;2. 智能合约产生数字资产(目前以太坊的ERC20是事实标准);3. 各种私有链和联盟链产生数字资产;4. 公有链产生数字货币资产。
而跨链技术,不管你叫做跨链平台还是交易所,都无所谓,是唯一可以把这些孤岛链接起来的方法。因此我的判断,跨链,英文叫做Cross-chain atomic exchange(trading,swap),是区块链的下一个杀手级应用。
跨链技术,井畅目前已经是全球第一,而且在稳步迭代中。
接下来的内容里,井大主要介绍了比特币内战和分叉、虚拟币疯长等内容,感兴趣的朋友可以找来看看。
以上即为小白读井畅物语的内容,关于井畅,田总和大哥也对其做了深刻解读,本小白也在学习中,现摘录一些重点内容(时间为今年3月、4月)
田总:
我们的最终目标想一步到位还是非常有挑战性的,所以我们设计了好几个中间步骤,逐步迭代过去,应该你们注意到C2C已经开始做实名了,未来身份井畅平台只有交换功能,更加纯粹,KYC部分剥离出去,还有国际化版本也在推进中。
井畅是一个去中心化跨链的技术品牌,不是交易所品牌,规避各种风险。所以,有能力自己开交易所,但是没有技术的,找我们,我们会提供现有的技术包括未来跨链全套的服务。
比特币比较特殊,技术方案有,计划中是最后一步,肯定能跨。用侧链技术跨链马上就能实现,但是这个不是一个去中心化的解决方案,我们正在努力哈。
我们现在可以输出第一阶段的技术成果了,有能力建立交易所,包括但是不限于币币交换,通证互换(积分,优惠券),记住,我们是去中心化的,所有交易都在一个链上,市场深度是共享的,交易所越多,交易活跃度越大,后来加入的交易所来了就有一个流量。
MOAC,JCC一样都是ERC20,但是MOAC同时也是墨客链的原生币,那么从以太转到墨客银关上,会自动冻结以太上的墨客,然后发墨客链上的MOAC到墨客链钱包里面,反过来同样成立。
JCC是MOAC上的一个子链的token,同时也是ERC20,跨链转移的玩法一样。以后在子链上做撮合交换,JCC作为燃料的一部分,是必须的,跨链同样也要消耗JCC。
现在我们的工作是将井通银关上绑定以太的智能合约,实现JCC,MOAC,ETH转移到井通链上进行交换,比如用jMOAC,你只要拿jETH投入到智能合约中,那么在以太钱包里面转给你ETH。
跨链用来处理大宗交易,安全,但是矿工费太高。通过智能合约锁定,自动兑换成另外一个链上的token交换,成本低,可以多次交换。
其实MOAC不用去想在哪个链上,我们会保证以太,井通,墨客三个链上MOAC自动兑换等价的token,畅通无阻,JCC也是如此。
跨链都要消耗,moac消耗在转账的矿工费上,jcc消耗在智能合约运行中。
大哥:
井畅平台其实包含了两个方面,一是注册平台,二是新建钱包。
未来,我们允许新建或第三方钱包导入这样,我井畅只是一个允许交易的钱包管理容器。并且是C2C,个人到个人。
其实,大家对去中心化的理解,还不够准确。去中心化,第一个是用户帐户管理。在去中心化中,没有了用户帐户管理,要求你注册的是允许交易资格,就是同意你到平台交易。那么交易什么,用什么钱包地址,全是用户的事。平台没有权限,更不用说资产了。二是交易机制是自动撮合,包括跨链后。提交条件满足,自动成交。三是目前的交易访问,还是平台服务器。如果将来,交易访问,变成了用户打开手机,发现有N个交易请求,那自己选择自己所需。连平台都不访问了。平台变成了一个纯信息提供商,各种信息,K线等。
所以井畅定义是允许式去中心化交换管理平台, 允许指参与者必须是经过同意的,这主要是当地法律法规KYC要求(中国是实名认证)
去中心化,用户钱包地址,密钥,资产都是自己管理,平台保留。只有日志记录xx用户用xx钱包地址,在什么时间操作。具体数据上链查
而所谓钱包管理,就是一个容器,放各种钱包地址。墨客是为了解决以太应用问题。而我们只是一个流通交换的便利应用
井畅目标,我早就说过。做成业界的技术标准,而不是开个交易平台。至于跨链,我想包括路印,到现在也没有说把XX秒到佬佬家。以太都ERC20跨链的没有几个做出来,更不用讲别的了。只吹牛没有用。跨链是墨客重点内容。
从目前的技术发展看,以后的交易可以在两个链上,井通和墨客子链。如果是这样的话,在井通是消耗SWT,在墨客子链消耗JCC。
真正的以太跨链交易,只要墨客子链出来,我们就可以跟进开发的。第一步,肯定是增加交易品种。
大家理解上有偏差。app有交易功能,并不代表你不用别人交易所。例如,你有井通app交易功能,但,VCC你交易不了,要交易VCC,就必须到井畅注册,这就是N家交易所存在的理由。当然,如果井畅把所有数字资产交易对开了,app开发也全部接入,那别人的交易所是不用开。但,这是不可能的。