【峰会演讲】AlexBatlin:托管技术与服务

2018上海区块链国际周-第四届区块链全球峰会上,Trustology 创始人兼CEO Alex Batlin为大家分享了他们基于区块链的托管技术方案和实践,Trustology的托管技术使得私钥丢失不再是难以解决的问题。下文整理自现场演讲速记,有部分不影响原意的删减。

Alex Batlin

大家好,我是Trustology的创始人和CEO。Trustology是一家金融科技创业公司,致力于使用区块链技术为用户的资产提供托管服务。我以前在金融公司工作,了解中心化系统有很多内部风险如操作风险、垄断风险。去中心化的系统,能使基础设施更有弹性。这也是我为什么投身区块链领域的原因。

但去中心化的系统也面临一些挑战:

1、基于区块链的交易账户,没有人可以重置你的密码,区块链也不能,如果发生不当行为和交易,无法逆转。

2、物理攻击或网络攻击,造成私钥丢失。攻击者拥有私钥以后,就可以为所欲为。

3、还有操作上的挑战,现在以太坊的节点同步要三天时间,更不用说比特币区块链。

4、要运行不同的软件节点和钱包,再存储不同钱包的密钥涉及到大量的工作。另外还有政策风险,各个国家的法律监管和税务规则不尽相同,要遵守各个国家的规则,需要耗费大量精力。

那有什么解决方案可以帮助我们吗?

有一种古老的方法就是用纸保存,但纸很容易被破坏或者被偷。也可以扫描软件二维码,但这里也会存在恶意软件,把私钥偷走,而且还要担心备份问题,也没有任何保护措施。还有软件钱包,但如果手机被偷或者遗失,也有可能造成私钥丢失。很多人也喜欢用硬件钱包,硬件钱包攻击起来更难,它们的API非常窄,但这个设备也有可能损坏、遗失、被盗。现还有有冷储存的方法,但也存在一个问题,因为人也是可以被攻击的,另外,用冷存储还有延迟问题。

Trustology提出了托管钱包技术,这个技术能够建立托管账户,就像银行账户一样。由Trustology保管你的私钥,你要进行资产转移时,只需给Trustology发送指令即可。Trustology的使用很简单,只需在手机上下载APP,进行KYC程序后就可以在上面开个账户,然后帮你建立各种各样的私钥,生成地址。所有这一切,都是建立在反洗钱基础上的,并放在一个可编程硬件模块当中。银行实际上已经部署这个技术很多年了,这个技术有点像账簿,只不过它里面包含有安全元素。

Trustology使用插销来保证钥匙的安全性,把指令和交易分开。如果有人想要通过托管账户进行支付,只需在手机上签名,然后发送指令给Trustology,当指令验证正确后,平台会重新对交易进行签名。采用这样两步走的方法,可以把钥匙存储在手机安全元素当中,然后把签名的曲线进行翻译。因为指令和交易是隔离开的,所以这里还有一个差距或者缺口,我们会在这个缺口里建立一个安全措施,普通的钱包没有这样的安全措施。

Trustology的账户是可编程的,你可以部署自己的代码,就像区块链一样,你可以设计自己的规则。规则一旦部署后,就不能再变更,除非遵循事先约定的变革规则。

在Trustology这个托管平台上,如果你的私钥丢了或者手机丢了,怎么变更你的签名,使得新的签名成为最终被承认的签名呢?你只需再次进行身份验证,当系统确定你就是原来账户的所有人后,Trustology会注册新的钥匙,建立新的设备,将它记在你的名下。

以上所讲的是针对个人用户,如果是企业用户,可以使用会计软件或者SAP,通过API生成指令。然后将应用推送到你的手机,进行签名交易的指令,最后把它推到区块链上。对于企业客户,我们希望能实现多重签名。所以,针对个人用户和企业用户,我们有两种工作流。

Trustology使用可编程的硬件安全模块,使得代码拥有钥匙一样的安全性,这个代码必须要由正确的钥匙进行签名,以及必须有一定的人来见证,所以是非常稳定的。也有客户想要自我托管的解决方案,想要自己运行Trustology,这也可以实现,我们可以把技术许可给客户,客户自行托管。

Alex Batlin

Trustology创始人兼CEO。Trustology是一家金融科技创业公司,致力于建立智能加密平台,以保护客户资产。Alex持有布里斯托大学计算机科学学位,并被列入2015 FinTech Finance35和2016 FinTech 40名单。 在创立Trustology前,Alex曾担任纽约梅隆全球新兴业务和技术及区块链业务主管,也曾任瑞银FinTech创新实验室的创始主管,瑞银技术研究服务主管,瑞银科技研发团队工程师和SDLC服务负责人。更早之前,Alex曾在野村证券、JPMorgan和CSC等知名金融企业工作。

End

※———长按识别下方二维码 关注我们———※

赞赏

打开APP,阅读更多内容

function dalaoNameEvt(){ var dalaoName = $("#dalaoName"); var dalaoNameHtml = dalaoName.html(); if(dalaoNameHtml!="undefined" && dalaoNameHtml != undefined && dalaoNameHtml.length > 6){ dalaoName.html(dalaoNameHtml.substr(0,6)+'…'); } } dalaoNameEvt();