trisacrypto/trisa - github 專案讓錢包或交易所等可符合 Financial Action Task Force (FATF) 的 travel rule 要求。參考報導 CipherTrace Enters Race to Solve Crypto's FATF Compliance Headache - CoinDesk
AI「安全性」痛點使用保險轉移風險以及如何精算。
Lloyd’s Of London, Aon And Others Poised To Profit From Cryptocurrency Hacker Insurance
With $300 billion in crypto assets on the planet and less than $1 billion in available insurance coverage, there’s a huge imbalance between supply and demand.
發展 AI + 機械人上,日本也要失敗?(下) - *CUP
儘管技術已經做到頂尖,成本控制也在合理範圍內,但武藏精工卻還是無法完全以 AI 來取代人力。卡在他們眼前的瓶頸,叫做「安全性」。
pseudomuto/protoc-gen-doc: Documentation generator plugin for Google Protocol Buffers
git clone https://github.com/trisacrypto/trisa.git /tmp/src/trisa
bash tc.sh --gen-proto-doc /tmp/src/trisa/proto /tmp/output.md
Top
Top
Top
Field Type Label Description
id string The transaction identifier generated by the sender. Any response to a transaction request needs to carry the same identifier.
transaction bytes Encrypted TransactionData
encryption_key bytes Encryption key used to encrypt the transaction blob. This key itself is encrypted using the public key of the receiver.
encryption_algorithm string The encryption algorithm used to encrypt the transaction blob.
hmac bytes HMAC signature calculated from encrypted transaction blob.
hmac_secret bytes The HMAC secret used to calculate the HMAC signature. This secret itself is encrypted using the public key of the receiver.
hmac_algorithm string The algorithm used to calculate the HMAC signature.
Top
Top
Top
Field Type Label Description
revoked string repeated
Field Type Label Description
ca string URL where the /.well-known/trisa endpoint is located.
x509_root_store string URL to the root certificate store.
x509_issuer_store string URL to the intermediate/issuer certificate store.
x509_vasp_store string URL to the active VASP certificate store.
crl_store string URL to the CRL store.
Field Type Label Description
store X509 repeated
.proto Type Notes C++ Type Java Type Python Type
doubledouble double float
floatfloat float float
int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int
int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long
uint32Uses variable-length encoding. uint32 int int/long
uint64Uses variable-length encoding. uint64 long int/long
sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int
sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long
fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int
fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long
sfixed32Always four bytes. int32 int int
sfixed64Always eight bytes. int64 long int/long
boolbool boolean boolean
stringA string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode
bytesMay contain any arbitrary sequence of bytes. string ByteString str
.
├── trisa
│ ├── data
│ │ ├── bitcoin
│ │ │ └── v1alpha1
│ │ │ └── bitcoin.proto
│ │ └── ethereum
│ │ └── v1alpha1
│ │ └── ethereum.proto
│ ├── identity
│ │ ├── be
│ │ │ └── v1alpha1
│ │ │ └── identity.proto
│ │ └── us
│ │ └── v1alpha1
│ │ └── identity.proto
│ └── protocol
│ └── v1alpha1
│ └── trisa.proto
└── tvca
└── discovery
└── discovery.proto
15 directories, 6 files
syntax = "proto3";
package trisa.data.ethereum.v1alpha1;
option go_package = "github.com/trisacrypto/trisa/proto/trisa/data/ethereum/v1alpha1";
message Data {
string source = 1;
string destination = 2;
int32 amount = 3;
}
syntax = "proto3";
package trisa.data.bitcoin.v1alpha1;
option go_package = "github.com/trisacrypto/trisa/proto/trisa/data/bitcoin/v1alpha1";
message Data {
string source = 1;
string destination = 2;
int32 amount = 3;
}
syntax = "proto3";
package trisa.protocol.v1alpha1;
import "google/protobuf/any.proto";
option go_package = "github.com/trisacrypto/trisa/proto/trisa/protocol/v1alpha1";
service TrisaPeer2Peer {
rpc TransactionStream(stream Transaction) returns (stream Transaction) {}
}
message Transaction {
// The transaction identifier generated by the sender. Any response
// to a transaction request needs to carry the same identifier.
string id = 1;
// Encrypted TransactionData
bytes transaction = 2;
// Encryption key used to encrypt the transaction blob. This key itself
// is encrypted using the public key of the receiver.
bytes encryption_key = 3;
// The encryption algorithm used to encrypt the transaction blob.
string encryption_algorithm = 4;
// HMAC signature calculated from encrypted transaction blob.
bytes hmac = 5;
// The HMAC secret used to calculate the HMAC signature. This secret
// itself is encrypted using the public key of the receiver.
bytes hmac_secret = 6;
// The algorithm used to calculate the HMAC signature.
string hmac_algorithm = 7;
}
message TransactionData {
// Identity contains any valid identity structure.
google.protobuf.Any identity = 1;
// Data contains the network specific data.
google.protobuf.Any data = 2;
}
syntax = "proto3";
package trisa.identity.us.v1alpha1;
option go_package = "github.com/trisacrypto/trisa/proto/trisa/identity/us/v1alpha1";
message Identity {
string first_name = 1;
string last_name = 2;
string ssn = 3;
string state = 4;
string driver_license = 5;
}
syntax = "proto3";
package trisa.identity.be.v1alpha1;
option go_package = "github.com/trisacrypto/trisa/proto/trisa/identity/be/v1alpha1";
message Identity {
string first_name = 1;
string last_name = 2;
string national_number = 3;
string city_of_birth = 4;
}
syntax = "proto3";
package trisa.tvca.discovery;
option go_package = "github.com/trisacrypto/trisa/proto/tvca/discovery";
message Trisa {
// URL where the /.well-known/trisa endpoint is located.
string ca = 1;
// URL to the root certificate store.
string x509_root_store = 2;
// URL to the intermediate/issuer certificate store.
string x509_issuer_store = 3;
// URL to the active VASP certificate store.
string x509_vasp_store = 4;
// URL to the CRL store.
string crl_store = 5;
}
message X509Store {
repeated X509 store = 1;
}
message X509 {
string id = 1;
string pem = 2;
}
message CRLStore {
repeated string revoked = 1;
}